【问题标题】:Exception Breakpoints - LLDB Results vs. GDB异常断点 - LLDB 结果与 GDB
【发布时间】:2012-02-18 07:58:18
【问题描述】:

我已经搜索了专门针对这个问题的主题,但没有找到任何与我的经验相近的东西。如果我忽略了答案,请原谅我。我熟悉 GDB 和异常点、断点等...但是以下在 GDB 与 LDB 中的调试测试让我没有一个合理的回应。

全局测试值

  • Xcode 4.2.1
  • 新建单窗口项目(默认模板,无更改)
  • 弧形启用
  • 故事板已启用

案例 1 - GDB 调试器

异常断点值:

  • 例外 - 全部
  • 突破 - 投掷
  • 参数 - 无
  • 结果 - 没有崩溃

案例 2 - LLDB 调试器

异常断点值:

  • 例外 - 全部
  • 突破 - 投掷
  • 参数 - 无
  • 结果 - Sigbart 和机器代码崩溃;没有明显的堆栈跟踪

案例 3 - LLDB 调试器

异常断点值:

  • 异常 - Objective-C
  • 突破 - 投掷
  • 参数 - 无
  • 结果 - 没有崩溃

案例 4 - LLDB 调试器

异常断点值:

  • 异常 - C++
  • 突破 - 投掷
  • 参数 - 无
  • 结果 - Sigbart 和机器代码崩溃;没有明显的堆栈跟踪

问题:我是否应该简单地假设选择“Objective-C”作为例外选项是一种安全的方法,还是我可能会忽略一个明显的问题?据我了解,从 Xcode 4.2.1 开始,建议我使用 LLDB 并愿意。但是,我对上面的结果很好奇。

提前感谢所有社区回复!

【问题讨论】:

  • 无论您是在设备上运行还是在模拟器中运行,这有区别吗?我似乎记得在模拟器中运行时在启动时遇到了非 objc(即 c++)异常。
  • 感谢@MikeK 的建议!你是对的。在设备上重现测试时,选择“异常:全部”或“异常:C++”时不再出现崩溃。我仍然很好奇为什么会在模拟器中发生崩溃以供后代使用。 >.

标签: objective-c xcode4.2 lldb


【解决方案1】:

感谢 @Mike K 的深思熟虑的建议,我能够解决我可能忽略一个明显问题的担忧。

当我在实际设备 iPhone/iPad 上重现上述场景时,使用 LLDB 的案例 2 和 4 不再产生崩溃,并且应用程序按预期运行。这个问题似乎仅限于模拟器。

为了后代,我对模拟器上问题的根本原因感兴趣,但我很高兴我可以按预期继续使用 LLDB。

【讨论】:

    猜你喜欢
    • 2011-12-28
    • 1970-01-01
    • 2012-08-07
    • 1970-01-01
    • 1970-01-01
    • 2014-01-30
    • 2015-03-02
    • 1970-01-01
    • 2012-09-20
    相关资源
    最近更新 更多