从 C 程序访问 dtrace 探针

Posted

技术标签:

【中文标题】从 C 程序访问 dtrace 探针【英文标题】:Access dtrace probe from C program 【发布时间】:2012-10-06 19:54:01 【问题描述】:

runocc.d dtrace 脚本可以打印每个处理器的运行队列。我需要在 Mac OS X 上的 C++ 程序中获取运行队列长度。是否有可能以某种方式将 dtrace 构造嵌入到 C++ 程序中?

【问题讨论】:

【参考方案1】:

好的,发现有dtrace API,虽然它是“私有的”和“不稳定的”,而且你似乎不能只要求一次探测的值——你需要开始监控,然后定期轮询探测。由于这不是我们项目中的最高优先级,我不会立即尝试,但很高兴知道它存在 - http://www.osdevcon.org/2008/files/osdevcon2008-petr.pdf

还快速检查确认有一个文件 /usr/include/dtrace.h 并且它确实具有 PDF 中提到的功能。

【讨论】:

以上是关于从 C 程序访问 dtrace 探针的主要内容,如果未能解决你的问题,请参考以下文章

优胜美地系统红宝石上缺少 dtrace 探针

使用单个提供程序名称为插件创建 dtrace 探针

请问dtrace启用了哪些探针?

Leopard 上的 DTrace:没有指定探针,即使我指定了探针

如何在 SmartOS 上使用 HotSpot DTrace 探针?

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