solaris的系统提供丰富的调试工具,包括dbx、mdb与dbtrace,虽然其中只有dbx是用于应用程序调试的,而其他两个都常用于系统级调试,但是将复杂工具应用在应用系统的简单调试有时也能起到意想不到的效果。
dtrace一般用于系统函数跟踪,它的优点在于:
调试过程不影响原有程序运行;
于是,在某些不能将应用程序停止或者故障现象需要时间复现而无法直接使用dbx进行调试的时候,使用dtrace就可以跟踪到应用程序的函数调用。
dtrace对于应用程序的调试可以编辑d脚本,如下,
BEGIN
{
trace("now begin\n");
}
pid$1::Function:
{
ustack();
}
END
{
trace("now end\n");
}
上面脚本的意思是,在某个程序执行到Function时,将函数调用栈显示出来。
d脚本的执行命令为:dtrace -s xxx.s PID(目标程序PID)
阅读(6265) | 评论(0) | 转发(0) |