哪里有关于如何正确使用Xcode调试器的好教程?

Phi*_*gan 6 debugging xcode

主题说这一切真的......有没有适合Xcode调试器的好教程?我发现了一些东西,但没有什么全面的或足够深的东西.我现在的问题是这......

#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
Run Code Online (Sandbox Code Playgroud)

......结合这......

0x90d9c688  <+0024>  mov    0x20(%edx),%edi
Run Code Online (Sandbox Code Playgroud)

...还有这个...

EXC_BAD_ACCESS
Run Code Online (Sandbox Code Playgroud)

......没有多大帮助.或者说,真的.我正在尝试评论代码行,必须有更好的方法.

谢谢

更新:我想也许我的发泄有点分散了真正的问题,虽然提示有助于解释一些事情.我真正得到的不仅仅是对上述内容的解释,而是一般使用调试器.我通常遇到的问题是:

  • 当我跳过或进入时,为什么调试器有时会从源代码视图转到(我假设的)汇编代码?有没有办法让我一直同时看到两者?
  • 我是否应该在汇编代码中寻找任何具体内容,或者在特定情况下可以提供哪些帮助?
  • 看起来断点允许操作,所以我很好奇如何使用它而不是用NSLog语句来编写代码.

我知道这些是广泛的,可能应该单独询问,但我不想把这些可能已在其他地方记录的主题弄乱到SO空间.

我还注意到这里有一个几乎重复的问题:什么是Objective-c调试技巧?

Kor*_*nel 2

崩溃发生在Apple的代码内部(这就是调试器不向您显示源代码的原因),其原因实际上是在其他地方\xe2\x80\x93,您释放了一个本应存在的临时对象由自动释放池释放。这导致自动释放池崩溃。

\n\n

您应该只释放以下对象:

\n\n
    \n
  • 你已经使用了retain
  • \n
  • init仅由,copy和方法返回new(及其包含这些单词的变体)
  • \n
\n\n

不幸的是,您无法从调试器中了解到这一点,只能从文档和经验中了解这一点\xe2\x80\xa6

\n\n

您可以使用Clang 分析器来查找此类错误(有时)。

\n