哪里有关于如何使用Xcode';调试器正确吗?
主题说的都是真的……有没有关于Xcode调试器的好教程?我发现了点点滴滴的东西,但没有什么全面或深入的东西。我现在的问题是这哪里有关于如何使用Xcode';调试器正确吗?,xcode,debugging,Xcode,Debugging,主题说的都是真的……有没有关于Xcode调试器的好教程?我发现了点点滴滴的东西,但没有什么全面或深入的东西。我现在的问题是这 #0 0x90d9c688 in objc_msgSend #1 0x30506515 in NSPopAutoreleasePool #2 0x30901697 in _UIApplicationHandleEvent #3 0x32046375 in PurpleEventCallback #4 0x30245560 in CFRunLoopRunSpeci
#0 0x90d9c688 in objc_msgSend
#1 0x30506515 in NSPopAutoreleasePool
#2 0x30901697 in _UIApplicationHandleEvent
#3 0x32046375 in PurpleEventCallback
#4 0x30245560 in CFRunLoopRunSpecific
#5 0x30244628 in CFRunLoopRunInMode
#6 0x308f930d in -[UIApplication _run]
#7 0x309021ee in UIApplicationMain
#8 0x00001ff8 in main at main.m:14
…再加上这个
0x90d9c688 <+0024> mov 0x20(%edx),%edi
…帮不了什么忙。或者说,真的。我求助于注释代码行,必须有更好的方法
谢谢
更新:我想我的发泄可能有点分散了我对真实问题的注意力,尽管这些技巧有助于解释一些事情。我真正想了解的不仅仅是对上述内容的解释,而是调试器的一般用法。我通常有以下问题:
- 为什么当我跨过或跨入时,调试器有时会从源代码视图转到(我假设的)汇编代码?有没有办法让我一直同时看到这两种情况
- 我应该在汇编代码中寻找什么具体的东西,或者在特定情况下有什么可以帮助我的东西吗
- 看起来断点允许操作,所以我很好奇如何利用断点,而不是在代码中添加NSLog语句
我还注意到这里有一个几乎重复的问题:崩溃发生在苹果的代码中(这就是调试器没有向您显示源代码的原因),而导致崩溃的原因实际上是在其他地方——您释放了一个临时对象,该对象应该由自动释放池释放。这导致自动释放池崩溃 您应该只释放以下对象:
- 您已使用
retain
- 仅通过
、init
和copy
方法返回(及其包含这些单词的变体)new
您可以使用查找此类错误(有时)。您应该启用NSZombieEnabled,以便针对以下发行版问题进行调试: 下面是一个关于XCode 4调试器功能的介绍 关于调试器为什么从源代码视图转到程序集视图的问题。。。
当代码的执行进入不属于源代码文件的类时,它会进入程序集视图。当您使用UIKit等框架中的代码时。如果我能将这两个答案都作为公认答案进行检查,我会这样做,尽管他们没有以我希望的方式回答问题。最终,这在这里并不重要。因此,我将首先介绍导致崩溃的原因,尽管我认为我需要再次检查内存管理规则,以了解为什么会发生崩溃。多亏了这两个!我知道这是个老问题。但对于任何一个偶然发现这一点的人来说,我发现这绝对是极好的。
EXC_BAD_ACCESS