升级到XCode4(v。4.2,4D199)之后,似乎每次我的应用在调试时崩溃,调试都指向main(),并且堆栈没有符号化且无用。

多年来一直运行良好,我不知道出了什么问题。

我正在使用GDB。我还按照this advice尝试了LLDB,但它也不起作用(类似的,无用的堆栈)。

我的断点可以工作,我可以获得完整的堆栈,并且当我的代码遇到这些变量时可以检查变量。

重现步骤:

注意这是在我自己的项目中发生的,但是我将在这里使用Apple的代码从等式中删除该变量

  • 从Apple下载以下示例:https://developer.apple.com/library/ios/#samplecode/UICatalog/Introduction/Intro.html#//apple_ref/doc/uid/DTS40007710
  • ImagesViewController类中,将以下代码添加到viewDidLoad方法中(因此它将崩溃–我们希望此测试崩溃):
    // please note: this code is designed to crash! I want it to crash, to highlight my issue with XCode.
    NSMutableArray* test = [NSMutableArray new];
    [test insertObject:NULL atIndex:0];
    
  • 然后运行该应用程序并点击“图像”行。
  • 它崩溃,并显示以下消息:
    2011-12-23 14:07:02.788 UICatalog[13394:707] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil'
    *** First throw call stack:
    (0x37bbb8bf 0x316a11e5 0x37b1020f 0x699f 0x34fac7ff 0x34fb8c39 0x34fb8aa9 0x34fb898f 0x34fb815b 0x34fb7f53 0x34fac673 0x34fac349 0x66c1 0x35026565 0x3509ece7 0x31aec943 0x37b8fa63 0x37b8f6c9 0x37b8e29f 0x37b114dd 0x37b113a5 0x3768ffcd 0x34fa1743 0x2459 0x2418)
    terminate called throwing an exception(gdb)
    

  • 在xcode中查看:

    最佳答案

    感谢brigadir将我指向the solution!

    它运作良好。以下是一些截图,用于解决任何发现我的问题的人:

    点击断点选项卡上的加号按钮

    然后点击完成

    10-01 12:34
    查看更多