1. 程式人生 > >GDB常用除錯方式

GDB常用除錯方式

使用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
鍵補齊 gdbb(break) func 或者 b(break) 4 在對應函式或行數處設定斷點。 gdbclear linenumber 刪除指定行的斷點 gdbq quit 退出gdb gdbrun 執行程式碼 gdbinfo break 檢視斷點資訊 gdbn next 單條語句執行 gdbs 步入函式 gdbc 繼續執行程式,continue命令簡寫 gdbp print xx 列印變數xx的值 gdbdisplay xx 顯示xx值 將會一直顯示用來監聽 gdbbt 檢視函式堆疊 gdbfinish 退出函式 gdbinfo 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>進行程式除錯