linux - 查看内核 printk 调试消息

标签 linux kernel

当使用 pr_debug("blah\n") 时,消息不会出现在 dmesg 的输出中。我将 /proc/sys/kernel/printk 设置为 8 4 1 7。pr_alert 消息显示得很好。有什么想法吗?

最佳答案

您需要定义 DEBUG 才能使 pr_debug 实际打印。

例如,如果添加行

ccflags-y := -DDEBUG=1

进入模块的Makefile,然后该模块的任何源文件调用的pr_debug将实际打印信息。


或者,如果未定义 DEBUG 宏,但内核是在启用选项 CONFIG_DYNAMIC_DEBUG 的情况下构建的,您可以动态控制哪个 pr_debug 调用实际上应该打印出来。

例如执行后(从根)

echo 'module my_module' > /sys/kernel/debug/dynamic_debug/control

从模块 my_module 调用的所有 pr_debug 将实际打印信息。

有关动态调试的更多信息,请参阅 documentation .

关于linux - 查看内核 printk 调试消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37131740/

相关文章:

linux - 编译linux内核ctl_table报错

linux - 通过禁用 "Write Protect Bit (CR0:16)"从内核到用户空间共享内存

linux - 嵌入式系统堆一致性检查

c++ - 如果在获得互斥锁后发生中断会怎样

c - 使用硬编码内存地址主机测试 C 程序

linux - 我如何(是否可以)在本地安装 mysql workbench?

linux - Ubuntu vivid box 没有与 vagrant 一起运行

kernel - 在 OpenCL 中使用内核导致另一个内核

kernel - 设计支持向量机 (XOR) 的内核

permissions - 无法在 sysfs 中将属性权限设置为 0666