内核调试之dump_stack
2017-12-20 10:16
183 查看
在内核中代码调用过程难以跟踪,上下文关系复杂,确实让人头痛
调用dump_stack()就会打印当前cpu的堆栈的调用函数了,如此,一目了然的就能看到当前上下文环境,调用关系了
1.使用方法
需要包含的头文件:#include <asm/ptrace.h>
在函数中调用:dump_stack();
2.实例
假设遇到uvc_probe_video这么一个函数,不知道它最终是被谁调用到的,根据linux设备模型,初步推测,probe应该是设备适配驱动时总线轮训到的,也只能是猜测,也根本无法猜测是否是中断上下文环境。
加入这条函数
再看打印,发现如下
原来并不是在适配设备啊,只是ioctl掉用的而已。
参考:
http://blog.csdn.net/zhengkarl/article/details/5693570 http://blog.csdn.net/dragon101788/article/details/9419175
调用dump_stack()就会打印当前cpu的堆栈的调用函数了,如此,一目了然的就能看到当前上下文环境,调用关系了
1.使用方法
需要包含的头文件:#include <asm/ptrace.h>
在函数中调用:dump_stack();
2.实例
假设遇到uvc_probe_video这么一个函数,不知道它最终是被谁调用到的,根据linux设备模型,初步推测,probe应该是设备适配驱动时总线轮训到的,也只能是猜测,也根本无法猜测是否是中断上下文环境。
加入这条函数
再看打印,发现如下
原来并不是在适配设备啊,只是ioctl掉用的而已。
参考:
http://blog.csdn.net/zhengkarl/article/details/5693570 http://blog.csdn.net/dragon101788/article/details/9419175
相关文章推荐
- linux内核调试技巧之一 dump_stack
- dump_stack内核调试
- linux 内核调试(dump_stack)
- linux内核调试技巧 dump_stack()
- 内存管理器(十五)内核调试利器----dump_stack( )
- 【转】linux内核调试技巧之一 dump_stack
- linux内核调试技巧二:dump_stack
- 总结一下内核DEBUG中的dump_stack, BUG, BUG_ON以及panic
- Windbg内核调试之四: Dump文件分析
- Windbg内核调试之五: 一次利用Dump文件调试Deadlock的实战
- Windbg内核调试之四: Dump文件分析
- 使用dump_stack()打印出内核调用堆栈
- linux内核调试技巧之一 dump_stack
- 内核中dump_stack()的实现,并在用户态模拟dump_stack()
- Windbg内核调试之四: Dump文件分析
- linux内核调试技巧之一 dump_stack
- Linux内核调试之使用BUG_ON 和dump_stack
- 使用dump_stack()打印出内核调用堆栈
- dump_stack介绍以及内核符号表的生成和查找过程
- 使用DUMP 文件调试分析内核驱动