gpt4 book ai didi

ios - 仅使用此日志信息,如何知道我的应用程序在哪里崩溃?

转载 作者:行者123 更新时间:2023-11-28 21:10:31 28 4
gpt4 key购买 nike

我需要检测我的应用程序崩溃的位置,我试着逐行调试,但突然间,调试器从“汇编代码”(这是正确的名称吗?)跳转到崩溃,所以我无法判断你到底是什么有问题的代码。当崩溃发生时,我正在将文本转换为语音并将我的应用程序登录到 indigo 中。我怎样才能理解这个日志信息?:

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 有一些用于设置它的 UI 细节,但在不挖掘屏幕截图的情况下解释它的最简单方法是在调试器控制台中输入命令(在崩溃发生之前):

b objc_exception_throw

然后当抛出无法识别的选择器异常时,调试器将停止那里,而不是等待异常导致崩溃,此时堆栈的用处不大。

异常本身也很有启发性。您正在将消息 length 发送到 NSNull。我打赌你有一个对象集合,你认为它们在某个地方都是 NSString,但你偶尔会在该集合中出现 NSNull。我已经看到这种情况发生在 iOS 客户端代码中,它使用来自各种网络服务的 JSON 结果——例如,当后端没有提供客户端期望的所有信息时。

更新:在 XCode 中设置 b objc_exception_throw grafically 点击:调试 > 断点 > 创建异常断点

关于ios - 仅使用此日志信息,如何知道我的应用程序在哪里崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43615187/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com