专栏中心

EEPW首页 > 专栏 > linux-kernel调试技术大全上海索漫培训教材

linux-kernel调试技术大全上海索漫培训教材

发布人:xiajiashan 时间:2012-08-29 来源:工程师 发布文章
作者:下家山(请尊重原创,转载请注明) 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 上海.松江

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

重塑线束加工价值链:聚焦2026慕尼黑上海电子生产设备展上的智造新势力

2026-03-20

低压4:1模拟多路复用器:专注一事,做到极致

Keil_for_Arm7_1.0

ARM The Architecture of Android

视频 2011-01-20

选择瞬态噪声模拟的最小/最大噪声频率

NVIDIA发布超级手机 基于Tegra平台

视频 2011-01-20

技术迭代赋能,从三大赛道看新能源汽车核心制造工艺创新与产业升级

Diodes 公司推出高效多相 SPI 增压控制器,实现稳健灵活的汽车头灯系统

OpenClaw狂欢后,硬件圈的“硬仗”怎么打?AI硬件五个模块的生死平衡

Linux Bible RedHat.part2

限制AI/ML工具以确保物理AI的安全和保障

英特尔展示智能家居系统

视频 2011-01-20

关于汽车以太网的11个误区

linux - Advanced Bash Shell Scripting Guide

Keil_for_Arm7_1.0.zip

Android的挑战——Enea解决方案

视频 2011-01-20

Linux Bible RedHat.part1

电源管理集成电路压缩进汽车摄像头

并行视角:智能眼镜中的多电池管理

微软CEO发表CES开幕演讲

视频 2011-01-20
更多 培训课堂
更多 焦点
更多 视频

技术专区