GDB常用除錯方式
阿新 • • 發佈:2019-01-26
使用gdb除錯之前,首先要利用gcc/g++生成可利用GDB除錯的檔案,然後在進行除錯。
1.gcc/g++ 除錯
常採用的方式為gcc /g++ -g -Wall xx.c/cpp -o xx
其中gcc/g++根據不同的編譯檔案選擇編譯工具,-g表示編譯器在編譯的時候產生除錯資訊,-Wall表示生成所有警告資訊,xx.c/cpp表示用於編譯的原始檔,-o 表示指定輸出檔案的檔名,xx表示生成的可執行檔案。
2. gdb除錯
(1)啟動gdb的方法:
gdb <program>
也可以直接進入gdb除錯介面,再用help來檢視相關指令。
在寫具體指令時可以用第一個字母,或者用tab 鍵補齊
(gdb)b(break) func 或者 b(break) 4 在對應函式或行數處設定斷點。
(gdb)clear linenumber 刪除指定行的斷點
(gdb)q quit 退出gdb
(gdb)run 執行程式碼
(gdb)info break 檢視斷點資訊
(gdb)n next 單條語句執行
(gdb)s 步入函式
(gdb)c 繼續執行程式,continue命令簡寫
(gdb)p print xx 列印變數xx的值
(gdb)display xx 顯示xx值 將會一直顯示用來監聽
(gdb)bt 檢視函式堆疊
(gdb)finish 退出函式
(gdb)info threads 顯示當前執行緒
(2) cmake-gdb
如果用使用cmake-gdb,則需要在cmake中新增一下程式碼。
SET(CMAKE_BUILD_TYPE "Debug")
SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g2 -ggdb")
SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")
add_executable(XX XX/X)
從而可直接使用gdb <program>進行程式除錯