GDB實用教程

1. 調試stl容器等的時候不方便查看內容,可以自定義一個腳本(網上有下載),比如叫std.gdb。

     調試的時候添加腳本(eg):source  ~/std.gdb,然後就可以使用腳本中定義的函數查看內容。


2.GDB單步執行,step(s)、next(n)

  (1)n相當於VS中的“Step Over(F10)"(單步跟蹤)。

  (2)s相當於VS中的“Step Into(F11)"(如果此行代碼中有函數調用,則進入該函數).

  (3)c相當於VS中的“Continue(F5)”(繼續運行到下一個斷點).

  (4)那VS中的"Step Out(Ctrl+F11)"對應與哪個命令呢?

    finish ,用於跳出函數(當前frame).

  (5)其實GDB還可以僅僅跳出循環或者一直運行到某一行.

    until + num(比如 until 22),一直運行到第22行,假設22行就是循環的下面,便達到跳出循環的目的).


3.GDB查看堆棧信息:

 bt ,列出函數的調用關係.

 frame(f) + num(比如 f 2),則選擇進入到第二層調用的函數(堆棧).


4.GDB在程序運行中打斷點
  有時候gdb調試的時候,當前程序已經在運行了但是沒有斷點使程序停下來,如果這時候想加斷點,這時候很多gdb新手都是程序退出,然後加斷點,再重新運行(r),這樣效率慢。
  其實GDB也是可以像vs那樣隨時加斷點的,就是Ctrl+c,這個組合鍵並不是使gdb退出,而是使中斷方便加斷點或者輸入其他gdb命令,加完斷點後繼續按c即可使程序從當前繼續運行調試。


 



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章