ios – NSRangeException:调用堆栈不显示行号

ios – NSRangeException:调用堆栈不显示行号,第1张

概述我得到以下索引超出边界错误: *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array'*** First throw call stack:(0x22630 我得到以下索引超出边界错误:
*** Terminating app due to uncaught exception 'NSRangeException',reason: '*** -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array'*** First throw call stack:(0x2263052 0x24c7d0a 0x224fdb8 0x2f4a7 0x2264ec9 0x81e299 0x81e306 0x75aa30 0x75ac56 0x741384 0x734aa9 0x39a9fa9 0x22371c5 0x219c022 0x219a90a 0x2199db4 0x2199ccb 0x39a8879 0x39a893e 0x732a9b 0x1e5b 0x1dc5 0x1)

我知道错误是什么意思,但是我发现这些错误很难解决,因为某些原因,调用堆栈并没有告诉我正在调用数组的代码行.这是线程1的调用堆栈:

#0  0x9706d9c6 in __pthread_kill ()#1  0x93e2cf78 in pthread_kill ()#2  0x93e1dbdd in abort ()#3  0x02859e78 in dyld_stub__Unwind_DeleteException ()#4  0x0285789e in default_terminate() ()#5  0x024c7f4b in _objc_terminate ()#6  0x028578de in safe_handler_caller(voID (*)()) ()#7  0x02857946 in __cxa_bad_typeID ()#8  0x02858b3e in __cxa_current_exception_type ()#9  0x024c7e49 in objc_exception_rethrow ()#10 0x02199e10 in CFRunLoopRunspecific ()#11 0x02199ccb in CFRunLoopRunInMode ()#12 0x039a8879 in GSEventRunModal ()#13 0x039a893e in GSEventRun ()#14 0x00732a9b in UIApplicationMain ()#15 0x00001e5b in main

正如你可以看到这个调用堆栈不是很有帮助,因为它没有显示我的代码中的任何方法.此外,错误中显示的调用堆栈有22个内存地址,而来自线程1的堆栈只有15个,并且地址根本不匹配.没有其他线程似乎没有任何有用的信息.

如何从错误(有22个地址的那个)看到“第一个调用堆栈”的线程,所以我可以找到导致此错误的行?也许我的构建设置中有一些设置不正确,导致相关堆栈不可检索?

如果有人能指出我正确的方向,我将非常感激.尝试手动定位违规行是相当乏味的.

谢谢!

解决方法 打开调试器,并在抛出异常时设置断点,这样您就可以确切地知道哪一行代码是一个混蛋.

objc_exception_throw

或者,[NSException raise];

看看下面的问题:Add breakpoint to objc-exception-throw

总结

以上是内存溢出为你收集整理的ios – NSRangeException:调用堆栈不显示行号全部内容,希望文章能够帮你解决ios – NSRangeException:调用堆栈不显示行号所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1097140.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存