问题标签 [dtrace]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
performance - dTrace 脚本和工具
我最近开始使用 dTrace 并注意到它有多棒。它是一个完美的分析工具,无需程序员在他们的应用程序中设置数百个探针。
我在这里和那里找到了一些不错的衬里和示例脚本,但我想知道其他人可能想要分享哪些脚本、工具和链接。
顺便说一句,有人试过 Chimes 吗?
profiling - 学习如何使用 DTrace 的指针
当我询问用于分析 Rails 应用程序的工具时,有人指着 DTrace。由于我在 MacOSX 工作站上工作并在 OpenSolaris 上进行部署,因此这是一种有效的方法。但我对 DTrace 知之甚少。
除了通常的嫌疑人、Sun DTrace 页面和那里的可用信息之外,还有其他学习 Dtrace 的杀手锏吗?
cocoa - 监视 Cocoa 应用程序以在 Mac OS X 上执行外部实用程序(例如 ffmpeg)?
有一些 Mac GUI 应用程序为更令人讨厌的命令行工具(通常包含在应用程序包的一部分)提供前端。我想看看这些 GUI 背后发生了什么。
如何“附加”到应用程序,监视它是否调用命令行实用程序并记录这些调用的文件名和命令行参数?
解决方案也可以是记录 Mac OS X 上所有应用程序执行的应用程序(过滤掉最常见的系统调用)。
示例 GUI 前端: http: //xact.sourceforge.net/(因为它是开源的,所以可以调试它,但 xACT 只是一个示例。假设我们只有一个现成的 *.app 来监控)。
更新: dtrace 可以监视 exec 调用并打印调用的命令的名称。这是解决方案的一半,另一半是获取它的命令行参数。这还没有解决(直到有人确认他们有 dtrace 来做这件事)。
macos - 使用单个提供程序名称为插件创建 dtrace 探针
请注意,这是针对 Mac OS X 的,尽管我想我的问题会存在于任何支持 dtrace 的操作系统上。
我有一个使用很多插件的应用程序。我在核心应用程序和插件本身中都添加了用户态探测器。问题是,如果我在主应用程序使用的插件中使用相同的提供程序名称,则当我尝试创建可用探针列表时,这些探针不会显示。似乎谁的代码先加载谁就赢了。
我的主应用程序中的 .d 文件:
在我的插件中:
将提供程序的名称更改为其他名称(例如 MyAppPlugin)可以正常工作,但随后提供程序的列表将变得疯狂(MyAppPlugin1、MyAppPlugin2 等)。我想有一种方法可以在与主应用程序相同的提供程序名称下添加新的插件定义的探针,但我要么没有看到它,要么它不存在。
那么有没有办法做到这一点?如果不是,即使模块名称已经是唯一的,为每个插件提供不同的提供程序是否正常?似乎这就是模块名称的用途......
paradigms - Dtrace 的编程范式是什么?
我使用 Dtrace 已经有一段时间了,随着时间的推移,我开始想知道 Dtrace 中使用的 D 语言的编程范式是什么。
我猜它不是命令式语言,所以这意味着它是某种声明性功能语言,但我不是语言分类学方面的专家,那么 D 语言应该正式(或半正式)归类为什么?
c++ - 在 C++ 中使用 Dtrace 设置我自己的探针
我在 C 库中有一些自定义 dtrace 探针,当将库与 C 应用程序链接和使用时,我的探针工作正常,但是当与 C++ 链接时,它说找不到它们。原因似乎是因为 C++ 的修改,并且试图让它工作已成为一种追逐。
有任何想法吗?
注意:使用 gcc
unix - 使用 -c 标志时如何重定向 Dtrace 输出?
运行带有 -C 标志的脚本时,如何仅重定向 Dtrace 的输出?
就像在这种情况下:
注意:我在发布之前找到了我的问题的答案,但我把它放在这里,所以它是 SO 的一部分。
solaris - 是否可以使用 DTrace 查看传递给 strncpy 的参数?
我知道我可以编写一个插入器来观察传递给 strncpy 库调用的参数,但使用 DTrace 似乎应该很容易做到这一点。
java - 如何在 Mac OS X Leopard 上的 dtrace 中使用热点探针?
我的 Leopard 系统内置了 dtrace。我还使用 Apple 提供的安装程序安装了 Java 6:
然而,dtrace 在列出探针时没有显示热点探针:
谁能告诉我如何在 Leopard 中为 Java 启用 dtrace 探测(据说它们随 Java 6 一起提供)?
objective-c - Leopard 上的 DTrace:没有指定探针,即使我指定了探针
手册页建议这是在 Objective-C 方法上指定探测的正确格式。我试过-Z,但(不出所料)那只是没有打印任何东西。
[添加] 它甚至不特定于 Objective-C 探针。我使用 AppKit 中的 C 函数进行了尝试:
那么有什么问题呢?为什么 DTrace 认为我没有指定任何探针?