是否可以使用DTrace查看传递给strncpy的参数?

bri*_*gge 3 solaris dtrace

我知道我可以编写一个内插器来观察传递给strncpy库调用的参数,但看起来这对DTrace来说应该很容易.

Nik*_*sov 5

这是一个工作变体(仅在Mac上测试):


#!/usr/sbin/dtrace -s
pid$target::strncpy:entry
{
    printf( "%s( %X, %s, %lld )\n",
        probefunc,
        arg0,
        copyinstr(arg1),
        arg2 );
}
Run Code Online (Sandbox Code Playgroud)

copyinstr 因为字符串来自userland到内核,所以是必需的.