gdb 切換到圖形頁面 ctrl + x + a
一.基本命令
1.如何進入gdb : gdb 可執行程式名稱(前提是編譯的時候需要加-g進行編譯)
2.gdb中清空螢幕: shell clear
3.設定斷點: b(break) + 行號/函式名/檔名:行號/... [斷點可以設定多個]
4.檢視斷點資訊: info breakpoints
5.使斷點失效: disable + 斷點的編號 使斷點有效: enable + 斷點的編號
6.刪除斷點: clear + 行號/函式名/檔名:行號/...
delete +斷點編號(斷點編號之間可以用空格隔開,若沒有引數,預設刪除所有斷點)
7.讓程式繼續執行: continue
8.檢視變數的值: p(print) + 變數名
10.進入函式: s(step)
11.讓函式執行: r(run)
12.退出dgb: q(quit)
二.多執行緒除錯
1. info threads: 檢視所有執行的執行緒資訊, *表示當前除錯的執行緒
2. thread + 執行緒號 表示切換執行緒
3. set scheduler-locking on 開始多執行緒單獨除錯,讓待除錯執行緒跑,其它執行緒阻塞。
4. set scheduler-locking off 關閉多執行緒單獨除錯,其它執行緒不阻塞。
三.多程序除錯
1. attach + pid 載入程序
2. set follow-fork-mode [parent|child] set detach-on-fork [on|off]
parent on 只除錯主程序(gdb預設)
child on 只除錯子程序
parent off 同時除錯兩個程序,gdb跟主程序,子程序block在fork位置
child off 同時除錯兩個程序,gdb跟子程序,主程序block在fork位置
四.段錯誤除錯
1. bt(backtrace) 檢視堆疊資訊(一般出現段錯誤會檢視);
bt + n 表示顯示棧頂的n個幀資訊 ;
bt + -n 表示顯示棧底的n個幀資訊。
2. frame + 堆疊幀(數字): 切換到幾號堆疊幀
3. up 向上乙個堆疊 up 後可加數字表示向上跳轉到幾個堆疊幀
4. down 向下乙個堆疊 down 後可加數字表示向下幾個堆疊幀
5. info frame 列印幀的資訊
6. info args 列印變數的值
0824 gdb除錯 vim基本操作
ulimit a 顯示分配資源資訊 如果行要顯示錯誤檔案core 需要設定 1.gdb 方面 編譯時 gcc g o main main.c 若要進行 gdb 除錯 必須有 g gdb 中 stop 暫停程序 list 顯示 break 設定斷點 info breakpoint 顯示斷點資訊 dis...
gdb基本除錯命令
因為近期在vim編輯器裡面嘗試著寫寫程式,然後就接觸到了gdb除錯。才剛剛接觸還是不很懂,像什麼設定斷點呀單步除錯呀什麼的,現在還沒怎麼用上。在這裡只是先寫一些自己剛剛學到的。之後的以後用到了在補充。首先是在vim裡面寫好了乙個簡單的程式,儲存為test 1.c.include int main 就...
gdb除錯基本技巧
本文主要介紹一些簡單的 常用的gdb除錯技巧。環境 gnu gdb gdb red hat enterprise linux 7.2 60.el6 4.1 1 include 2 3int test func2 void 4 1011 void test func1 int flag 12 14in...