1、前言ide
ACM開賽在即,得知dev-cpp不適用以後,不得再也不次重拾gdb基本操做。。。函數
展轉Emacs和Code::blocks數次以後,感受仍是Emacs更適合個人風格,儘管配置稍顯麻煩,但其開放性不是其餘ide可比的。ui
2、正文spa
TIPS:對於任一命令,若是標有斜槓/,例如run/r,則前面表示全稱,後面表示簡寫,二者都可以被執行,通常爲了方便會選擇簡寫。調試
一、主體it
(gdb)help x:查看命令幫助(x可省表示查看所有,也能夠是命令名稱,表示查看某一具體命令的幫助);變量
(gdb)run/r:開始運行文件;配置
(gdb)list/l x:查看原代碼(x可省表示查看所有,也能夠是數字表示查看第x行,也能夠爲函數名稱表示查看某一函數)方法
(gdb)quit/q:退出gdb;next
二、斷點
(gdb)break/b x:設置斷點(x能夠爲數字表示第x行,也能夠爲函數名稱表示設置在該函數);
(gdb)(delete breakpoints)/d x:刪除第x個斷點(x只能爲柱子);
三、運行
(gdb)next/n:單步調試(逐過程,函數直接執行);
(gdb)step/s:單步調試(逐語句:跳入自定義函數內部執行);
(gdb)continue/c:繼續運行;
(gdb)finish:結束當前函數,返回到函數調用點;
四、查看
(gdb)print/p x:顯示具體變量x的值(x只能爲變量);
(gdb)display/disp x:追蹤查看具體變量x的值(x只能爲變量);
(gdb)undisplay/undisp x:取消追蹤第x條變量(x只能爲數字);
五、其餘(這些暫且用得少)
(gdb)info/i x:查看各類數據(x能夠爲不少內容,好比breakpoints,表示查看當前設置的全部斷點,詳情能夠輸入"help info");
(gdb)watch:被設置觀察點的變量發生修改時,打印顯示;
(gdb)enable breakpoints:啓用斷點;
(gdb)disable breakpoints:禁用斷點。
這裏僅僅列出了ACMer通常狀況下會用到的命令,並且介紹得比較簡單,想了解更多其餘的高級命令或者更詳細的使用方法能夠自行在gdb下輸入"help"。