IOS应用程序以调试器错误结束,只显示 (lldb)。

3
我的应用现在已经在iOS模拟器上完美运行,但是在程序结束时,调试器会出现蓝色错误"(lldb)"。为什么?我该怎么做才能避免这种情况发生?
PS:我使用ARC模式编写了这个程序。
如果我只运行模拟器,我的.app会在程序结束并从运行中的应用列表中移除时准确地冻结模拟器。
这是我的冻结模拟器的截图:

如果您能够重现这个错误,请尝试从模拟器中独立运行以重现它。然后您就可以获得崩溃报告了。 - ZhangChn
你是通过按下停止按钮来停止应用程序,还是通过在快速应用任务栏中终止它?如果是后者,系统会向应用程序发送一个终止信号,调试器将始终捕获终止信号。请通过在Xcode中简单地按下“停止”按钮来停止应用程序。 - Jason Coco
我发现最令人不安的是,来自苹果简单代码的应用程序在没有冻结或调试器错误的情况下就能做到这种类型的结束。为什么会这样呢?我已经通过模拟器上的硬件方式杀死了应用程序。我想这与“在快速栏中杀死它”是一样的。 - John Wilund
这是因为它不是一个调试错误。调试器接收到一个终止信号,所以它被陷阱捕获,但这是一个系统信号,而不是异常。没有错误信息可以呈现。当你在调试时,像那样杀死进程是不好的形式。停止调试器,这样它就可以愉快地清理了。 - Jason Coco
2个回答

5

根据截图、左侧的调试信息和你的描述,我认为你在某个地方添加了一个断点,只是没有注意到它。当你的代码达到断点时,它立即停止执行代码并引入调试器(在这种情况下是lldb)。

我几乎可以确定这就是问题所在。


不,他是在杀死正在运行的进程,而不是使用调试器停止它。 - Jason Coco
@Leonnears 没有错误添加断点。然而,这是在iOS模拟器冻结并且lldb已经停止iOS模拟器并在其屏幕上发布了非常有用的消息“(lldb)”后xCode的截图。http://i.stack.imgur.com/nK0XO.png - John Wilund
@Jason Coco没错。我杀掉了进程,然后lldb调试器给我发了消息。 - John Wilund
@johnwilund,没有消息是因为您向应用程序发送了终止信号。 (lldb) 只是控制台提示符,因为调试器只知道某些东西意外地终止了它正在监视的进程,因此在进程入口点处进行陷阱捕获。不要以这种方式终止您正在调试的应用程序,请按停止按钮。 - Jason Coco

0

前往产品 -> 方案 -> 编辑方案 并取消选中 "调试可执行文件" 祝好运


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接