27
2017
09

Linux 内核动态调试

内核的动态调试

  • 源码使用pr_debug(), pr_info(), pr_err()等pr_xxx()家族打印函数

    示例图片

  • 需要打印时(即动态调试), 在命令行输入以下命令, 包含在func_name1和func_name2中的所有的pr_xxx()调试信息都可输出到内核日志里:

echo "func func_name1 +p" >> /sys/kernel/debug/dynamic_debug/control
echo "func func_name2 +p" >> /sys/kernel/debug/dynamic_debug/control
  • 打开整个文件(即编译之前对应的源文件)的动态调试日志:
echo -n 'file xxx.c +p' >> /sys/kernel/debug/dynamic_debug/control
  • 打开整个模块的动态调试日志:
echo "module module_name -p" > <debugfs>/dynamic_debug/control
上一篇:EventBus 源码解析 下一篇:android应用开发—获取当前运行的services列表