在 C++ 中使用 Dtrace 设置我自己的探针

Posted

技术标签:

【中文标题】在 C++ 中使用 Dtrace 设置我自己的探针【英文标题】:Setting my own probes with Dtrace in C++ 【发布时间】:2009-04-15 07:06:48 【问题描述】:

我在 C 库中有一些自定义 dtrace 探针,当将库与 C 应用程序链接和使用时,我的探针工作正常,但是当与 C++ 链接时,它说找不到它们。原因似乎是因为 C++ 的修改,并且试图让它工作已成为一种追逐。

有什么想法吗?

注意:使用 gcc

【问题讨论】:

【参考方案1】:

到目前为止,我已经找到了这些“有用”的链接

Using DTrace to Profile and Debug A C++ Program

Using DTrace SDT provider with C++

但他们没有解决我的问题。

后来我发现了这些文章:

User-land tracing gets better and better //这很有帮助

Putting developer-defined DTrace probe points in an application

Dtrace Using SDT probes //pdf 帮助理解了一些细节,但是信息太旧了

基本上这一切都归结为使用 dtrace -h 从那些 probes.d 中获取头文件

【讨论】:

我发现“User-land tracking getting better and better”链接非常宝贵。【参考方案2】:

您在声明 C 函数时尝试过extern "C" ... 吗?

【讨论】:

以上是关于在 C++ 中使用 Dtrace 设置我自己的探针的主要内容,如果未能解决你的问题,请参考以下文章

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

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

请问dtrace启用了哪些探针?

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

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

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