转载:http://blog.csdn.net/sanchuyayun/article/details/39183941刚刚接触内核,在调试过程中用printk打印信息当然是直接有效的办法,但当我们不知到一个函数或者一个模块到底在哪里出了问题时我们可以利用dump_stack有效的找到问题的根源,下...
分类:
其他好文 时间:
2014-11-13 22:07:48
阅读次数:
232
问题:pcf8563 RTC设备驱动不能被正常的加载!问题分析过程。问题在下午得到解决,虽然解决的办法比较笨,采用的是不断的使用printk来跟踪rtc-8563驱动的加载的过程,以及iic模块的工作过程。曾经想过将内核的DEBUG打开,打开的方法在/linux2.6.21/include/linu...
分类:
其他好文 时间:
2014-11-10 06:27:49
阅读次数:
256
1. kernel中的成员之间重重嵌套,很有可以在一个地方修改了某一变量,而后导致另一地方出现异常宕机的情况。解决的最佳办法是查看宕机日志,找出最后异常出现的地方。最后异常出现的位置可能会非常的奇怪,造成的原因可能是在另一个地方的异常修改。此时在可能宕机处,print处相关变量地址, printk ...
分类:
其他好文 时间:
2014-11-03 14:27:42
阅读次数:
172
编辑/*****hello.c*******/#include #include #include MODULE_LICENSE("Dual BSD/GPL");static int hello_init() { printk("hello\n"); return 0;}static void .....
分类:
系统相关 时间:
2014-10-31 18:45:56
阅读次数:
224
我们在使用printk()函数中使用日志级别为的是使编程人员在编程过程中自定义地进行信息的输出,更加容易地掌握系统当前的状况。
对程序的调试起到了很重要的作用。
(下文中的日志级别和控制台日志控制级别是一个意思)
printk(日志级别 "消息文本");这里的日志级别通俗的说指的是对文本信息的一种输出范围上的指定。
日志级别一共有8个级别,printk的日志级别定义如下(在linu...
分类:
系统相关 时间:
2014-10-30 11:43:58
阅读次数:
343
helloworld.c 代码#include #include MODULE_LICENSE("Dual BSD/GPL");static int hello_init(void){ printk(KERN_ALERT "Hello world\n"); return ...
分类:
其他好文 时间:
2014-10-22 12:33:04
阅读次数:
172
实现:在一个内核模块调用另一个内核模块中的a+b函数,并通过命令行给参数a,参数b赋值。file3.c#includevoid add_num_func(int a,int b){ printk("file1 a+b = %d \n",a+b);}EXPORT_SYMBOL(add_num_f...
分类:
其他好文 时间:
2014-10-21 19:09:47
阅读次数:
208
文章转自:http://blog.csdn.net/younger_china/article/details/70824941. 控制台的日志优先级#define KERN_EMERG "" /* 致命级:紧急事件消息,系统崩溃之前提示,表示系统不可用 */#define KERN_ALERT ....
分类:
其他好文 时间:
2014-10-20 23:01:27
阅读次数:
315
为了确认内核打印等级以及prink 参数对打印的分级,在led驱动初始化代码【以及exit出口】加入如下代码。每次insmod 、rmmod led模块时,根据打印等级的设置,得到不同的打印结果:static int __init s3c24xx_leds_init() { int ret ; in...
分类:
其他好文 时间:
2014-10-16 16:57:22
阅读次数:
181
驱动中pr_debug定义在kernel/include/linux/printk.h
/* If you are writing a driver, please usedev_dbg instead */
#if defined(CONFIG_DYNAMIC_DEBUG)
/* dynamic_pr_debug() uses pr_fmt()internally so we don...
分类:
其他好文 时间:
2014-09-30 18:23:44
阅读次数:
338