dbx
是unix
下普遍的原始碼除錯工具
, 掌握好了
dbx的使用
,無疑象增添了泥在
unix
下程式設計的一把利器
查詢了一下整個
unix
板精華區
,都沒有發現有
dbx的介紹文件
, 大概各位大俠都對這個土土的東東都不願浪費筆墨巴
研究了一下午
dbx的連機文件,發現
dbx很是簡單易用
現在簡單介紹一下
dbx的使用方法
,讓更多的朋友免去獨自研究的苦楚
dbx主要用來除錯用
f77或
cc等編譯工具生成的
fortran和c
語言的源**
當然該程式必須在除錯過程中用
-g引數包含入除錯資訊
,比方說
我在unix
下編寫了乙個
hello.c
的程式:
void hello();
main
void hello() 先用
cc -o helloexe -g hello.c
編譯生成帶除錯資訊的
helloexe
檔案然後用
dbx helloexe
來除錯該檔案
顯示dbx)
這個dbx
下除錯的提示符
現在泥還不處在除錯狀態下
,需要首先進入除錯狀態
, 這樣泥需要先確定從**開始第一次中斷
,以便以後的跟蹤除錯
這裡從第
7行開始除錯
,用命令
: dbx)stop at 7
設定好斷點後就開始執行
; dbx)run
這時程式執行到第
7行停止下來
, 並顯示下一行將要執行的程式
7: i=i+1 這時,
泥可以用
: dbx)print i
命令來檢視
i變數的值
顯示1
或者用printf "%d",i
來顯示用
c語言格式的輸出
對以後比較負責的陣列什麼的,用
dbx)duel i
方式可能更加顯示的方便
以後泥可以用
dbx)step
或者step ==trace into
dbx)next
來執行下一行程式
,next=trace over
用dbx)cont
命令可以直接執行到結束
, 其中控制命令多多
,功能十分強大的
. 檢視原始碼可以用
dbx)list begin,end
就顯示hello.c
檔案中從
begin
到end
行的所有程式
,並且配上了行號
用dbx)file
可以改變泥要檢視的原始碼檔名稱
. enjor it!
下面是檢視了
dbx的
man手冊後對一些常用
/使用命令的中文說明
這些命令對普通的除錯已經足夠了
,一些多執行緒的除錯命令就不加以介紹了
dbx使用指南
: 1:
實用命令
quit/q
退出q
退出run arg1 arg2 ...
用引數執行現有程序
r
用上次的引數再次執行
stop at
在第line
行設斷點
stop at
在過程proc
被呼叫處設斷點
cont
繼續執行到記號
(斷點或其他)處
return
執行完目前的程序返回
print ...
列印表示式的值
printf "string",exp,... 用c
語言的格式列印結果
where
列印當前除錯狀態
,包括當前程序等資訊
func
看當前執行程序名
/移動到呼叫
proc
程序的母程序處
file
檢視的檔案切換到
file
檔案處list ,
從file
檔案中列出從
exp1
行到exp2
行list :
列出file
檔案中從
exp行開始的
int行
whatis
顯示變數的型別
sh
嶄時進入
sh狀態
sh 執行一
shell
命令2:
常用命令說明
alias name "string"
把string
內容定義為一縮略語
name
help section
尋找某指令的幫助
playback input
從file
中調入除錯命令流
playback output
輸出file
中的除錯命令流
record input
把除錯過程輸出到
file
中record output
把命令的執行輸出儲存到
file
中history
顯示歷史命令
hed
編輯歷史除錯命令
!執行歷史命令流中第
int個命令
!-執行歷史命令中倒數第
int個命令
!執行歷史命令流中以
string
打頭的命令
!!
重複上乙個命令
command;command ...
多除錯命令間用
";"隔開
step
向前追蹤步,
進入執行緒
next
向前追蹤步,
不進入執行緒
delete all
清所有斷點
listobj
列出目前使用的
obj單元
listregions
列出被用到的記憶體區
enable /disable 恢復/
禁用號斷點
catch
顯示所有碰到的記號
cont at
執行直到
line
行intercept all
在所有例外處都中斷
bx chat
在所有出現
char
打頭的異常處中斷
kill
殺死pid
執行緒goto
從line
行開始執行
stop
當var
產生變化時中斷
stop
當進入proc
程序時中斷
stop [var] [at ] if
條件中斷
trace
當var
變化時輸出其原值和新值
trace
當進入程序時列印出母程序和引數
when if
當條件為真時執行命令列
when at [if ]
在遇到line
行時如果條件為真執行命令列
duel
一種比較好的變數輸出方式
printregs
輸出所有暫存器的值
status
當前狀態
/向下尋找
file
中的string
字串?
向上尋找
file
中的string
字串set
設定或顯示系統引數值
dbx是unix下普遍的原始碼除錯工具
掌握好了dbx的使用,無疑象增添了unix下程式設計的一把利器 研究了一下午dbx的連機文件,發現dbx很是簡單易用 現在簡單介紹一下dbx的使用方法,讓更多的朋友免去獨自研究的苦楚 dbx主要用來除錯用f77或cc等編譯工具生成的fortran和c語言的源 當然該程式必須在除錯過程中用 g引數包含...
Unix除錯工具dbx使用方法
dbx 可執行檔名 可執行檔案在編譯的時候必須代上 g 引數 dbx list 從檔案開頭列出 dbx listn 列出第 n行 dbx listm,n 列出從 m行開始的 n行 dbx run 執行不帶引數的程式 dbx runarg1 argn 執行帶引數的程式 該命令相當於 vc的快捷鍵 f5...
根據除錯工具看Vue原始碼之元件通訊(一)
在平時的業務開發中,相信在座的各位沒少用過元件通訊。然而,對於一些新手 業務熟手來說,不懂技術原理往往知其然而不知其所以然,用得一臉懵逼。看完本文可以幫助你了解vue元件的通訊方式及原理,從而進一步加深對vue的理解,遠離cv工程師的行列。示例 父元件 alt vue logo src assets...