如何在Linux内核中启用动态调试?

时间:2012-07-24 13:31:32

标签: linux kernel

我在内核配置文件中启用了CONFIG_DYNAMIC_DEBUG标志。当我在系统中启动时,我可以挂载/sys/kernel/debug并且还有dynamic_debug/control个文件。

但是当我发出任何命令,如

echo -n 'module nfsd +p' > <debugfs>/dynamic_debug/control

它不会在dmesgsyslogd中显示任何输出。我做错了什么?

3 个答案:

答案 0 :(得分:2)

您是否设置了日志级别?

echo 8 > /proc/sys/kernel/printk

答案 1 :(得分:2)

试试这个:

echo -n 'module <module name/folder> +p' > <debugfs>/dynamic_debug/control

答案 2 :(得分:0)

<debugfs>只是文档中的占位符。无论出于何种原因,文档都没有提及debugfs挂载的实际路径。您可以使用mount | grep debugfs找到路径。

例如,在我的系统上:

$ mount | grep debug
debugfs on /sys/kernel/debug type debugfs (rw,relatime)

$ mount | grep debug | awk '{print $3}'
/sys/kernel/debug

我怀疑它是否会挂接到其他系统的另一条路径上,但我可能是错的。

此命令/路径应该对您有用:

echo -n 'module nfsd +p' > /sys/kernel/debug/dynamic_debug/control