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