C 關於gdb斷點的真相

2021-06-02 20:27:44 字數 360 閱讀 2851

因此,只要斷點不被走到,那麼斷點就不會影響程式的執行效率;因為程式的其他地方都沒改變,該怎麼執行還是怎麼執行。

包括:停下來等使用者處理

自動繼續

自動執行一些gdb指令(用commands命令可以配置斷點的自動執行)

判斷條件是否要停下來(這就是大名鼎鼎的條件斷點)

因為通常到了斷點就會通過int3停下來。

只是條件斷點有點特別,它分為軟體和硬體兩種。這是因為條件斷點這個需求太普遍了,因此有人就想了乙個辦法從硬體支援一部分:在x86平台,某些條件斷點可以不插入int 3,而是插入乙個其他指令,當程式走到這個位址的時候,並不是直接發出int 3訊號,而是先去比較一下特定暫存器和某個位址的內容,再決定要不要int 3。

C 關於gdb斷點的真相

因此,只要斷點不被走到,那麼斷點就不會影響程式的執行效率 因為程式的其他地方都沒改變,該怎麼執行還是怎麼執行。包括 停下來等使用者處理 自動繼續 自動執行一些gdb指令 用commands命令可以配置斷點的自動執行 判斷條件是否要停下來 這就是大名鼎鼎的條件斷點 因為通常到了斷點就會通過int3停下...

gdb幾種設定斷點的方式

gdb幾種設定斷點的方式 方式1 根據函式名,查詢符號 symbol 設定斷電 此種方式最為簡單,閱讀源 了解函式如何呼叫,在需要暫停執行的函式入口進行斷點設定。但並不是所有函式,任何時候都能設定斷點的。比如優化後的靜態函式,inline函式。在特定的情況下,通過函式名進行斷點設定便不可為,而又需要...

關於「gdb無法打斷點」的分析與解決辦法

萌新救火接手了乙個比較大的框架,要從開發機把編譯好的bin so,以及data放到測試機部署並發布。gdb對已經啟動的程序除錯 首先,要在測試機上跑起來編寫的http和tcp服務,與平時不一樣的是,這裡gdb是對於系統以及跑起來的程序直接除錯,採用 ps ef grep 來查對應的pid,用 gdb...