kgdb在内核2.6.26中加入,用于调试内核。kdb是内建的内核调试器,由SGI开发。 网络
二者差别是:数据结构
这里两台机器(使用的是两台VBox的虚拟机),一个是目标机器(被调试内核的机器),另外一台是开发机器(链接被调试内核的机器)。frontend
要使用kgdb,须要从新编译下内核,先修改相关配置:spa
[*] Compile the kernel with debug infodebug
[*] KGDB: kernel debugger ---> 调试
[*] KGDB_KDB: include kdb frontend for kgdb 开发
CONFIG_DEBUG_INFO选项使得编译中生产调试信息。虚拟机
CONFIG_STRICT_KERNEL_RWX选项会阻止内核的某些断点,因此禁止(4.15.15中并未看到此项)。并增长KDB。最后查看.config配置文件包含以下:it
CONFIG_FRAME_POINTER=y编译
CONFIG_KGDB=y
CONFIG_KGDB_SERIAL_CONSOLE=y
CONFIG_KGDB_KDB=y
CONFIG_DEBUG_INFO=y
而后进行编译安装,make –j2 && make modules_install && make install
在内核启动参数中添加,表示启动,经过串口ttyS0来实现kgdb调试。
kgdbwait kgdboc=ttyS0,115200