跳到主要内容

Debug

Dynamic Debug

Keywords

  • Kernel Log
  • pr_debug()/dev_dbg()/print_hex_dump_debug()/print_hex_dump_bytes()
  • debugfs
    • /sys/kernel/debug
    • /sys/kernel/debug/dynamic_debug/control
    • /proc/dynamic_debug/control

简介

Linux是被设计来允许你动态启动/停用内核代码,去获取额外的内核信息;通过向<debugfs>/dynamic_debug/control 写入一些控制字符,便可以定义Dynamic Debug的行为。使用mount | grep debugfs 可以发现debugfs 的挂载点为/sys/kernel/debug ,所以控制文件路径为/sys/kernel/debug/dynamic_debug/control

另外还可以通过/proc/dynamic_control 查看Dynamic Debug的默认行为,通过以下命令查看默认不输出信息的配置。

sudo awk '$3 != "=_"' /proc/dynamic_debug/control | less

使用

$ echo "match-spec* flags-spec" > /sys/kernel/debug/dynamic_debug/control

Reference