![](/img/trans.png)
[英]Likelihood of a function being inlined depending on where it is defined in 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”未定義。
-g
標志)。一種對我有幫助的方法是通過名為Vs code
的編輯器。 只需將 cursor 指向 function 名稱並按F12
或在某些機器中按Fn+F12
即可讓您找到 function 的位置。 其他編輯也應該有這個......
注意:這是一種特定的方法,而不是解決您問題的一般方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.