Debugging 如何使用stackshot调试应用程序?
我最近听说MacOSX上有一个很有用的调试工具,名为Debugging 如何使用stackshot调试应用程序?,debugging,macos,Debugging,Macos,我最近听说MacOSX上有一个很有用的调试工具,名为stackshot,但我不知道如何调用它。我的理解是,它作为一个守护进程运行,但手册页的内容也可以从命令行调用。如何为当前运行的应用程序利用stackshot sudo /usr/libexec/stackshot -i Stackshot用于调试系统范围内的问题(死锁等),而不是单个应用程序;因此,它创建整个系统的堆栈转储,而不是单个应用程序 在默认配置下,这将在/Library/Logs/stackshot.log中创建堆栈快照。log苹
stackshot
,但我不知道如何调用它。我的理解是,它作为一个守护进程运行,但手册页的内容也可以从命令行调用。如何为当前运行的应用程序利用stackshot
sudo /usr/libexec/stackshot -i
Stackshot用于调试系统范围内的问题(死锁等),而不是单个应用程序;因此,它创建整个系统的堆栈转储,而不是单个应用程序
在默认配置下,这将在
/Library/Logs/stackshot.log中创建堆栈快照。log
苹果要求我在iOS设备上生成堆栈快照。要执行此操作,当问题发生时,同时按住并释放主页和音量按钮
然后,将设备与iTunes同步
同步后,stackshot日志文件将存储在计算机上。我不知道它在Windows中的位置,但在Mac上它在:
~/Library/Logs/CrashReporter/MobileDevice//stacks-yyyy-mm-dd-xxxxxx.logstackshot似乎不再包含在OS X中,至少不包含在10.11中。但是,您仍然可以使用/usr/bin/sample工具对应用程序进行采样 这也可以使用活动监视器进行访问:
这将允许您查看应用程序中当前发生的情况,这样您就可以调试CPU使用问题,而无需从Xcode运行应用程序。谢谢;我发现如果您将
-p pid
添加到命令行,您可以使用stackshot(sic)单个应用程序来检查其中的死锁。在我的/usr/libexec
中没有stackshot
。我在10.11.3活动监视器的输出看起来很奇怪。我能找个线索吗?