如何知道我的应用程序在哪里崩溃,只有此日志信息



我需要检测到我的应用在哪里崩溃,我尝试按线进行调试,但是突然之间,调试器从"汇编代码"(是专有名称?(跳入的崩溃,所以我无法确切告诉您什么是有问题的代码。崩溃发生时,我正在用文字进行语音并将我的应用记录到靛蓝中。我如何理解此日志信息?:

TIMESTAMP Indigo[1675:621373] -[NSNull length]: unrecognized selector sent to instance 0x1a7c38ef8
TIMESTAMP Indigo[1675:621373] invalid mode 'kCFRunLoopCommonModes' provided to CFRunLoopRunSpecific - break on _CFRunLoopError_RunCalledWithInvalidMode to debug. This message will only appear once per execution.
TIMESTAMP Indigo[1675:621373] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSNull length]: unrecognized selector sent to instance 0x1a7c38ef8'
*** First throw call stack:
(0x181aeefd8 0x180550538 0x181af5ef4 0x181af2f4c 0x1819eed2c 0x181ad4ff4 0x181ad513c 0x187c28234 0x100162f8c 0x1001a2bd8 0x187f63114 0x187f6332c 0x187e1c6e0 0x187e18978 0x187e1834c 0x187dfcfbc 0x1001a55b0 0x100041da8 0x100041b8c 0x1000e7c4c 0x1820f81fc 0x18210fef8 0x1825bd804 0x182502760 0x1824f2b18 0x1825bfba0 0x1009bda10 0x1009c2b78 0x181a9d0c0 0x181a9acdc 0x1819cad94 0x183434074 0x187c83130 0x10002160c 0x1809d959c)
libc++abi.dylib: terminating with uncaught exception of type NSException

您需要在objc_exception_throw中设置一个断点。Xcode具有一些用户界面的设置,但是在不挖掘屏幕截图的情况下进行解释的最简单方法是在调试器控制台中输入命令(在发生崩溃之前(:

b objc_exception_throw

然后,当抛出未识别的选择器异常时,调试器将停止,而不是等待异常引起崩溃的堆栈,其中堆栈不太有用。

例外本身也在揭示。您正在将消息length发送到NSNull。我敢打赌,您有一系列对象的集合,您认为这些对象将是NSString S的某个地方,但是您偶尔会出现NSNull S出现在该集合中。我已经看到在iOS客户端代码中消耗JSON的json结果中发生的情况 - 当后端没有提供客户端期望的所有信息时。

更新:在Xcode中单击:调试>断点>创建异常断点

最新更新