专栏中心

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

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

发布人:xiajiashan 时间:2012-08-29 来源:工程师 发布文章

 

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

九.DEBUG_PREEMPT抢占调试技术

9.1 Preempt抢占调试技术的作用

选择此选项,kernel将使用一个调试变量,这个变量的值通过smp_processor_id()函数获取,当使用了一个不安全的“抢占”方法,kernel将打印此变量。即,内核将检测到“抢占计数器”溢出。

9.2 如何打开此选项

这一选项需要在“Kernel Features”中打开[*] Preemptible Kernel(EXPERIMENTAL)选项才会出现在“Kernel hacking”中[*]Debug preemptible kernel(NEW)。

9.3 linux如何实现实时性

十:DEBUG_KOBJECT调试技术

DEBUG_KOBJECT选项的作用,此选项打开后, kobiect(.ko)外部加载模块的调试信息将会送到syslog。因为syslog是一中很主流的调试技术,我想日后作为一个专题来讲,所以这里就略过!

哪位精通syslog相关工具请贴出来,或跟我发邮件!

十一:DEBUG_HIGHMEM调试

DEBUG_HIGHMEM选项打开后,能够检查高端内存的错误。

哪位做过相关实验,请帮我补充进来。

十二:DEBUG_BUGVERBOSE调试 12.1 作用

通过这个选项,在kernel打印出BUG()信息的同时打印此信息所在的文件名和行号。这是一个有用的选项。

12.2 如何打开该选项

DEBUG_BUGVERBOSE的打开依赖于DEBUG_KERNEL和EMBEDDED,那么EMBEDDED在哪里打开呢?这个地方还真不好找,见init/kconfig

menuconfig EMBEDDED

bool "Configure standard kernel features (for small systems)"

help

This option allows certain base kernel options and settings

to be disabled or tweaked. This is for specialized

environments which can tolerate a "non-standard" kernel.

Only use this if you really know what you are doing.

而具体到make menuconfig在哪里呢?

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

By 下家山 Q群 75303301 上海松江文汇路928号258室 松江大学城 8/4/2012

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

1.jpg

 

这样在“Kernel hacking”中就出来了

 

2.jpg
12.3 产生的疑问

我通过测试发现,不管我是否打开此调试选项,调用BUG()和BUG_ON(1)都会打印出所在的文件及行号。

12.4 测试代码

#include

 

#include

#include

static int scheduler_test_init(void)

{

BUG_ON(1);

printk(KERN_EMERG "\nHello\n");

return 0;

}

static void scheduler_test_exit(void)

{

printk(KERN_EMERG"\nGoodbye\n");

}

module_init(scheduler_test_init);

module_exit(scheduler_test_exit);

 

十三:DEBUG_IOREMAP调试

在linux2.6.15中此调试选项是针对PARISC(HP公司)处理器的,这里略过。

十四:DEBUG_FS调试

哪位做过相关实验,请帮我补充进来.

十五:DEBUG_VM调试

哪位做过相关实验,请帮我补充进来

十六:FRAME_POINTER调试

FRAME_POINTER选项在你用外部调试器(如,GDB,KGDB等)时必须打开。

十七:RCU_TORTURE_TEST选项

该选项涉及到RCU原理。官方资料见http://www.rdrop.com/users/paulmck/RCU/

“RCU(Read-Copy Update),顾名思义就是读-拷贝修改,它是基于其原理命名的。对于被RCU保护的共享数据结构,读者不需要获得任何锁就可以访问它,但写者在访问它时首先拷贝一个副本,然后对副本进行修改,最后使用一个回调(callback)机制在适当的时机把指向原来数据的指针重新指向新的被修改的数据。这个时机就是所有引用该数据的CPU都退出对共享数据的操作。”

摘自杨燚写的《Linux2.6内核中新的锁机制--RCU》。

本人没有用过,具体实现及测试略过。

十八:其他选项跟KGDB有关

见其他文章。

十九:结束语

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

请与我联系:

QQ:408452271

Email:ximenpiaoxue4016@sina.com

BBS: http://www.xiajiashan.com/

2010-1-7 上海.松江

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

关键词:

相关推荐

AMD 锐龙嵌入式 7000 系列助力研华科技 Micro-ATX 主板

学子专区论坛—ADALM2000实验:脉宽调制

火狐浏览器(Firefox2.0.0.9)简体中文版

资源下载 2007-11-20

神经技术的潜能:贸泽EIT系列探索技术与思维交会点的脑机接口

Nordic Semiconductor联同Qorvo提供面向Aliro和Matter的参考应用,加快门禁和智能锁应用的上市时间

英飞凌与科士达深入合作,全栈方案树立UPS高效可靠新标杆

TE Connectivity在推动长期可持续发展目标方面取得显著进展

MSNShell 4.2.28.31 版(最新)

资源下载 2007-11-20

国图手机移动图书馆案例分析 上

视频 2009-11-02

电驴最新中文版 eMule VeryCD 0.48a Build 071112

资源下载 2007-11-20

Symbian OS多媒体架构分析 下

视频 2009-11-02

以第二代 AMD Versal Premium 系列打造 MIPI C-PHY/D-PHY 测试方案

测试测量 2025-04-11

TITAN Haptics助力中国健康产业的革新

Flash FXPV3.4 注册版含序列号

资源下载 2007-11-20

Symbian OS多媒体架构分析 上

视频 2009-11-02

国图手机移动图书馆案例分析 中

视频 2009-11-02

IGBT 7 EconoDUAL™ 3系列拓展带焊接针产品

嵌入式系统 2025-04-11

Diodes公司推出先进的锑化铟霍尔器件传感器

FP系列编程手册

资源下载 2007-11-20

国图手机移动图书馆案例分析 下

视频 2009-11-02
更多 培训课堂
更多 焦点
更多 视频

技术专区