2016-02-26 55 views
0

我有第三方靜態庫:「A.LIB」我可以找到一些函數調用在GDB

(我沒有源代碼..)

和..「A.LIB」有一個像 「布爾CUserQueue ::按()」 函數的一些


我想設置破發點全部 「CUserQueue ::按()」 主叫

(因爲,我調試「爲什麼隊列爲空?數據被傳遞..」)

回答

0

把斷點到一個函數的所有調用是有效的一樣打破函數入口。因爲函數入口點是公共符號,所以不需要庫函數來放置函數中的斷點。

「break CUserQueue :: Push()」應該做的。並且確保你在沒有優化和調試信息的情況下構建你的程序(帶有gcc的-O0-g3標誌)。

+1

有一些未知的原因,我的程序不會調用「Push()」...所以,我想找出所有調用「Push()」的函數。我會設置這些功能的中斷點。 (不是「推()」條目) – AnaHumid

+0

我不認爲有這樣做的一些捷徑。你需要找到調用Push()的所有函數,方法是在源代碼中使用grep或者在IDE中使用某種「查找引用」,然後在gdb的所有函數中放置一個斷點。 – dbrank0

+0

哦..在第三方lib層中調用「Push()」。所以我找不到。謝謝。 – AnaHumid

相關問題