本篇文章為大家展示了怎樣進(jìn)行g(shù)db attach 進(jìn)程調(diào)試,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

gdb調(diào)試正在運(yùn)行的進(jìn)程:
GDB可以對(duì)正在執(zhí)行的程序進(jìn)行調(diào)度,它允許開(kāi)發(fā)人員中斷程序 并查看其狀態(tài),之后還能讓這個(gè)程序正常地繼續(xù)執(zhí)行
(gdb) attach xxxxx --- xxxxx為利用ps命令獲得的子進(jìn)程process id
(gdb) stop --- 這點(diǎn)很重要,你需要先暫停那個(gè)子進(jìn)程,然后設(shè)置一些斷點(diǎn)和一些Watch
(gdb) break 37 -- 在result = wib(value, div);這行設(shè)置一個(gè)斷點(diǎn),可以使用list命令察看源代碼
Breakpoint 1 at 0x10808: file eg1.c, line 37.
(gdb) continue
Continuing.
Breakpoint 1, main () at eg1.c:37
37 result = wib(value, div);
(gdb) step
在完成調(diào)試之后,不要忘記用detach命令斷開(kāi)連接,讓被調(diào)試的進(jìn)程可以繼續(xù)正常運(yùn)行。
我們可以通過(guò) 1) gdb prog_name -> r 用在逐步調(diào)試自己的程序時(shí)
2) gdb -> attach process_id 正在運(yùn)行中的后臺(tái)程序突然卡在了某個(gè)地方,先ps再gdb/attach
3) gdb prog_name core 程序core掉了
三種方式對(duì)一個(gè)程序進(jìn)行調(diào)試;
1. thread——gdb 多線程調(diào)試命令:
info threads: 顯示當(dāng)前進(jìn)程中的線程;
thread thread_no: 進(jìn)入線程xx,通常緊接而來(lái)的是 bt/f 命令;
2. strace/ltrace:
前者關(guān)注系統(tǒng)調(diào)用和程序所接收的信號(hào);后者關(guān)注庫(kù)函數(shù)調(diào)用;
strace的應(yīng)用在 我們沒(méi)有程序的源碼,或者不方便從頭開(kāi)始運(yùn)行程序時(shí);可以方便查看一個(gè)應(yīng)用程序進(jìn)行了哪些系統(tǒng)調(diào)用。
而在希望知道程序都調(diào)用了動(dòng)態(tài)庫(kù)中的哪些函數(shù)時(shí),我們使用 ltrace。ltrace有個(gè)-S選項(xiàng),類似于strace功能。
3.檢查內(nèi)存泄漏的工具:
valgrind (in linux, free)
visual leak detector (windows , free)
boundschecker(windows, free)
profile工具:
oprofile
vtune
上述內(nèi)容就是怎樣進(jìn)行g(shù)db attach 進(jìn)程調(diào)試,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)網(wǎng)站制作公司行業(yè)資訊頻道。
本文標(biāo)題:怎樣進(jìn)行g(shù)dbattach進(jìn)程調(diào)試-創(chuàng)新互聯(lián)
文章轉(zhuǎn)載:http://chinadenli.net/article48/dghpep.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開(kāi)發(fā)、虛擬主機(jī)、網(wǎng)站導(dǎo)航、企業(yè)建站、網(wǎng)站維護(hù)、軟件開(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)
猜你還喜歡下面的內(nèi)容