87

无论如何调试都可以看到完整的堆栈跟踪,主线程中调用的方法列表。或以任何方式在命令窗口上打印它们。

4

5 回答 5

151

使用bt(lldb) 中的命令。

一旦暂停或崩溃后,只需bt在调试控制台中输入。
它将打印完整的堆栈跟踪。

bt 命令的示例输出

于 2014-11-06T02:47:29.233 回答
85

您可以通过以下方式在 NSLog 中打印堆栈跟踪

NSLog(@"Stack trace : %@",[NSThread callStackSymbols]);

发生崩溃时,您可以在单词旁边(lldb)键入:

po [NSThread callStackSymbols]

编辑:

为了在 Swift 上的控制台上获得更好的输出,您可以改用以下行:

Thread.callStackSymbols.forEach{print($0)}
于 2013-04-11T10:33:45.210 回答
72

在 Xcode 6 中,您可以单击窗格左下角的按钮,该按钮显示完整的堆栈跟踪。 Xcode 6 显示完整的堆栈跟踪

于 2014-10-13T13:33:29.817 回答
17

在 Xcode 5 中,您可以移动显示堆栈跟踪的窗格底部的滑块。它控制显示多少敲击轨迹。

控制堆栈跟踪的滑块

于 2013-10-19T09:29:24.510 回答
4

您可以breakpoint在抛出异常之前添加。首先转到Breakpoint Navigator(cmd + 6)。在左下角鼠标单击加号按钮。或者您可以使用Instruments(/Developer/Applications/Instruments) 来帮助检测zombie objects. 参考

并且当您添加断点审查时,图片将由Xcode.

在此处输入图像描述

您可以使用底部使用的滑块step overover逐行日志来扩展堆栈跟踪。

谢谢希望这会帮助你

于 2013-04-11T10:42:55.553 回答