blog:linux_kernel:debug

Linux内核调试方法

问题可以分为几类

  1. crash
  2. lockup, 预防比调试更重要
  3. 逻辑错误或者实现错误, 运行结果不符合预期
  4. 资源泄露
  5. 性能不足

调试工具:

  1. log and dump分析, 很多异常都会有一堆kenrel panic信息,通过这些信息可以分析出引起异常的代码
  2. Tracing / Profiling, 可以用来追踪程序的运行流程
  3. 交互式的debug, 例如gdb
  4. debugging frameworks, 例如Ftrace, SystemTap

触发kernel panic

echo “c”

> /proc/sysrq-trigger

或者通过LKDTM

printk

最原始的方法,不推荐使用

pr_xx

使用prxx 函数族类替代 printk, 例如 premerg(), pralert(), prcrit(), prerr(), prwarning(), prnotice(), prinfo(), pr_debug()

dev_xx

同样是一个函数族, devemerg(), devalert(), devcrit(), deverr(), devwarn(), devnotice(), devinfo(), devdbg()

需要传入strice device* 参数, 并且会打印出这个device的名字

https://www.modb.pro/db/87730

  • blog/linux_kernel/debug.txt
  • 最后更改: 2022/04/21 14:57
  • caodan