本帖最后由 shihyu 于 2012-05-28 22:42 编辑 我trace kernel device 代码, device 挂在list 函数指针 , 所以我把函数指针存再 unsigned long int addr_tmp[436]; list 上一共有 436 个.. 所以我用for 打印 for (i = 0; i < 436; i++) { printk(KERN_INFO"addr_tmp"); } 不过实际上打印出来不到100个函数地址~请问是因为printk 不能快速打印吗? 有什么办法可以解决~这问题困扰我很久~ 谢谢
在写hello模块时,使用的printk语句是: printk(KERN_ALERT "hello, world\n"); 但在insmod模块是,在终端上却没输出,情况如下: [jrq@Fedora hello]$ sudo insmod hello.ko //按理说这句话后,应该有Hello, world输出 [jrq@Fedora hello]$ sudo rmmod hello.ko ///应该输出Goodbye, cruel world [jrq@Fedora hello]$ dmesg ...... Hello, world Goodbye, cruel world [jrq@Fedora hello]$ cat /proc/sys/kernel/print...
printk信息打印 printk是内核态信息打印函数,功能和比准C库的printf类似。 printk还有信息打印级别。 函数原型: int printk(const char *fmt, ...) 需要的头文件: #include linux/kernel.h> 消息打印级别: fmt----消息级别: #define KERN_EMERG "" /* system is unusable */ #define KERN_ALERT "" /* action must be taken immediately */ #define KERN_CRIT "" /* critical conditions */ #define KER...
在编译linux内核时,选择了Show timing information on printks 强制为内核信息增加时间戳 可是我看了printk的打印信息,为什么printk不是从0开始的?它一开始就从1717xxxx这个8位数开始打印的? 怎么回事?
用printk打印消息时,会打印出来很多乱七八糟的东西,弄的想看的信息都看不清楚,向下面这个样子: Message from syslogd@localhost at Wed Feb 15 16:05:59 2006 ... localhost kernel: *****Message length is 2. 有没有办法把多余的信息给去掉?
用printk打印消息时,会打印出来很多乱七八糟的东西,弄的想看的信息都看不清楚,向下面这个样子: Message from syslogd@localhost at Wed Feb 15 16:05:59 2006 ... localhost kernel: *****Message length is 2. 有没有办法把多余的信息给去掉?
出现2个问题。。。。 1,消息不对,如printk("11111\n");printk("22222\n"); 结果成了 112222211 111 或者类似。。。 2,时间不对 比如 .........12:58..............messages..... .........12:58..............messages..... .........11:30..............messages..... .........11:30..............messages..... .........11:30..............messages..... .........12:58..............messages..... .........12:58......
4.2.1. printk #include printk(KERN_CRIT"error %s,%i",__FILE__,__LINE__);注:1). printk函数中能够指定优先级,假如printk没有指定优先级,采用默认优先级,DEFAULT_MESSAGE_LEVEL,其值在kernel/printk.c. 头文档linux/printk.h中宏定义了8个级别,0-8从高到低分别是: KERN_EMERG, KERNEL_ALERT, KERN_CRIT, KERN_ERR, KERN_WARNING, KERN_NOTICE, KERN_INFO, KERN_DEBUG2). 当printk指定的优先级小于指定的控制台优先级...
printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__) 如上,想输出内核带的所有printk信息,可以在编译内核的时候设置吗,设置menuconfig的什么参数?从KERN_INFO到KERN_EMERG的所有信息都要输出。
内核代码中的printk只有在init()和exit()函数中能打印出来,在其他地方却不能打印出是为什么? 例如在read()、write()、ioctrl(),等函数中在insmod加载时打印不出。 请指教为什么啊??? 不是printk的日志级别问题,这个原因我找过了。