程序調(diào)試 ?| ?GDB常用命令備忘錄


最近項目需要用到gdb調(diào)試程序, 鑒于每次用時都要google回憶下常用的命令,效率有點(diǎn)low,故整理份命令備忘錄,如下:

GDB Layout命令

每次gdb時不知道程序跑到哪了,只能list?? 錯, layout窗口才是王道!!

命令 功能
layout src 顯示源碼窗口
layout asm 顯示匯編窗口
layout split 顯示源碼 & 匯編窗口
layout regs 顯示匯編 & 寄存器窗口
layout next 下一個layout
layout prev 上一個layout
C-x 1 單窗口模式
C-x 2 雙窗口模式
C-x a 回到傳統(tǒng)模式

GDB 跳轉(zhuǎn)執(zhí)行命令

命令 功能
start 開始啟動程序,并停在main第一句等待命令
step 執(zhí)行下一行語句, 如語句為函數(shù)調(diào)用, 進(jìn)入函數(shù)中
next 執(zhí)行下一行語句, 如語句為函數(shù)調(diào)用, 不進(jìn)入函數(shù)中
finish 連續(xù)運(yùn)行到當(dāng)前函數(shù)返回為止
continue 從當(dāng)前位置繼續(xù)運(yùn)行程序
return 強(qiáng)制令當(dāng)前函數(shù)返回
call func() 強(qiáng)制調(diào)用函數(shù), 也可以用print func()
run 從頭開始運(yùn)行程序
quit 退出程序

注: call func() 與 print func() 的區(qū)別,在于調(diào)用void函數(shù)時, call func()沒有返回值, 而print有~~

GDB調(diào)試輸出命令

命令 功能
print 輸出變量值 & 調(diào)用函數(shù) & 通過表達(dá)式改變變量值
info var 查看全局 & 靜態(tài)變量
info locals 查看當(dāng)前函數(shù)局部變量
list 查看當(dāng)前位置代碼
backtrace 查看各級堆棧的函數(shù)調(diào)用及參數(shù)
set var 變量=xx 將變量賦值為xx

注:
p/x 3*i -- x for hexadecimal, o for octal, d for decimal, f for float, c for char, s for string

斷點(diǎn)

命令 功能
b N_LINE 在第N_LINE行上設(shè)置斷點(diǎn)
b func 在func函數(shù)上設(shè)置端點(diǎn)
delete breakpoints 刪除斷點(diǎn)
disable breakpoints 禁用斷點(diǎn)
enable 斷點(diǎn)號 啟動端點(diǎn)
info breakpoints 查看斷點(diǎn)列表
break foo if x>0 設(shè)置條件斷點(diǎn)

觀察點(diǎn)

當(dāng)待觀察點(diǎn)被讀 或 被寫時,程序停下來,并輸出相關(guān)信息

命令 功能
watch 設(shè)置寫觀察點(diǎn)
rwatch 設(shè)置讀觀察點(diǎn)
awatch 設(shè)置讀寫觀察點(diǎn)
info watchpoints 查看觀察點(diǎn)列表

Display跟蹤點(diǎn)

命令 功能
display var 每次停下來時,顯示設(shè)置的變量var的值
undisplay 取消跟蹤顯示
info display 設(shè)置讀寫觀察點(diǎn)
info watchpoints 查看跟蹤列表
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 概述 GDB是一個由GNU開源組織發(fā)布的、UNIX/Linux操作系統(tǒng)下的、基于命令行的、功能強(qiáng)大的程序調(diào)試工具。...
    咕咕鷄閱讀 21,124評論 0 8
  • gdb是gcc的交互式調(diào)試器。 假設(shè)程序文件是a.c,內(nèi)容是(這個程序有錯誤): #include int j; ...
    金石明鏡閱讀 1,146評論 0 1
  • 版權(quán)聲明:本文為 cdeveloper 原創(chuàng)文章,可以隨意轉(zhuǎn)載,但必須在明確位置注明出處! gdb 簡介 gdb ...
    登龍zZ閱讀 7,688評論 1 15
  • [轉(zhuǎn)]淺談LLDB調(diào)試器文章來源于:http://www.cocoachina.com/ios/20150126/...
    loveobjc閱讀 2,735評論 2 6
  • 一位很要好的朋友要結(jié)婚了,眼看好事將近,他倒開始抑郁了,騰云駕霧間,他幽幽的說:草原上的狼沒吃的,還能自由地跑,現(xiàn)...
    Mr小Z閱讀 1,329評論 14 7

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