1 Star2 Stars3 Stars4 Stars5 Stars (1评分, 平均分: 5.00)
Loading...

DTrace脚本使用选项时需要注意的问题

DTrace可以通过-x指定编译或运行时的选项。以下列命令为例:

# dtrace -n 'syscall::write:entry /pid == $target/ { printf("Written %d bytes\n", arg2); }' -c "dd if=/dev/zero of=/dev/null count=1"
dtrace: description 'syscall::write:entry ' matched 2 probes
1+0 records in
1+0 records out
512 bytes transferred in 0.00003[......]

阅读全文

1 Star2 Stars3 Stars4 Stars5 Stars (还没有评分)
Loading...

使用DTrace和火焰图分析Rust程序

这篇文章参考自Rust Profiling with DTrace and FlameGraph on OSX ,不同之处在于我使用的是操作系统是FreeBSD。使用DTrace和火焰图分析Rust程序的步骤如下:

(1)如果编译Rustrelease版本程序,需要在Cargo.toml加入下列配置:

[profile.release]
debug = true

(2)运行Rust程序(名字为stream),并使用DTrace进行采样:

dtrace -c './stream' -o out.stacks -n 'profile-997 /execname == "[......]

阅读全文

1 Star2 Stars3 Stars4 Stars5 Stars (还没有评分)
Loading...

使用DTrace检测进程间发送信号

下面这个DTrace脚本可以记录哪些程序kill掉了其它进程:

#!/usr/sbin/dtrace -qs
proc:::signal-send
/ (args[2] == SIGKILL) /
{
    printf("[%s - %d - %d] sent SIGKILL to pid %d\n",
    execname, pid, tid, args[1]->pr_pid);
}

你也可以把SIGKILL换成其它感兴趣的信号。如果在FreeBSD上运行,需要把args[1]->pr_pid换成args[1]->p_pid。运行结果如下[……]

阅读全文

1 Star2 Stars3 Stars4 Stars5 Stars (还没有评分)
Loading...

FreeBSD上安装DTrace Toolkit

FreeBSD上安装DTrace Toolkit可以使用下面两种方式:
(1)

cd /usr/ports/sysutils/DTraceToolkit/ && make install clean

(2)

pkg install dtrace-toolkit

DTrace Toolkit会被安装在/usr/local/share目录下:

# ls -lt /usr/local/share/dtrace-toolkit/
total 292
drwxr-xr-x   2 root  wheel    512 Jun  2 16:59 Zones[......]

阅读全文

1 Star2 Stars3 Stars4 Stars5 Stars (1评分, 平均分: 5.00)
Loading...