linux内核调试技巧之一 dump_stack

Posted linhaostudy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux内核调试技巧之一 dump_stack相关的知识,希望对你有一定的参考价值。

在内核中代码调用过程难以跟踪,上下文关系复杂,确实让人头痛

调用dump_stack()就会打印当前cpu的堆栈的调用函数了。

如此,一目了然的就能看到当前上下文环境,调用关系了

假设:

遇到uvc_probe_video这么一个函数,不知道它最终是被谁调用到的,根据linux设备模型,初步推测,probe应该是设备适配驱动时总线轮训到的。

也只能是猜测,也根本无法猜测是否是中断上下文环境。
技术分享图片

加入这条函数
技术分享图片

再看打印,发现如下

技术分享图片

原来并不是在适配设备啊,只是ioctl掉用的而已。

以上是关于linux内核调试技巧之一 dump_stack的主要内容,如果未能解决你的问题,请参考以下文章

在linux代码中打印函数调用的堆栈的方法

内核中dump_stack的实现原理 —— 内核函数printk的实现

驱动程序调测方法与技巧

Windbg调试内核shellcode

Linux内存从0到1学习笔记(九,内存优化调试之一 - kswapd0)

如何调试ARM Linux内核(msleep())锁定?