Linuxkgdb命令

王朝学院·作者佚名  2016-08-27  
宽屏版  字体: |||超大  

一、简介

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

https://kgdb.wiki.kernel.org/index.php/Main_Page

二、安装配置

1)打开kgdb与kdb配置选项,重新编译内核

https://www.kernel.org/pub/linux/kernel/people/jwessel/kdb/CompilingAKernel.html#CompileKGDB

http://blog.chinaunix.net/uid-23366077-id-4711134.html

http://www.cnblogs.com/274914765QQ

/p/4978999.html

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

server:

kgdboc=ttyS1,115200

client:

kgdboc=ttyS1,115200kgdbwait

3)串口设置

http://www.cnblogs.com/274914765qq/p/4992993.html

三、使用实例

1)内核调试

http://blog.chinaunix.net/uid-20672257-id-2936794.html

2)模块调试

http://blog.chinaunix.net/uid-20672257-id-2936794.html

http://www.linuxidc.com/Linux/2013-01/77969.htm

四、常见问题

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模式相互切换

http://www.zeuux.com/blog/content/3736/

参考:http://blog.chinaunix.net/uid-25538637-id-261329.html

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有