在Linux斷點(diǎn)調(diào)試命令窗口中讀取數(shù)據(jù),可以使用以下命令:
成都創(chuàng)新互聯(lián)專(zhuān)注于企業(yè)成都全網(wǎng)營(yíng)銷(xiāo)、網(wǎng)站重做改版、西充網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、html5、商城系統(tǒng)網(wǎng)站開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性?xún)r(jià)比高,為西充等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
1. x/nfu addr: 使用指定的格式和大小從指定地址讀取數(shù)據(jù)。n表示要讀取的數(shù)據(jù)數(shù)量,f表示數(shù)據(jù)格式團(tuán)旦,u表示數(shù)據(jù)大小。如或羨
2. info registers: 查渣拍看當(dāng)前程序中各個(gè)寄存器的值。
3. disassemble: 查看當(dāng)前程序指令的匯編代碼。
4. print: 打印當(dāng)前程序的變量的值。
5. stepi/si: 執(zhí)行一條匯編指令。
6. nexti/ni: 執(zhí)行一條匯編指令,但不進(jìn)入函數(shù)體內(nèi)部。
GDB 是GNU開(kāi)源組織發(fā)布的一個(gè)強(qiáng)大的UNIX下的程序調(diào)試工具。或許,各位比較喜歡那種圖形界面方式的,像VC、BCB等IDE的調(diào)試,但如果你是在 UNIX平臺(tái)下做軟件,你會(huì)發(fā)現(xiàn)GDB這個(gè)調(diào)試工具有比VC、BCB的圖形化調(diào)試器更強(qiáng)大的功能。所謂“寸有所長(zhǎng),尺有所短”就是這個(gè)道理。 一般來(lái)說(shuō),GDB主要幫忙你完成下面四個(gè)方面的功能:
啟動(dòng)你的程序,可以按照你的自定義的要求隨心所欲的運(yùn)行程序。
可讓被調(diào)試的程序在你所指定的調(diào)置的斷點(diǎn)處轎槐停住。(斷點(diǎn)可以是條件表達(dá)式)
當(dāng)程序被停住時(shí),可以檢查此時(shí)你的程序中所發(fā)生的事。
動(dòng)態(tài)的改變你程序的執(zhí)行環(huán)境。
從上面看來(lái),GDB和一般的調(diào)試工具沒(méi)有什么兩樣,基本上也是完成這些功能,不過(guò)在細(xì)節(jié)上,你會(huì)發(fā)現(xiàn)GDB這個(gè)調(diào)試工具的強(qiáng)大,大家可能比較習(xí)慣了圖形化的調(diào)試工具,但有時(shí)候,命令行的調(diào)試工具卻有著圖形化工具所不能完成的功能。讓我們一一看來(lái)。亂帆稿
gdb基本命令列表:
實(shí)例:
1 新建一個(gè)源文件vi swap.cc
源文件內(nèi)容如下:
#includeiostream
using namespace std;
void swap(int a,int b)
{
int tmp;
tmp=a;
a=b;
b=tmp;
}
int main()
{
int i,j;
coutendl"Input two int number:"endl;
cinij;
cout"Before swap(),i="i" j="jendl;
swap(i,j);
cout"After swap(),i="i" j="jendlendl;
return 0;
}
直接復(fù)制粘貼生成源文件
2.生成可執(zhí)行文件 g++ -g -o swap swap.cc,注意必須使用-g參數(shù),編譯會(huì)加入調(diào)試信息,否則無(wú)法調(diào)試執(zhí)行文件
3.啟動(dòng)調(diào)試 gdb swap
3.1 查看源嘩孝文件 list 1,回車(chē)重復(fù)上一次指令
3.2設(shè)置調(diào)試斷點(diǎn) break 16,在第16行設(shè)置斷點(diǎn),info break查看斷點(diǎn)信息(亦可使用縮寫(xiě)i b )
3.3 調(diào)試 運(yùn)行 輸入run 或者r
3.3 單步調(diào)試,step 或者 s進(jìn)入函數(shù)內(nèi)部
3.4查看變量 print b 或者 p b
3.5查看函數(shù)堆棧bt,退出函數(shù)finish
3.6 繼續(xù)運(yùn)行直到下一個(gè)斷點(diǎn)或主函數(shù)結(jié)束continue或者c
3.7 退出調(diào)試 輸入q
根據(jù)這些可以查看系統(tǒng)調(diào)用的完整性,比如說(shuō)服務(wù)器連接數(shù)一直漲,說(shuō)明fd沒(méi)有close,close調(diào)用在上邊有缺失
strace -t -T -v -f -p 16705 -Te write 只看write系仿散游統(tǒng)調(diào)用
sudo gcore xxpid 生成dump文件
sudo dlv core binfile core.xxxx 調(diào)試coredump文件,查看調(diào)用棧、goroutines
查看系統(tǒng)級(jí)別日志 /var/log/messages
messages 日志是核心系統(tǒng)日志文件。它包含了系統(tǒng)啟動(dòng)時(shí)的引導(dǎo)消息,以及系統(tǒng)運(yùn)行時(shí)的其他狀態(tài)消息。IO 錯(cuò)誤、網(wǎng)絡(luò)錯(cuò)誤和其他系統(tǒng)錯(cuò)誤都會(huì)記錄到這個(gè)文件中。其他信息,比如某個(gè)人的身份切換為備銷(xiāo) root,也在這里列出。如果服務(wù)正在運(yùn)行,比如 DHCP 服務(wù)器,您可以在 messages 文件中觀察它的活動(dòng)。通常,/var/log/messages 是您在做故障診斷時(shí)首先要查看的文件。
tcpdump -i lo -nnA 'port 7076' and 'tcp[13] 4 != 0 ' 抓rst包,發(fā)送給7076端口或者是7076端口發(fā)出去的
mac osx系統(tǒng)掘罩:sudo tcpdump -i lo0 -nnA 'port 3000'
新聞名稱(chēng):linux命令調(diào)試過(guò)程 linux 調(diào)試
標(biāo)題鏈接:http://vcdvsql.cn/article42/ddpiihc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、ChatGPT、小程序開(kāi)發(fā)、企業(yè)網(wǎng)站制作、品牌網(wǎng)站建設(shè)、App開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)