博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
调试Linux内核操作指南(withing kgdb)
阅读量:7182 次
发布时间:2019-06-29

本文共 749 字,大约阅读时间需要 2 分钟。

hot3.png

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

你可能感兴趣的文章
1月2日课程笔记 lvm介绍与实际操作
查看>>
windows Server 2012安装DNS步骤
查看>>
图像压缩的王者:Image Optimizer V5.1 汉化修正绿色版
查看>>
Nginx + CGI/FastCGI + C/Cpp
查看>>
mysql创建用户
查看>>
暑假期间学习不错的网网页
查看>>
EXPORT_SYMBOL的使用并以使用do_adjtimex调节内核tick_length(滴答长度)为例的说明...
查看>>
设计模式之——设计原则
查看>>
微软发布了ASP.NET MVC框架的第4个预览版本
查看>>
问几个 User.GetUser()的问题。各位高手来帮忙回答一下
查看>>
如何使用Oracle FND_LOAD工具在不同Instance间同步数据(Example)
查看>>
AMF目前有两种版本,AMF0和AMF3
查看>>
this 的使用方法 —— javascript中的this讲解! (share)
查看>>
[转载]基于TFS实践敏捷-实现用户场景
查看>>
ArcSDE中空间数据的备份与恢复
查看>>
android:onKeyDown
查看>>
go指针的一个小坑
查看>>
VSTO Office二次开发对PowerPoint功能简单测试
查看>>
photoshop快捷键大全
查看>>
Android -- EventBus使用
查看>>