2012-07-02 33 views
1

我想在我的代碼中調試一些函數。不幸的是,gdb在系統中不可用,所以現在通過printk消息(它是一個linux內核驅動程序)完成調試。如何知道從哪裏調用函數?

有一個函數被一些參數調用。我想知道是否有可能知道誰以及如何調用這個函數。

謝謝。

回答

1

您還可以通過C標籤和讀取cscope的代碼下線。

在vim中使用cscope f c Function_name,您將獲得調用跟蹤。

在windows中,您可以嘗試Source Insight。

1

GCC提供功能__builtin_return_address
__builtin_return_address(0)應該給你在呼叫功能內的呼叫站點的地址。在/proc/kallsyms中搜索最接近的值以查找該函數。

1

在內核代碼中調用dump_stack()是要走的路。

相關問題