如何使用Instruments来确定崩溃的部分代码

时间:2013-09-30 18:38:37

标签: objective-c xcode cocoa-touch xcode-instruments

我正在尝试在我的应用上调试崩溃

我得到的只是

 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]'

我知道从CoreData获取的问题是返回nil

现在我的目标是看看崩溃究竟来自哪里。 我知道有一种方法可以使用Instruments检查导致我的代码崩溃的确切代码行。

有没有人能指出我正确的方向instrument会在Analyzer找到该行时向我提供该信息和一些调试提示?

1 个答案:

答案 0 :(得分:0)

根据您的错误日志,根据我的理解,您尝试在NSDictionary / NSMutableDictionary中插入nil值。您不能将nil作为值或键传递到字典中,否则您的代码将崩溃。 我建议您使用断点调试代码,跟踪执行堆栈我相信您将获得您的nil值插入字典中的确切解决方案。

如果要查找确切的崩溃线,可以使用debugger命令。在调试器窗口中输入 bt (返回跟踪命令),它也会给出同样执行的崩溃堆栈,它可以为您提供仪器分析器。浏览以下链接

https://developer.apple.com/library/ios/documentation/DeveloperTools/Conceptual/WhatsNewXcode/Articles/xcode_5_0.html

http://www.cimgf.com/2012/12/13/xcode-lldb-tutorial/