gpt4 book ai didi

objective-c - 没有来自 NSAssert 的堆栈跟踪

转载 作者:可可西里 更新时间:2023-11-01 03:31:56 26 4
gpt4 key购买 nike

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

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)

我在某处读到,使用 Xcode 没有符号的 iOS 部署目标会导致此问题,并且我最近确实将设置从 4.0 更改为 4.3。但是,将其改回没有任何区别。

OTOH,assert(…) 按预期工作。

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

最佳答案

我不确定这是为什么,但是,如果您设置异常断点,断点似乎会提前停止执行以查看有用的回溯。一旦断点被​​击中,控制台中的 bt 将按预期工作。

enter image description here

确保您选中“评估后自动继续”复选框。这似乎会导致像您发布的那样无用的回溯。

您还可以使用 NSSetUncaughtExceptionHandler() 设置日志回调函数,如 here 所述.

关于objective-c - 没有来自 NSAssert 的堆栈跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9450411/

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