【发布时间】:2012-06-20 13:38:19
【问题描述】:
由于 Apple 已经放弃了 Spin Control.app(无响应状态进程监控和日志记录实用程序),我需要更换一个。
我知道我可以直接使用spindump,但我真的很喜欢它的自动化图形前端。
谁能推荐一个好的替代品?
我的需求是:按名称自动采样我的进程并在进程无响应时存储日志。
【问题讨论】:
标签: xcode macos debugging freeze
由于 Apple 已经放弃了 Spin Control.app(无响应状态进程监控和日志记录实用程序),我需要更换一个。
我知道我可以直接使用spindump,但我真的很喜欢它的自动化图形前端。
谁能推荐一个好的替代品?
我的需求是:按名称自动采样我的进程并在进程无响应时存储日志。
【问题讨论】:
标签: xcode macos debugging freeze
我一直在拼命寻找旋转控制替代方案,我注意到在 Intruments 中有一个名为“旋转监视器”的工具。烦人的是,这并没有显示在初始模板向导中,您必须先通过单击标题栏中的库来找到它(见截图):
【讨论】:
我在 XCode 开发方面并不是特别有经验,所以这个答案可能不是您想要的,但在 Spin Control.app 上搜索和阅读了一段时间后,我在 Apple Developer 文档中找到了 this article。
似乎没有任何工具可以替代 Spin Control.app。相反,Apple 希望您现在结合使用 Instruments(他们用于调试和监视 iOS/OSX 应用程序的统一实用程序集合)和 Shark(用于采样/跟踪单个应用程序或所有正在运行的应用程序的高级工具)的组合。
特别是,您可能会发现 Shark 的此功能很有用:
Shark 还为几个 它的采样选项。窗口时间设施告诉 Shark 记录 并处理最近获取的样本的有限缓冲区。 此功能可让 Shark 连续长时间记录数据 背景中的时间。然后您可以指示 Shark 停止采样 只有在你的代码中发生了一些有趣的事情之后
【讨论】:
虽然 Spin Control.app 不再存在,但操作系统可能尊重com.apple.spincontrol 域中的首选项更改。
如果为真,那么更改hangDelay 的值可以有效地改变采样开始前的延迟:
sh-3.2$ defaults read com.apple.spincontrol
{
hangDelay = 5;
watchOnlyApplication = 0;
}
sh-3.2$ defaults write com.apple.spincontrol hangDelay 10
sh-3.2$ defaults read com.apple.spincontrol
{
hangDelay = 10;
watchOnlyApplication = 0;
}
sh-3.2$
对于单个应用程序被监视时,我猜watchOnlyApplication 的值可能是进程的名称或PID(感谢@Aeyoun 的评论)。在 2006 年 MacTech 文章 OS X Investigation and Troubleshooting - Part 2: The Secrets to OS X success 中有对该功能的描述,但没有值。
我怀疑将 watchOnlyApplication 设置为 0 以外的任何值在没有 Spin Control.app 的系统上是否有用。
【讨论】:
watchOnlyApplication 可能是仅在无响应的应用程序匹配该名称时记录日志的功能。