现在的位置: 首页 > 综合 > 正文

kgdb+gdb+vmware调试内核,比kdb好用,因为可以用gdb来看栈,局部变量等

2013年12月12日 ⁄ 综合 ⁄ 共 527字 ⁄ 字号 评论关闭

准备两台虚拟机,一台编译内核,编译后将vmlinux system.map拷贝到另一台在boot下建立软连接

这样在调试端用gdb vmlinux还可以找到代码看代码

 

配置两台虚拟机的串口为pipe形式,名字相同,一个为server,一个为client

被调试的虚拟机(client):
 在grub中最后加kgdboc=ttyS0,115200 kgdbwait

server端的虚拟机:
 (gdb) set remotebaud 115200

 (gdb) target remote /dev/ttyS0

 Remote debugging using /dev/ttyS0

 kgdb_breakpoint (new_kgdb_io_ops=0xc0a0b7d8) at kernel/kgdb.c:1721

 1721 wmb(); /* Sync point after breakpoint */

 (gdb) c

 

continue之后,被调试的虚拟机继续启动,启动完成后,可以用 echo g > /proc/sysrq-trigger 来使调试虚拟机的gdb响应来进一步设置断点等

 

也可以在启动之后通过 echo ttyS0 > /sys/module/kgdboc/parameters/kgdboc 来指定串口 

 

【上篇】
【下篇】

抱歉!评论已关闭.