Linux GDB調試常用命令

運行

  • run(r),遇到斷點處聽停止運行,等待下一步命令;
  • continue(c),繼續運行到下一個斷點或結束;
  • next(n),單步調試,遇到函數調用不進函數體,直接返回結果;
  • step(s),但不調試,遇到函數調用進入函數體;
  • until,在循環體重調試時,可以直接跳出循環體;
  • until+行號,運行至某行;
  • finish,運行程序,知道當前函數結束返回值,打印返回時的堆棧地址和返回值及參數等信息;
  • call 函數(參數),調用程序中可見的函數;
  • quit(q),退出gdb。

設置斷點

  • break+行號(b+n),在第n行出設置斷點;
  • break+行號 if (條件語句) (b+n if (i>9)),條件斷點,滿足條件時停止;
  • break+函數名(b+func),在函數的入口處設置斷點;
  • delete 斷點號n,刪除第n個斷點;
  • disable斷點號n,暫停第n個斷點;
  • enable短點號n,開啓第n個斷點;
  • clear 行號n,清除第n行斷點;
  • info b,顯示當前程序的斷點設置情況;
  • delete breakpoints,清除所有斷點;

查看源代碼

  • list(l),顯示程序源代碼,默認每次顯示10行;
  • list+行號,顯示行號前後10行代源碼;
  • list+函數名,顯示當前函數的源代碼;
  • list,接着上一次命令繼續顯示源代碼;

打印表達式

  • print 表達式(p+表達式);打印有效表達式的值,可以是函數調用;
  • watch 表達式,設置一個監視點,表達式被改變,gdb將終止調試;
  • whatis,查詢變量和函數;
  • info function,查詢所有函數;
  • info locals,顯示當前堆棧頁的所有變量;

查看運行信息

  • where/bt,顯示當前運行的堆棧列表;
  • bt backtrace,顯示當前調用的堆棧;
  • up/down 改變當前棧顯示的深度;
  • set args 參數,指定運行時的參數;
  • show args 參數,查看設置的參數;
  • info program,查看程序是否在運行,進程號,或被暫停的原因;

多窗口顯示

  • layout,分割窗口,一遍測試,一遍查看代碼;
  • layout src,顯示源碼;
  • layout asm,顯示反彙編;
  • layput regs,顯示源代碼/反彙編和CPU寄存器;
  • layout split,顯示源代碼和反彙編窗口;
  • Ctrl+L,刷新窗口。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章