[持續更新][備份]GDB調試工具經常使用命令

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"。

相關文章
相關標籤/搜索