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

Posted

技术标签:

【中文标题】是否可以使用 DTrace 查看传递给 strncpy 的参数?【英文标题】:Is is possible to use DTrace to view the arguments passed to strncpy? 【发布时间】:2009-06-11 01:22:27 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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


#!/usr/sbin/dtrace -s
pid$target::strncpy:entry

    printf( "%s( %X, %s, %lld )\n",
        probefunc,
        arg0,
        copyinstr(arg1),
        arg2 );

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

【讨论】:

以上是关于是否可以使用 DTrace 查看传递给 strncpy 的参数?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以从 DTrace 隐藏 OS X 应用程序?

是否可以在 Mac OS X 上通知 DTrace 动态生成的代码?

在dtrace中获取Erlang消息的消息内容

为 Objective-C 对象定义 DTrace 兼容结构

如何使用 dtrace 查看调用堆栈

DTrace - 如何在返回探针中正确检索初始参数