3

我知道我可以编写一个插入器来观察传递给 strncpy 库调用的参数,但使用 DTrace 似乎应该很容易做到这一点。

4

1 回答 1

5

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


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

copyinstr是必需的,因为字符串来自用户态进入内核。

于 2009-06-11T03:09:53.743 回答