簡體   English   中英

檢查 function 在 C++ 上定義的位置的方法

[英]Way to check where the function is defined on C++

在處理大型項目時,我想知道在哪個 header 文件中定義了特定的 function。 有沒有辦法在 Ubunt (linux) 中為 C++ 做到這一點?

這可以使用 GNU 調試器 (GDB) 來完成。 給定名稱 function、 MYFUNCTION 、二進制文件MYFILE.o和一些可選的 arguments、 MYARGS (以空格分隔),您可以運行以下命令:

gdb -batch -ex "break MYFUNCTION" -ex "run" --ex "info line" --args MYFILE.o MYARGS | grep -P "Line [0-9]+"

如果調用 function,則 output 將如下所示:

“../path/to/function.c”的第 1234 行從地址 0x7ffff7d9e1a3 <MYFUNCTION+16> 開始,到 0x7ffff7d9e1aa <MYFUNCTION+23> 結束。

否則,output 將返回:

Function “MYFUNCTION”未定義。

一種對我有幫助的方法是通過名為Vs code的編輯器。 只需將 cursor 指向 function 名稱並按F12或在某些機器中按Fn+F12即可讓您找到 function 的位置。 其他編輯也應該有這個......

注意:這是一種特定的方法,而不是解決您問題的一般方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM