日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

GDB调试入门

發(fā)布時(shí)間:2023/12/15 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GDB调试入门 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

啟動(dòng)gdb

gdb -tui:分屏顯示源代碼
gdb -q:不顯示開始的提示信息

可以在.bashrc中加入

alias gdb="gdb -q -tui"

開始調(diào)試

執(zhí)行run(需要提前設(shè)置斷點(diǎn)),也可以在調(diào)試過程中重新運(yùn)行調(diào)試的程序,run后可以跟隨發(fā)給該程序的任何參數(shù)。

常用命令

命令功能
list(簡(jiǎn)寫l)顯示當(dāng)前行前面和后面的10行代碼
list n1 n2顯示n1到行和n2行之間的代碼
list main顯示main函數(shù)代碼
info functions regex列出符合正則表達(dá)式的函數(shù)名稱
info breakpoints(簡(jiǎn)寫info b)查看當(dāng)前所有的斷點(diǎn)信息(斷點(diǎn)號(hào),斷點(diǎn)類型,斷點(diǎn)位置)
break func在當(dāng)前文件的func函數(shù)處設(shè)置斷點(diǎn)
break fileName:N在某文件的第N行處設(shè)置斷點(diǎn),當(dāng)前文件第N行設(shè)置斷點(diǎn)可以忽略fileName
break func(或fileName:N) if exp條件斷點(diǎn),exp成立則斷點(diǎn)
delete N刪除第N號(hào)斷點(diǎn)
delete刪除所有斷點(diǎn)
clear N清除第N行上的斷點(diǎn)
watch expexp成立程序停住
next(簡(jiǎn)寫n)單步執(zhí)行,遇到函數(shù)會(huì)跳過
next N執(zhí)行N次單步執(zhí)行
step(簡(jiǎn)寫s)單步執(zhí)行,遇到函數(shù)會(huì)進(jìn)入
finish執(zhí)行完當(dāng)前函數(shù),返回到調(diào)用它的位置
continue運(yùn)行到下一個(gè)斷點(diǎn)處
until(簡(jiǎn)寫u)鼠標(biāo)放到代碼行,運(yùn)行到該代碼行停止
jump N跳轉(zhuǎn)到第N行開始執(zhí)行,不會(huì)主動(dòng)在N行停住
run重新運(yùn)行調(diào)試的程序,可以帶參數(shù)
[Enter]直接回車執(zhí)行上次執(zhí)行的命令
print var(簡(jiǎn)寫p)查看變量var的值
print /x var按16進(jìn)制格式顯示變量值
ptype var查看變量var的結(jié)構(gòu)或類型
backtrach查看調(diào)用堆棧

多進(jìn)程調(diào)試

默認(rèn)設(shè)置下,在調(diào)試多進(jìn)程程序時(shí)GDB只會(huì)調(diào)試主進(jìn)程。但是GDB(>V7.0)支持多進(jìn)程的分別以及同時(shí)調(diào)試。換句話說,GDB可以同時(shí)調(diào)試多個(gè)程序。只需要設(shè)置follow-fork-mode(默認(rèn)值:parent)和detach-on-fork(默認(rèn)值:on)即可。

follow-fork-modedetach-on-fork說明
parenton只調(diào)試主進(jìn)程(GDB默認(rèn))
childon只調(diào)試子進(jìn)程
parentoff同時(shí)調(diào)試兩個(gè)進(jìn)程,gdb跟主進(jìn)程,子進(jìn)程block在fork位置
childoff同時(shí)調(diào)試兩個(gè)進(jìn)程,gdb跟子進(jìn)程,主進(jìn)程block在fork位置

設(shè)置方法:set follow-fork-mode [parent|child] set detach-on-fork [on|off]

查詢正在調(diào)試的進(jìn)程:info inferiors
切換調(diào)試的進(jìn)程: inferior
添加新的調(diào)試進(jìn)程: add-inferior [-copies n] [-exec executable] ,可以用file executable來分配給inferior可執(zhí)行文件。
其他:remove-inferiors infno, detach inferior

總結(jié)

以上是生活随笔為你收集整理的GDB调试入门的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。