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

Posted

技术标签:

【中文标题】是否可以在 Mac OS X 上通知 DTrace 动态生成的代码?【英文标题】:Is it possible to notify DTrace on Mac OS X of dynamically generated code? 【发布时间】:2012-02-09 16:40:25 【问题描述】:

我们希望扩展 Mono 的 VM 以生成可供DTrace 和仪器使用的信息。

我正在考虑对 Mono 运行时进行更改,使其注册或通知它动态生成的代码,以便 DTrace 可以为这些代码块生成有用的信息。

【问题讨论】:

【参考方案1】:

你想包含什么样的信息?

执行此操作的主要示例是 ustack 助手,它从 VM 向 DTrace 传达如何将堆栈帧转换为人类可读的帧。这些已经存在于 Python、Java 和 Node.js 中。

这是一个“hello world”的 ustack 助手: https://github.com/davepacheco/ustack

这是 Node.js 的一个: https://github.com/joyent/node/blob/master/src/v8ustack.d

【讨论】:

我看过很多帖子说这在 Mac OS X 上是不可能的。那些已经过时了吗? 这仍然是正确的。这是去年 3 月的帖子:mail-archive.com/dtrace-discuss@opensolaris.org/msg04668.html 但在 OSX SL 和 Lion 上仍然如此。如果您需要,请在 bugreport.apple.com 提交错误报告,因为这是社区向 Apple 上报此问题的最佳方式。

以上是关于是否可以在 Mac OS X 上通知 DTrace 动态生成的代码?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Mac OS X 上构建 DTrace?

无法在 Mac OS X 上通过 jinfo 启用 DTrace 探测

如何在 Mac OS X Leopard 上的 dtrace 中使用热点探针?

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

我可以在 OS X 10.5 上使用 dtrace 来确定我的哪个 perl 子程序导致的内存分配最多吗?

dtrace 影响,监控进程 (OS X)?