gdb不在斷點處停留的問題

2021-09-30 12:06:19 字數 869 閱讀 3936

參考:

【問題描述】

gdb attach到乙個正在執行的程序上,在某個函式處設定了斷點。當執行到該斷點時,gdb在控制台打出的記錄顯示該斷點確實走到了,但是沒有在斷點處停留,而是繼續執行了。

【原因】

。【解決】

乙個簡單的辦法是,在gdb中執行下面的命令即可。即讓gdb即能除錯父程序中,又能除錯到子程序中去:

set follow-fork-mode child或者set detach-on-fork off

set follow-fork-mode child:

the new process is debugged after a fork. the parent process runs unimpeded.

即在fork處除錯從父程序進到子程序中,父程序不受影響

********************===

《nginx模組_使用gdb除錯nginx原始碼》明確說了

(gdb)set follow-fork-mode child

set detach-on-fork off:

both processes will be held under the control of 

gdb. one process (child or parent, depending on the value offollow-fork-mode) is debugged as usual, while the other is held suspended.

gdb中設定共享庫斷點問題

假設我的可執行程式是a,共享庫為b.so 我用gdb除錯a,想在b的某個原始檔 比如c.cpp,c.cpp與a不在同乙個目錄下 中設定斷點,使用下面的命令列 break c.cpp 123 提示說 no source file named c.cpp 我嘗試用下面各種方法設定c.cpp的路徑也不行 ...

C 關於gdb斷點的真相

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

C 關於gdb斷點的真相

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