如果要追踪程序的链接库的probe
,可以参考下面这个例子:
bash-3.2# ldd ./exclude
libpthread.so.1 => /lib/libpthread.so.1
libodbc.so.2 => /usr/l[......]
如果要追踪程序的链接库的probe
,可以参考下面这个例子:
bash-3.2# ldd ./exclude
libpthread.so.1 => /lib/libpthread.so.1
libodbc.so.2 => /usr/l[......]
CTF
(Compact C Type Format
)包含了下面信息:
a)所有类型和结构体的定义;
b)每个函数的参数和类型;
c)函数返回值的类型;
d)全局变量的类型。
因此如果有CTF
数据,就可以有args[]
变量信息。如何查看模块是否包含CTF数据?可以用以下命令:
bash[......]
Sigdist.d
位于DTraceToolkit的Proc
文件夹下,其功能是统计一段时间内进程之间发送信号的数量和类型。脚本代码如下(略去版权信息):
#pragma D option quiet
dtrace:::BEGIN
{
printf("Tracing... Hit[......]
一直以来没太注意“arg0...arg9
”和args[]
之间的区别,基本就是混用。前几天在调试一个DTrace
脚本时,才注意起来,也在DTrace
的mailing list
里讨论了一下。以下就是我做的一些总结:
(1) “arg0...arg9
”是64位整数类型。如果probe
有参数,都可以通过“[……]
前几天,同事提到商用系统上出现过使用kill
命令给进程发送SIGKILL
信号,进程无法退出的问题。尽管听起来有些不可思议,但是的确发生了。由于当时的环境没有保存下来,所以现在没法debug
。我考虑了一下,如果再发生,可以使用DTrace
去检查一下问题出现在哪里。
用kill
命令给进程发送信号可以分[……]