如何过滤 Objective-C 的 DTrace 输出?

Posted

技术标签:

【中文标题】如何过滤 Objective-C 的 DTrace 输出?【英文标题】:How to filter DTrace output for Objective-C? 【发布时间】:2011-11-15 13:36:56 【问题描述】:

我正在学习DTrace,它是非常强大的工具。但一个问题是 DTrace 输出的信息太多,其中大部分是 NS 类。

但我的问题是,如果用户的类没有正确的前缀,我该如何过滤系统类?

(这个主题有一个类似的 Stack Overflow 问题,[How to detect without the system method or system framework with DTrace on Mac OS X?]。)

【问题讨论】:

【参考方案1】:

DTrace 使用类似Filename generation 的语法来指定探测名称。例如。您可以使用方括号 [] 指定类名的第一个字符。

例如如果要过滤所有 NS* 类:

objc$target::[ABCDEFGHIJKLMOPQRSTUVWXYZ]*:entry (N is removed)
objc$target::N[ABCDEFGHIJKLMNOPQRTUVWXYZ]*:entry (S is removed)

但你必须为 Apple 使用的每个前缀重复它,例如 CA、IK 等。

【讨论】:

以上是关于如何过滤 Objective-C 的 DTrace 输出?的主要内容,如果未能解决你的问题,请参考以下文章

在 DTrace 输出中显示 Objective-C 类

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

是否可以在 dtrace 中获取 objc 方法的结果?

如何在 UICollectionView 顶部添加一个视图以支持诸如搜索栏或 Objective-c 中的过滤器之类的内容?

如何在 dtrace 中找到参数的意思

dtrace:如何从文件中获取符号链接目标