首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有来自NSAssert的堆栈跟踪

没有来自NSAssert的堆栈跟踪
EN

Stack Overflow用户
提问于 2012-02-26 11:59:43
回答 1查看 711关注 0票数 7

IIRC,这通常是有效的。但最近我注意到,NSAssert…()没有给我提供堆栈跟踪,或者至少没有提供有用的跟踪:

代码语言:javascript
复制
2012-02-26 14:41:19.283 MyApp[3299:707] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '…'
*** First throw call stack:
(0x33cc58bf 0x353e11e5 0x33cc57b9 0x317583b3 0x78423 0x76e35 0x77dbf 0x217dd 0x12c63 0x3178a943 0x33c99a63 0x33c996c9 0x33c9829f 0x33c1b4dd 0x33c1b3a5 0x3585bfcd 0x34d60743 0xde87 0x30dc)
terminate called throwing an exception(gdb) bt
#0  0x3629232c in __pthread_kill ()
#1  0x34b3ef5a in pthread_kill ()
#2  0x34b37fea in abort ()
#3  0x35fe9f6a in abort_message ()
#4  0x35fe734c in default_terminate ()
#5  0x353e12e2 in _objc_terminate ()
#6  0x35fe73c4 in safe_handler_caller ()
#7  0x35fe7450 in std::terminate ()
#8  0x35fe8824 in __cxa_rethrow ()
#9  0x353e1234 in objc_exception_rethrow ()
#10 0x33c1b544 in CFRunLoopRunSpecific ()
#11 0x33c1b3a4 in CFRunLoopRunInMode ()
#12 0x3585bfcc in GSEventRunModal ()
#13 0x34d60742 in UIApplicationMain ()
#14 0x0000de86 in main (argc=1, argv=0x2fdffaa4) at …/main.mm:18
(gdb) 

我在某处读到,使用iOS部署目标会导致这种情况,我最近确实将设置从4.0更改为4.3。但是,将其改回原处没有任何区别。

OTOH,assert(…)的工作方式与预期一致。

为什么在NSAssert…()失败时,Xcode不提供正确的可导航堆栈跟踪?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-26 13:46:41

我不确定这是为什么,但是,如果您设置了一个异常断点,断点似乎足够早地停止执行,以便看到有用的回溯。一旦命中断点,控制台中的bt就会按预期工作。

确保在评估后不要选中"Automatically continue “复选框。这似乎导致了一个无用的回溯,就像你发布的那个。

您还可以使用here中描述的NSSetUncaughtExceptionHandler()来设置日志记录回调函数。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9450411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档