參考鏈接:https://blog.csdn.net/niyaozuozuihao/article/details/91802994
?
遇到的問題:缺少依賴庫 使用debuginfo-install coreutils-8.22-24.el7.x86_64安裝 問題CentOS網(wǎng)絡(luò)配置默認(rèn)未連接 手動(dòng)設(shè)置網(wǎng)絡(luò)連接后問題解決。
?
list 行號(hào):將顯示當(dāng)前文件以“行號(hào)”為中心的前后10行代碼,如:list 12;
list 函數(shù)名:將顯示“函數(shù)名”所在函數(shù)的源代碼,如:list main;
list :不帶參數(shù),將接著上一次 list 命令的,輸出下邊的內(nèi)容。
Info breakpoints(簡(jiǎn)寫為info b):顯示斷點(diǎn)信息
(1.Num:斷點(diǎn)編號(hào)2.Disp:斷點(diǎn)執(zhí)行一次之后是否有效 keep有效 diss無效3.Enb:當(dāng)前斷點(diǎn)是否有效 y:有效 n:無效 Address:內(nèi)存地址 What:位置);
b fn1 if a>b:條件斷點(diǎn)設(shè)置;
break func(break縮寫為b):在函數(shù)func()的入口處設(shè)置斷點(diǎn),如:break cb_button;
delete 斷點(diǎn)號(hào)n:刪除第n個(gè)斷點(diǎn);
disable 斷點(diǎn)號(hào)n:暫停第n個(gè)斷點(diǎn);
enable 斷點(diǎn)號(hào)n:開啟第n個(gè)斷點(diǎn);
clear 行號(hào)n:清除第n行的斷點(diǎn);
delete breakpoints:清除所有斷點(diǎn)。
next(簡(jiǎn)寫n):單步執(zhí)行程序,但是遇到函數(shù)時(shí)會(huì)直接跳過函數(shù),不進(jìn)入函數(shù);
step(簡(jiǎn)寫s):單步執(zhí)行程序,但是遇到函數(shù)會(huì)進(jìn)入函數(shù);
continue(簡(jiǎn)寫c):繼續(xù)執(zhí)行程序,直到下一個(gè)斷點(diǎn)或者結(jié)束;
until:當(dāng)你厭倦了在一個(gè)循環(huán)體內(nèi)單步跟蹤時(shí),這個(gè)命令可以運(yùn)行程序直到退出循環(huán)體;
until 行號(hào):運(yùn)行至某行,不僅僅用來跳出循環(huán);
finish: 運(yùn)行程序,直到當(dāng)前函數(shù)完成返回,并打印函數(shù)返回時(shí)的堆棧地址和返回值及參數(shù)值等信息;
call 函數(shù)(參數(shù)):調(diào)用程序中可見的函數(shù),并傳遞“參數(shù)”,如:call gdb_test(55)。
display 表達(dá)式:在單步運(yùn)行時(shí)將非常有用,使用display命令設(shè)置一個(gè)表達(dá)式后,它將在每次單步進(jìn)行指令后,緊接著輸出被設(shè)置的表達(dá)式及值。如:display a;
watch 表達(dá)式:設(shè)置一個(gè)監(jiān)視點(diǎn),一旦被監(jiān)視的“表達(dá)式”的值改變,gdb將強(qiáng)行終止正在被調(diào)試的程序。如:watch a;
info function:查詢函數(shù);
擴(kuò)展info locals:顯示當(dāng)前堆棧頁的所有變量
where/bt :當(dāng)前運(yùn)行的堆棧列表;
bt backtrace 顯示當(dāng)前調(diào)用堆棧;
up/down 改變堆棧顯示的深度;
set args 參數(shù):指定運(yùn)行時(shí)的參數(shù);
show args:查看設(shè)置好的參數(shù);
info program: 來查看程序的是否在運(yùn)行,進(jìn)程號(hào),被暫停的原因。
layout:用于分割窗口,可以一邊查看代碼,一邊測(cè)試;
layout src:顯示源代碼窗口;
layout asm:顯示反匯編窗口;
layout regs:顯示源代碼/反匯編和CPU寄存器窗口;
layout split:顯示源代碼和反匯編窗口;
Ctrl L:刷新窗口。
聯(lián)系客服