- 论坛徽章:
- 0
|
三、调试:
1, 把GUEST Linux上的内核映像文件(vmlinux)和内核源代码拷贝到HOST机器上。
为了能够用gdb的list命令显示源代码, 看看GUEST机器上的/lib/modules/< kernel version>/source (以下简称source) 和/lib/modules/< kernel version>/build (以下简称build)这两个符号链接各自指向哪里(注:如果编译内核时没有用O=< your path>选项指定输出的路径,那么这两个符号链接就指向同一个路径,通常是/usr/src/linux-2.x.xx)。拷贝到 HOST机器上相应的路径上。
提醒: 编译内核之后build目录下会有很多临时文件, 有上G之大, 可以先把build目录下的vmlinux拷贝到HOST机器上, 然后进入source目录, 运行:
make O=/lib/module/<kernel version>/build clean
然后再把build和source拷贝到HOST机器上。
2, 启动安装在VMWare中的GUEST Linux。
3, 在HOST机器上运行gdb, 进行调试:
(gdb) file vmlinux //vmlinux就是从GUEST拷贝过来的内核映像文件
Reading symbols from /root/vmlinux...done.
Using host libthread_db library \"/lib/libthread_db.so.1\".
(gdb) target remote localhost:8832 //注意,如果你的GUEST Linux是64位的,这里的localhost:8832就改成localhost:8864
Remote debugging using localhost:8832
[New thread 1]
0x000f4299 in ?? ()
warning: shared library handler failed to enable breakpoint |
|