调试Linux内核操作指南(withing kgdb)

kgdb在内核2.6.26中加入,用于调试内核。kdb是内建的内核调试器,由SGI开发。 

两者差异是:

 

  • 使用kgdb需要两个机器,通过网络连接,其中客户端使用gdb。而kdb可以直接在目标机器上调试。
  • Kgdb支持C代码级别调试,可以识别内核数据结构,而kdb只能识别汇编级别。

  这里两台机器(使用的是两台VBox的虚拟机),一个是目标机器(被调试内核的机器),另一台是开发机器(连接被调试内核的机器)。

要使用kgdb,需要重新编译下内核,先修改相关配置:

[*] Compile the kernel with debug info

[*] KGDB: kernel debugger  ---> 

 [*]   KGDB_KDB: include kdb frontend for kgdb 

 

CONFIG_DEBUG_INFO选项使得编译中生产调试信息。

CONFIG_STRICT_KERNEL_RWX选项会阻止内核的某些断点,所以禁止(4.15.15中并未看到此项)。并增加KDB。最后查看.config配置文件包含如下:

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

1.   内核参数

 

在内核启动参数中添加,表示启动,通过串口ttyS0来实现kgdb调试。

 kgdbwait kgdboc=ttyS0,115200

转载于:https://my.oschina.net/u/3611008/blog/2239858

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值