Posted on 2008-10-27 13:06
Prayer 閱讀(729)
評(píng)論(0) 編輯 收藏 引用 所屬分類(lèi):
C/C++
dbx(SUN studio)調(diào)試工具:在利用 dbx 對(duì)程序進(jìn)行源代碼級(jí)調(diào)試前,必須使用 -g 選項(xiàng)
啟動(dòng):dbx program_name加載要調(diào)試的程序,調(diào)試JAVA程序dbx program_name.class|.jar,可以指定進(jìn)程ID來(lái)連接正在運(yùn)行的進(jìn)程進(jìn)行調(diào)試。
也可以在dbx運(yùn)行時(shí)加載調(diào)試程序:(dbx)debug program_name
運(yùn)行調(diào)試程序:run [運(yùn)行參數(shù)]
查看core文件:可以dbx program_name core,或者dbx - core,再使用where命令顯示棧跟蹤,找到崩潰位置
設(shè)置斷點(diǎn):stop in 函數(shù);stop at file:line ; 也可以先通過(guò)file file-name設(shè)置當(dāng)前文件,list function查看源文件,確定要設(shè)置斷點(diǎn)的行數(shù)。在C++中可以將關(guān)鍵字(inmember、inclass、infunction 或 inobject)在類(lèi),成員函數(shù),對(duì)象中設(shè)置斷點(diǎn)。stop change variable可設(shè)置當(dāng)變量改變時(shí)停止。條件停止斷點(diǎn):stop cond condition。另外在動(dòng)態(tài)庫(kù)中可以在動(dòng)態(tài)共享庫(kù)的函數(shù)中以在程序啟動(dòng)時(shí)在鏈接的庫(kù)中設(shè)置斷點(diǎn)的同樣方式來(lái)設(shè)置斷點(diǎn)。
列出所有斷點(diǎn):status
刪除斷點(diǎn):delete 斷點(diǎn)號(hào)
單步執(zhí)行:step、next,step 命令步入函數(shù),而 next 命令步過(guò)函數(shù)。step up將一直執(zhí)行,直至當(dāng)前函數(shù)將控制返回調(diào)用它的函數(shù)為止。
繼續(xù)執(zhí)行:cont
查看調(diào)用棧:where 調(diào)用棧代表那些已被調(diào)用但尚未返回各自調(diào)用程序的所有當(dāng)前活動(dòng)例程。在棧中,函數(shù)及其參數(shù)按調(diào)用的順序進(jìn)行存放。棧跟蹤顯示程序流執(zhí)行的停止位置以及執(zhí)行如何到達(dá)此點(diǎn)。它提供程序狀態(tài)的簡(jiǎn)明描述。
檢查變量:print 變量名
退出:quit
連接已運(yùn)行的進(jìn)程:attach pid
分離已連接的進(jìn)程:detach pid
查找符號(hào):whereis symbol 打印指定符號(hào)所有具體值的列表
要打印輸出標(biāo)識(shí)符的聲明whatis
對(duì)子進(jìn)程使用運(yùn)行時(shí)檢查,可通過(guò)attach 子進(jìn)程ID連接到子進(jìn)程進(jìn)行調(diào)試。
要顯示當(dāng)前進(jìn)程的所有線程信息:執(zhí)行thread,切換到指定線程:thread thr_id
信號(hào)處理:
cont -sig signal將信號(hào)轉(zhuǎn)發(fā)到進(jìn)程;catch顯示當(dāng)前正在捕獲的信號(hào)列表;ignore顯示程序忽略信號(hào)列表
shell方式切換:sh