gdb調(diào)試攻略

簡介

gdb是一個由GNU開源組織發(fā)布的、Unix/Linux操作系統(tǒng)下的、基于命令行的、功能強大的程序調(diào)試工具。相比于VS里面的圖形化調(diào)試工具,其功能更加強大。

安裝

sudo apt-get install gdb

調(diào)試步驟

  1. 編譯:gcc -g hello.c -o hello (在編譯選項加入 -g )
  2. 調(diào)試:gdb hello
  3. 使用gdb命令進行調(diào)試

常用命令

運行:
  • run / r:運行程序,遇到斷點處停止
  • continue / c:繼續(xù)執(zhí)行,到下一個斷點處
  • next / n:單步執(zhí)行且不進入函數(shù)
  • step / s:單步執(zhí)行且進入函數(shù)
  • until:在循環(huán)體中運行直到退出循環(huán)
  • finish:運行程序直到當(dāng)前函數(shù)完成返回
  • call:調(diào)用程序中可見的函數(shù)并可傳參 - call func(params)
  • enter(回車鍵):重復(fù)上次指令
  • quit / q:退出gdb
斷點
  • break n:在第n行設(shè)置斷點
  • clear n:清楚第n行的斷點
  • break func():在程序func()入口處設(shè)置斷點
  • delete n:刪除第n個斷點
  • disable n:暫停第n個斷點
  • enable n:開啟第n個斷點
  • info b:顯示當(dāng)前斷點的設(shè)置情況
  • delete breakpoints:清楚所有的斷點
查看源碼
  • list / l:列出源代碼,默認10行 - list
  • list n:以n行為中心列出前后10行
  • list func():顯示該函數(shù)的源代碼
打印表達式
  • print / p 表達式:打印表達式的值,表達式可以為變量、字符串、函數(shù)調(diào)用
  • print &變量:查看變量所在地址(指針)
  • x addr:查看addr地址的內(nèi)存
  • display 表達式:設(shè)置每次單步運行后輸出該表達式的值
  • watch 表達式:監(jiān)視表達式,當(dāng)其改變時輸出前后變化
  • whtatis:查詢變量或函數(shù)
  • info function:查詢函數(shù)
  • info locals:顯示當(dāng)前堆棧頁的所有變量
  • info registers:顯示當(dāng)前寄存器的值
查詢運行信息
  • where / bt:當(dāng)前運行的堆棧列表
  • bt backtrace:顯示當(dāng)前調(diào)用堆棧
  • up / down:改變堆棧顯示的深度
  • set args參數(shù):指定運行時的參數(shù)
  • show args參數(shù):查看設(shè)置好的參數(shù)
  • info program: 查看程序是否在運行,進程號,被暫停的原因
分割窗口
  • layout src:顯示源代碼窗口
  • layout asm:顯示反匯編窗口
  • layout split:顯示源代碼、反匯編窗口
  • layout regs:顯示源代碼、反匯編、CPU寄存器窗口
  • Ctrl + L:刷新窗口
  • Ctrl + x + a:退出layout
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 程序調(diào)試的基本思想是“分析現(xiàn)象->假設(shè)錯誤原因->產(chǎn)生新的現(xiàn)象去驗證假設(shè)”這樣一個循環(huán)過程,根據(jù)現(xiàn)象如何假設(shè)錯誤原...
    Manfred_Zone閱讀 16,747評論 0 26
  • gdb是一個由GNU開源組織發(fā)布的、UNIX/LINUX操作系統(tǒng)下的、基于命令行的、功能強大的程序調(diào)試工具。 啟動...
    techping閱讀 1,659評論 0 2
  • layout: wikititle: Android逆向分析筆記categories: Reverse_Engin...
    超哥__閱讀 10,910評論 1 17
  • 文/小笠無敵 昨天下午,安安終于睡熟了,這幾天感冒加咳嗽讓她睡不好,動不動就哭。我的火氣也有點大,對安爸總是冷嘲熱...
    荔枝小蜜閱讀 541評論 7 13
  • 想做大?想做強?請放棄熟人市場、用心開擴新渠道! 有些人做市場、搞銷售、擔(dān)心自己沒人脈、朋友同學(xué)少、怕做不到、做不...
    七老袁滿閱讀 326評論 0 2

友情鏈接更多精彩內(nèi)容