dynamic_debug
0. 简介
linux 内核 支持 动态调试(dynamic debug)功能,顾名思义就是 在需要调试时,将调试功能开启,不用将调试信息写死在dmesg buffer中,避免过多或不必要的调试信息。
前提:
只能使用
dev_dbg() / pr_debug()
打印调试信息,不可以用printk()
好处:
在调试 linux 内核源码过程中,打印的调试信息不需要删除掉,默认不会将 调试信息 打印在 dmesg 中。在需要时,开启 动态调试 ,即可 将调试信息打印出来。
这里分两种情况:
在linux 内核源码没有发布时,在源码最前面加上
#define DEBUG
,然后使用dev_dbg() / pr_debug()
就可以打印调试信息当驱动源码需要发布时,将
#define DEBUG
删除即可。在linux 内核源码发布后,出现问题,但是硬件环境在客户/测试手上,这时候不需要重新找一套相同的环境来调试,只需要让 客户/测试 帮忙输入某些命令,即可 将调试信息全部打印出来。
1. 使能 dynamic debug 功能,编译 Linux Kernel
2. (可选)挂载debugfs
3. 例子
Last updated
Was this helpful?