gpt4 book ai didi

objective-c - 捕获所有 Objective-C 消息并获取 Cocoa 运行时中的对象列表

转载 作者:行者123 更新时间:2023-12-03 16:24:06 25 4
gpt4 key购买 nike

我需要捕获并记录 Cocoa 应用程序中对象发送的所有消息。我还需要运行时的对象实例列表。这可能吗?

最佳答案

使用dtrace,它已经内置到系统中。请参阅this great introductory article在 MacTech。

Dtrace 是一种系统范围的标准机制,以便您可以记录事件。各种系统 API 通知内核,即每个系统调用、每个 objc_msgSend 等都会生成一个可跟踪点,您可以将 dtrace 脚本传递给内核来记录这些事件。非常强大。

作为练习,请将以下内容放入名为 objc.d 的文件中:

objc$target:::entry
{
printf("[%s %s]\n", probemod,probefunc);
}

然后从命令行运行

$ sudo dtrace -q -s objc.d -p 3333

其中 3333 应该是某个 Cocoa 应用程序的 pid。您将获得发送到任何对象的每条消息的日志!呜呼!

关于objective-c - 捕获所有 Objective-C 消息并获取 Cocoa 运行时中的对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3872911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com