打印本文 打印本文 关闭窗口 关闭窗口
Linux 内核 版本 2.0.xx
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2791  更新时间:2009/4/22 20:45:36  文章录入:mintao  责任编辑:mintao
          nm vmlinux | sort | less
          提供给你的是一份按照升序排列的内核具体地址的列表文件,通过它的内容何以简易的查处函数所包含的具体物理内存地址。注意内核提供的调试信息中的地址并不一定完全匹配函数的地址(事实上,只是有很大不同),所以你不能使用“grep”命令在列表中查询:虽然列表提供的给你的是每一个内核函数的起始点,但是使用查询到的函数起始地址会低于真正想要查找的,因为对应的地址会更高些。事实上,有一个比较不错的主意,那就是在你的问题报告中包含一些具体“内容”,同时给出感兴趣的问题附近的相关行的提示信息。
          如果因为某些原因你不能按照上述内容完成(可能因为你得到的是预先编译的内核镜象文件或者其他类似的),有可能的话请尽量告诉我关于你的具体安装的信息,这样做会有很大帮助。另外,你也可以在运行级别上使用gdb。(只读;比如你不能改变变量值或者设置断点。)可以这样做,首先使用-g参数编译内核;正确编辑arch/i386/Makefile,然后运行命令“make clean”。你也需要编辑CONFIG_PROC_FS文件(通过 “make config”)。
          在你重新以新内核启动之后,运行“gdb vmlinux /proc/kcore”。现在你就可以使用所有的所有一般的gdb命令。这个命令可以查找系统溃败时打印的例如"l *0xXXXXXXXX"信息的断点。(用EIP的具体值替代有xx的位置。)因为错误地gdb过程不理会在编译之后出现地开始地址,所以当前运行于级别外内核的gdb过程会导致失败。
 
 

上一页  [1] [2] [3] [4] 

打印本文 打印本文 关闭窗口 关闭窗口