DTrace脚本从不报告写入系统调用

时间:2013-04-06 12:22:49

标签: macos bash osx-mountain-lion system-calls dtrace

我正在使用以下DTrace脚本来跟踪bash的读写系统调用:

syscall::write:entry,
syscall::read:entry
/execname == "bash"/
{

}

它成功匹配2个探测器,但无论我键入什么,我只看到读取调用。没有写入调用报告。当shell回到屏幕时,我期待得到写入调用。

脚本是错误的,还是我对bash如何工作的错误假设?

我在OSX Mountain Lion下运行

1 个答案:

答案 0 :(得分:1)

在“写入”后尝试使用通配符。这将列出匹配的探针:

sudo dtrace -l -n 'syscall::write*:entry'

这可能会让你得到你期望的输出:

syscall::write*:entry,
syscall::read*:entry
/execname == "bash"/
{

}

正在使用的呼叫可能是write_nocancel