solaris是sun公司提供的常用操作系统,以该系统为环境进行应用程序开发,有三个工具必须掌握:
1.dbx:
dbx是常用的调试工具,有了它,我们才能够进行程序调试,常用的操作包括:
(1)连接:dbx 程序名、dbx 程序名 PID、dbx - core
(2)运行:run、 cont
(3)显示变量:display、print
a. 显示数据 display xxx
终止显示数据 undisplay xxx
b. 查看变量 print xxx
查看数组 print xxx[2..4] 二维到4维
(4)中断点: stop at ×××.c:xxx、stop when XXX、clear
a. 函数入口中断 stop in main。。。
b. 具体语句中断 stop at xxx.c:xxx(行号)
c. 变量变化中断 stop change xxx
d. 查看中断点 status
e. 删除中断 delete all
(5)单步运行:step、next、step up
(6)调用栈:where
(7)显示当前程序内容:list
(8)改变变量中的值:assign xxx = xxx
2.Dtrace:
经典的跟踪工具,既可以实现对操作系统相关操作的跟踪,也可以对应用程序运行状态的跟踪。不过,只能跟踪函数调用与return,对于变量值无法提供跟踪能力。优点在于不需要暂停程序功能,执行不会对系统或程序本身进行修改。
(1)调用:dtrace -l ;dtrace -s ×××.s ***
(2)d语言语法:与C差不多,不过以解释方式执行;
BEGIN
{
printf("Begin \n");
}
.... 其他程序段
END
{
printf("End \n");
}
(3)谓语:实现判断功能;时间触发
profile:::tick-1sec
/pid == $1/
{
}
程序PID为。。。的情况下,触发该功能块
(4)显示:
trace(i);
(5)函数调用触发:
pid$1::time:
{
}
表示pid为$1的程序中time调用时便执行下面程序块中的功能
(6)其他变量:
errno 系统当前error名
execname 可执行程序名
pid 进程号
tid 线程号
probeprov 当前探测器提供器字段
probemod 模块名
probefunc 函数名
probename 名称
timestamp 系统计数器
$1 参数1
(7)内部函数表:
3.mdb:
作为C程序员,有谁没有因为内存错误而出过core,有谁没有因为指针越界造成的问题而头疼过,mdb就是用来检测内存相关问题的工具。
阅读(902) | 评论(0) | 转发(0) |