內核調試之dump_stack

在內核中代碼調用過程難以跟蹤,上下文關係複雜,確實讓人頭痛
調用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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章