gdb是c++的除錯工具,編譯的時候加上-g選項即可。簡單方便,可以一步一步進行除錯。
1. b + 函式名或者檔案:行數。設定斷點,執行的時候可以在斷點處卡住。
2. start:卡在main函式第一行,只載入動態,靜態庫等預處理程式。不執行。
2.1:有些動態庫的函式一開始沒有被載入進來。必須使用這個命令才能把動態庫的函式也載入進來。
2.2:有些程式執行需要帶引數。可以 start後跟引數即可。
3. run:直接開跑。
4. set args:設定執行引數。就是./main 1 2 3,後面的1 2 3
5. c: 跳到第乙個被設定的斷點處。
6. i locals : 檢視所有當前函式的臨時變數。
7. i threads : 檢視程序的所有執行緒。
8. p + 變數 : 檢視當前變數,可執行簡單的->, *, 加減乘除等操作。
9. l : 檢視附近**。
11. s:跳到執行到的當前函式裡面。
12. bt:檢視函式棧。(重要)
13. t + 執行緒號,進入某個執行緒。
14. up : 向棧頂移動。
15.down:向棧底移動。
16.attach + 程序號,進入死迴圈了的程序。然後配合 i threads,t + thread id等命令使用。
17.i register 檢視暫存器內的值。其中每層函式棧都不同。
18. dess+table 可以看到彙編**。
GDB安裝以及基礎命令
apt get install gdbgdb啟動方式readelf h檢視檔案頭 其中的entry point address為程式起始位址1.基於原始碼的除錯 基礎知識 基礎指令 條件斷點 若在for中迴圈100次,需要在第50次迴圈停下來 b 行號 if i 50 多程序follow fork ...
GDB除錯基礎
breakpoint 2,func n 250 at tst.c 5 5 int sum 0,i gdb n 6 for i 1 i n i gdb p i 列印變數i的值,print命令簡寫。1 134513808 gdb n 8 sum i gdb bt 檢視函式堆疊。0 func n 250 ...
GDB基礎用法
gdb gnu debugger 是gcc的除錯工具。其功能強大,現描述如下 gdb主要幫忙你完成下面四個方面的功能 1.啟動你的程式,可以按照你的自定義的要求隨心所欲的執行程式。2.可讓被除錯的程式在你所指定的調置的斷點處停住。斷點可以是條件表示式 3.當程式被停住時,可以檢查此時你的程式中所發生...