filebyproc.d
位于DTraceToolkit的Proc
文件夹下,其功能是打印进程打开的文件名。脚本代码就一行(略去版权信息):
syscall::open*:entry { printf("%s %s", execname, copyinstr(arg0)); }
脚本代码分析[……]
filebyproc.d
位于DTraceToolkit的Proc
文件夹下,其功能是打印进程打开的文件名。脚本代码就一行(略去版权信息):
syscall::open*:entry { printf("%s %s", execname, copyinstr(arg0)); }
脚本代码分析[……]
kill.d
位于DTraceToolkit的Proc
文件夹下,其功能是检查进程之间发送的信号值,以及信号发送是否成功。脚本代码如下(略去版权信息):
dtrace:::BEGIN
{
/* Print header */
printf("%5s %12s %5s %-6s[......]
如果要追踪程序的链接库的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[......]