目錄
1. 普通斷點
2. 條件斷點
3. 資料斷點
4. 函式斷點
5.刪除斷點
6. 監視
7.儲存斷點
根據**行數設定斷點是最常見的一種方式,在debug程式執行前就可以進行斷點的配置。如:
(gdb) b src/main.cpp:127
當程式執行到main.cpp
檔案的第127行時就會出發斷點。
顧名思義,這種斷點是當滿足一定條件時才會觸發,比較適合進行異常排查。設定方式(gdb)break line-or-function if (condition)
, 如:
(gdb) b src/main.cpp:127 if cnt==10
就是根據位址來進行設定斷點,只能是在debug程式執行之後設定,因為只有執行後,你才能很方便地獲知變數的位址。當該位址上的內容發生改變時就會觸發斷點。
設定資料斷點有兩種方式,一種是直接指出位址值,如:
(gdb) b *0x400522
(gdb) b &變數名
這種斷點是當程式執行到某個程式時就會觸發斷點。設定方式如:
(gdb) b funcname
但是函式斷點並不是對所有函式都有效,比如優化後的靜態函式和inline函式等,可能就無法觸發斷點。
設定監視也必須是在程式執行後才行。如:
(gdb) watch *位址 # 當位址所指內容傳送變化時斷點
(gdb) watch var #當var值變化時,斷點
(gdb) watch (condition) #當條件符合時,斷點
監視也被稱為硬體斷點。可以監測棧變數和堆變數值的變化,當被監測變數值發生變化時,程式被停住。 使用gdb新增斷點的幾種方式
根據 行數設定斷點是最常見的一種方式,在debug程式執行前就可以進行斷點的配置。如 gdb b src main.cpp 127當程式執行到main.cpp檔案的第127行時就會出發斷點。顧名思義,這種斷點是當滿足一定條件時才會觸發,比較適合進行異常排查。設定方式 gdb break line o...
gdb幾種設定斷點的方式
gdb幾種設定斷點的方式 方式1 根據函式名,查詢符號 symbol 設定斷電 此種方式最為簡單,閱讀源 了解函式如何呼叫,在需要暫停執行的函式入口進行斷點設定。但並不是所有函式,任何時候都能設定斷點的。比如優化後的靜態函式,inline函式。在特定的情況下,通過函式名進行斷點設定便不可為,而又需要...
ROS使用gdb除錯斷點
我目前沒有使用roslaunch 通過修改 launch prefix xterm e gdb ex run args 獲得成功。我使用gdb去啟動orb slam節點。在 catkin ws devel lib orb slam下,終端開啟輸入 gdb orb slam雖然我會提示 reading...