一、简介

kgdb是一种源码级的Linux内核调试器。使用kgdb调试内核时,需要结合gdb一起使用,使用他们可以对内核进行单步调试,设置断点,观察变量、寄存器的值等与应用调试相关的功能。然而也有其限制条件,将在接下来kgdb调试器原理来讲述,本文仅简单介绍使用Kgbd的流程。

二、安装配置

1)打开kgdbkdb配置选项,重新编译内核

2)启动项设置,分别对server和client的启动文件:/boot/grub/grub.conf,做如下修改

server:

kgdboc=ttyS1,

client:

kgdboc=ttyS1, kgdbwait

3)串口设置

三、使用实例

1)内核调试

2)模块调试

四、常见问题

1)以“-O -g”编译内核

编译内核之前请注意:默认的Linux内核的编译都以-O2的优化级别进行。在这个优化级别之下,编译器要对内核中的某些代码的执行顺序进行改动,所以在调试时会出现程序运行与代码顺序不一致的情况。可以把Makefile中的-O2选项改为-O,但不可去掉-O,否则编译会出问题。为了使编译后的内核带有调试信息,注意在编译内核的时候需要加上-g选项。
不过,当选择"Kernel debugging->Compile the kernel with debug info"选项后配置系统将自动打开调试选项。另外,选择"kernel debugging with remote gdb"后,配置系统将自动打开"Compile the kernel with debug info"选项。

2)kdb与kgdb模式相互切换

3)target remote /dev/ttyS1时,会出现错误“trace API error 0x2”。

最新文章

  1. 基本shell编程【2】-服务端发布脚本
  2. 关于jquery中html()、text()、val()的区别
  3. ImageSpan
  4. 四大开源协议比较:BSD、Apache、GPL、LGPL (转)
  5. IOS-错误总结
  6. panel面板
  7. MVC新手指南
  8. [置顶] Effective STL 学习笔记
  9. [访问系统] C#计算机信息类ComputerInfo (转载)
  10. selenium_python学习
  11. mailcore -- Mail port
  12. SSH深度历险记(八) 剖析SSH核心原则+Spring依赖注入的三种方式
  13. Tomcat 静态部署 二步特别注意
  14. WM_COPYDATA传送指针数据类型的问题
  15. [USACO17FEB]Why Did the Cow Cross the Road I S
  16. Git的思想和基本工作原理2
  17. [原创] debian 9.3 搭建Jira+Confluence+Bitbucket项目管理工具(二) -- 安装jira 7.5.4
  18. .net core实践系列之短信服务-为什么选择.net core(开篇)
  19. 聊聊ReentrantLock的内部实现
  20. lesson4Embedding-fastai

热门文章

  1. php 5.6以上可以采用new PDD连接数据库的方法。
  2. Disruptor_学习_00_资源帖
  3. 11462 Age Sort(计数排序)
  4. MySQL主从复制的常用拓扑结构
  5. tar 多文件解压压缩
  6. java web service 上传下载文件
  7. HttpServletRequest获取请求得URL信息
  8. PCM音量控制
  9. bzoj 3992 [SDOI2015]序列统计——NTT(循环卷积&&快速幂)
  10. jenkins jacoco