macos - 我可以问 dtrace 启用了哪些探测器吗?

标签 macos solaris sun dtrace

如果重要的话,我使用的是 Mac OS X,但我相信这适用于所有操作系统。如果每个操作系统的答案不同,我也会有兴趣了解这一点。

假设我打开一个终端窗口,启用几个探测器,并开始使用 DTrace 收集数据。

我可以从不同的终端窗口询问 DTrace 启用了哪些探测器吗?如果是这样,如何?

最佳答案

我从 DTrace 邮件列表中的 Adam Leventhal 那里获得了以下信息。首先,他提供了这个脚本,它适用于 Solaris

#!/usr/sbin/dtrace -s

#pragma D option quiet

int i;

tick-100
/i >= `dtrace_nprobes/
{
       exit(0);
}

tick-100
{        printf("%4d %10s %20s %20s %10s %s\n", i,
           stringof(`dtrace_probes[i]->dtpr_provider->dtpv_name),
           stringof(`dtrace_probes[i]->dtpr_mod),
           stringof(`dtrace_probes[i]->dtpr_func),
           stringof(`dtrace_probes[i]->dtpr_name),
           `dtrace_probes[i]->dtpr_ecb != NULL ? "enabled" : "disabled");
       i++
}

不幸的是,由于错误,相同的内核变量在 Mac OS X 上不可用。

关于macos - 我可以问 dtrace 启用了哪些探测器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6426674/

相关文章:

java - 当应用程序焦点更改时从 OS X 获取回调?

Solaris 容器中的 Java availableProcessors()

java - 通过 Java 解锁智能卡的 PIN (SunPKCS11)

MYSQL 和 GPL 推荐?

python - django.db.utils.OperationalError : (1046, 'No database selected' )

macos - 打开应用程序 : How to detect filename in go

macos - 如何将 NSColorPicker 添加到应用程序的主窗口?

c - 使用 mdb 解释应用程序堆栈跟踪

c++ - 来自垂死的多线程进程的核心转储