2013年1月16日 星期三

GDB指令筆記

留一下備忘錄
  • break/b : 設定break point,break main, break 10, break test.C:10
  • run/r : 執行
  • backtrace/bt : 列印出stack frame, bt 10, bt full 10
  • print/p : 列印出變數數值
  • info register : 列印出regiseter內容
  • next/n : step by step
  • step/s : step into
  • continue/c : 繼續執行
  • watch expression : 監視變數
  • delete # : 刪除break point或者 watch point
  • set variable var=expression : 設定變數內容
  • generate-core-file
  • info proc : 印出在/proc內容
  • break #breakpoint if condition : 設定中斷點條件
  • condition #breakpoint condtion : 為中斷點設定條件
  • condition #breakpoint : 取消中斷點的條件
  • clear : 清除所有中斷點
  • disable : 暫停使用所有中斷點
  • enable : 啟用中斷點
  • info b : 列出所有中斷點
  • set history/show history : 顯示出使用過的指令
  • set history save/show history save : 儲存使用過的指令
  • source file_name : 載入設定檔案

commands #breakpoint
...
...
end
在中斷點中斷時執行的指令
define #command
...
...
end
document
...
...
end
可以用來設定指令,比方說
define li
  x/10i $pc
end
document li
  list machine instruction
end

help li則是印出指令說明

使用core file當作gdb的輸出的時候,必須加上-s exec_file或者在進入gdb後file exec_file,才可以載入symbol table

attach pid將某個process加入gdb模式,使用detach離開

參考資料:
http://www.study-area.org/cyril/opentools/opentools/debug.html

沒有留言:

張貼留言