http://blog.csdn.net/kong_nuc/archive/2008/08/30/2853025.aspx
dbx是UNIX下基于命令行界面的程序調(diào)試器,假如不能學(xué)會dbx,無疑將為你在UNIX端的編程上增添許多的困難。
dbx是通過交互執(zhí)行dbx子命令來達到調(diào)試的目的的。
在調(diào)試程序前,必須先將-g選項包含在編譯信息中,編譯生成帶調(diào)試信息的文件,即:cc -o filename -g file.c。
進入dbx通常只需輸入"dbx filename"即可,filename為待調(diào)試的可執(zhí)行程序名。
dbx加載后就顯示提示符:(dbx),此時用戶就可以輸入dbx子命令進行調(diào)試了。
下面是一些dbx的常用子命令:
1.基本操作命令
run arg1 arg2 ... :以arg1,arg2,...為參數(shù)開始運行現(xiàn)有進程。
r:用上次使用的參數(shù)再次運行現(xiàn)有進程。
source filename:從文件名為filename的文件中讀入dbx子命令并執(zhí)行。
return:執(zhí)行完目前的進程后返回。
sh command:不退出dbx,執(zhí)行一條操作系統(tǒng)shell命令。
sh:暫時進入shell狀態(tài)。
quit:退出dbx,若程序未執(zhí)行完則終止其執(zhí)行。
2.置斷點與跟蹤點命令
stop var at n:置斷點命令,當?shù)趎行的變量var發(fā)生變化時將程序掛起。
stop var in proc:置斷點命令,當過程proc的變量var發(fā)生變化時將程序掛起。
stop at n:置斷點命令,當執(zhí)行到第n行時將程序掛起。
stop in proc:置斷點命令,當執(zhí)行到過程proc時將程序掛起。
trace var at n:置跟蹤點命令,當?shù)趎行的變量var改變時顯示跟蹤信息。
trace var in proc:置跟蹤點命令,當過程proc的變量var改變時顯示跟蹤信息。
trace n:置跟蹤點命令,當執(zhí)行到第n行時顯示被跟蹤信息。
trace proc:置跟蹤點命令,當執(zhí)行到過程proc時顯示被跟蹤信息。
trace eXPr at n:置跟蹤點命令,當執(zhí)行到第n行時顯示var的值。
delete nall:刪除第n行的/所有的斷點與跟蹤點。
3.調(diào)試命令
cont at n:運行直至第n行。
print var:打印變量var的值。
printf "string",expr,...:以C語言的格式打印。
where:打印當前調(diào)試狀態(tài),包括當前進程的信息。
func:查看當前運行的進程名。
func proc:移至到調(diào)用proc進程的母進程處。
whatis name:顯示對變量名或過程名name的類型。
step [n]:單步執(zhí)行一行或n行,碰到線程調(diào)用時進入線程調(diào)用。
next [n]:單步執(zhí)行一行或n行,碰到線程調(diào)用時拒絕進入線程調(diào)用。
skip [n]:跳過一個或n個斷點,繼續(xù)往下執(zhí)行
dump [proc] [>file]:顯示當前或proc過程的所有變量名及其值
assign var=expr:給變量var賦以表達式expr的值
4.讀取被調(diào)試程序命令
list:列出從當前行開始的若干行源程序。
list n,m:列出從第n行到第m行的源程序。
/string:朝文件尾方向查找字符串string
?string:朝文件頭方向查找字符串string
file filename:將查看的文件切換到文件filename處