新闻  |   论坛  |   博客  |   在线研讨会
linux-kernel调试技术大全上海索漫培训教材
xiajiashan | 2012-08-29 10:24:19    阅读:952   发布文章

作者:下家山(请尊重原创,转载请注明) http://www.xiajiashan.com

 

三:CONFIG_INIT_DEBUG

此选项在linux-2.6.10,linux-2.6.15,linux-2.6.19中都没有。

四:CONFIG_DEBUG_INFO

这个选项一般要打开,下面引用《linux设备驱动程序第三版》的一段话。

“该选项将使内核的构造包含完整的调试信息。如果读者打算利用GDB调试内核,将需要这些信息。如果计划使用GDB,还应打开CONFIG_FRAME_POINTER选项。”

五:CONFIG_MAGIC_SYSRQ 5.1 打开方法

 

①通过make menuconfig 配置
26.jpg
②通过命令启用

在系统运行时通过下列命令启动

echo 1 > /proc/sys/kernel/sysrq(没有验证)

5.2 验证

因为一时想不到好的实验方法(让键盘死锁的方法,我在加载的驱动模块里面设置了一个死循环while(1),虽然键盘无法响应ctrl+alt+c也不响应,但是alt+sysrq+任意组合键也不响应),所以没有验证。

=======================================================================================

By 下家山 QQ 1209050967 上海松江文汇路928号258室 松江大学城 7/31/2012

上海索漫科技 http://www.xiajiashan.com 专注嵌入式(ARM7,Cortex-M0,Cortex-M3,ARM9,linux)培训

六.PRINTK_TIME 调试 6.1 PRINTK_TIME 调试的意义

这个配置选项在《linux设备驱动程序第三版》中并没有介绍,因为linux2.6.10版本中没有,但,linux2.6.15和linux2.6.19中有(其他版本我没有去查证),通过这个配置选项,就会在printk 的同时打印出当前时间,这样可以看到kernel的运行时间,对调试也许有所帮助。

6.2如何打开PRINTK_TIME选项
27.jpg
6.3测试代码

//slabtest.c

#include

 

#include

#include

unsigned char *slab_wr; /* I/O data buffer */

static int slabtest_init(void)

{

printk(KERN_EMERG "slab_wr address before call kmalloc:0x%08lx \n",slab_wr);

slab_wr = (unsigned char *)kmalloc(100,GFP_USER/*GFP_KERNEL*/);

printk(KERN_EMERG "slab_wr address affter call kmalloc :0x%08lx \n",slab_wr);

printk(KERN_EMERG "\nHello\n");

return 0;

}

static void slabtest_exit(void)

{

kfree(slab_wr);

printk(KERN_EMERG"\nGoodbye\n");

}

module_init(slabtest_init);

module_exit(slabtest_exit);

6.4测试结果

29.jpg

 

红色部分即为printk时打印的当前时间。看来还是有点作用的。

但是,如果printk调用频繁,则会大大降低系统速度!

 

本文还没有涉及到KGDB相关调试技术,KGDB调试需要两台PC及两个串口,调试不是很方便,此部分工作本人只完成一半就搁浅了,目前还没有时间继续。另,在此想结识对KGDB有所研究或及其感兴趣的人士。

请与我联系:

QQ:408452271

Email:ximenpiaoxue4016@sina.com

2010-1-7 上海.松江

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
02年接触ARM和ucos,开发过有线和无线图像报警器,IPCamera,人脸识别系统,OCR识别系统,指纹识别系统,05年开始从事Linux及Rtems下WiFi,camera,Ethernet等驱动开发工作,专做嵌入式linux培训,致力于把我十年来的研发经验传授给每一个学员,招人的可以找我,ximenpiaoxue4016@sina.com
推荐文章
最近访客