Xcode/iOS 设备调试

Xcode/iOS Device Debugging

调试 iOS 应用程序时,即 iOS 8.1/8.2,当应用程序在某处崩溃时,它似乎只在 main.m 中的 int main 处崩溃或者它在实际的 assy 代码方面崩溃。

即使想退后一步,也似乎根本不让我退后一步。

我试过重新创建这些方案。我检查过符号没有被删除,编译器在构建设置中没有进行任何优化。

具体来说,这似乎只适用于在设备上进行调试,而不适用于模拟器(我从来没有用过)。

如何让它在导致 exception/whatever.

的 Obj-C 或 Swift 行崩溃

谢谢

阿德

xCode 通常会在发生崩溃时显示 main.c,这仅表示在 main.c 中调用的子程序崩溃了。

找出究竟是什么崩溃的最简单方法是在程序中的某处放置断点,就在您认为可能可疑的点之前。如果应用程序在断点命中之前崩溃,请将断点放置得更早,直到它在崩溃之前命中。当触发断点时,逐步跟踪应用程序,找出崩溃的确切原因。

此外,查看调用堆栈通常很有帮助。

您可以添加一个 异常断点 这将在发生 "Error" 的地方停止您的代码。

  • 转到断点导航器 (⌘ CMD+7)
  • 点击底部的“+”号
  • 选择添加异常断点

异常断点 未在任何行上设置。以下是默认设置: