专栏中心

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 上海.松江

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

关键词:

相关推荐

usb充电电路的制作

资源下载 2007-12-25

通过瑞萨RA系列解决16位MCU平台的关键挑战构想

嵌入式系统 2025-11-18

Littelfuse推出创新型负载供电闭锁继电器CPC1601M

IAR与Quintauris携手推进RISC-V汽车实时应用的功能安全软件开发

联发科Android晶片 本季出货 带动成长

视频 2010-08-17

倒计时2天丨魏少军教授主旨报告主题、数据出炉!

2025-11-18

电工·电子基础精选电路详解

Vicor 电源模块 VI 的基本功能介绍

视频 2010-09-02

英特博获得Ceva Wi-Fi 6和蓝牙5 IP授权,为支持 AIoT Matter 的 SoC 提供支持

数码相机的电路图

2026电池新国标倒计时!电池热管理如何保障最严安全关?

当树莓派闯入工厂现场:IPC3600系列给出的震撼答案!

EDA试验技术讲义(119).

资源下载 2007-12-25

联发科技宣传片

视频 2010-09-07

力科助力汽车电子总线开发

视频 2010-09-08

NXP将EIS纳入电动车电池管理

汽车电子 2025-11-18

GPS接收机射频前端电路原理与设计

Gartner发布中国AI网络安全治理的三大要务

开放的汽车电子控制系统研究

Primech AI拿下新加坡军营重要订单

机器人 2025-11-18
更多 培训课堂
更多 焦点
更多 视频

技术专区