全部博文(215)
发布时间:2013-08-28 10:01:42
操作系统:ubuntu 13.04工具:gcc, objdump, readelf参考:《程序员自我修养》代码编译后的机器指令经常被放在代码段里,代码段名为".text";已初始化的全局变量和已初始化的局部静态变量经常放在数据段里,数据段名为".data";未初始化的全局变量和未初始化局部静态变量一般放在“.bss”段里,.bss在文件中不占据空间。.........【阅读全文】
发布时间:2013-08-08 16:17:49
前言: 最近搞这玩样,真是折腾,网上的资料都是片段,而且很少。折腾了4、5还没明白其整个的工作流程。眼看时间一天天地流失,内心哪个捉急啊! 于是,豁出去了,从Makefile开始看。并且在源码中添加调用栈打印,终于搞明白了流.........【阅读全文】
发布时间:2013-08-07 16:33:31
增加可被LKM调用的内核函数LKM(Loadable Kernel Module)可以调用的内核函数及变量都列在/usr/src/linux-headers-xxxxxxxxx/Module.symvers里。有些资料说是在/proc/kallsyms里,这是不对的。kallsyms里列出的是内核中的各种符号,但并不是所有的符号都可以被LKM调用。如果使用了不可用的符号,insmod的时候会报.........【阅读全文】
发布时间:2013-07-31 13:51:23
进程中内存空间的划分:1. 代码区 – 存放代码/函数,只读区2. 全局区 – 保存全局变量,读写区3. BSS段 – 未初始化的全局变量,BSS段在main执行前会自动清04. &.........【阅读全文】