2011-10-26 86 views
4

我在MacOS Lion上使用XCode 4.2。在Simulator中调试iPhone/iPad应用程序时,我使用XCode工具栏上的“停止”按钮(Product | Stop)退出该应用程序。在此之后很多时候,XCode打开main.m文件,将执行指针放在UIApplicationMain调用上并说“Program received SIGKILL”。在大约一秒钟之后,它会中断调试模式,所以我无法调试此错误。我的应用程序涉及很多线程,所以,我的猜测是它可能与线程仍在工作时拉出的资源有关,或者类似的东西。这甚至可能是正常的,我不关心这个问题,因为应用程序无论如何都被终止。但每次调试后都看到这个SIGKILL真的很烦人。我该如何调试它?或者,有没有办法禁用它?XCode调试器在停止按钮时停止SIGKILL

编辑:除了通常的活动日志(没有崩溃的细节,像正常的例外),除了控制台没有任何东西。

+1

调试器通过发送SIGKILL来杀死应用程序。这就是你在Unix中结束进程的方式。问题是什么? – hamstergene

+0

问题是:XCode在调试器中显示此SIGKILL,以与显示断点相同的方式,然后在一秒钟后退出调试器。 –

+4

如果它将Xcode中的代码窗口切换到main.m,那么它很烦人,远离您正在查看的内容。 – jrturton

回答

6

SIGKILL是您在停止调试器时发送到进程的内容。没有什么不对,但有时它确实显示出来并将你切换到无用和烦人的main.m文件。

为了解决它,不要打扰从Xcode停止可执行文件。只要保持运行状态,当你想再次运行时,只需重新启动“播放”按钮,无论如何将终止前一个任务。

+1

所以你说这个和基本上是一样的,就像http://stackoverflow.com/questions/6703185/getting-exception-sigkill-when-relaunching-app,并且它们都只是XCode处理事物的方式。我不喜欢它,但它似乎是正确的。谢谢。 –

+0

我也不喜欢它。我认为将SIGKILL解释为调试器中需要突出显示的内容是错误的。 – jrturton

0

要防止的Xcode 4,从短期暂停,并切换到main.m文件,您可以通过点击按停止按钮之前断点按钮关闭调试模式(?)。

0

如果使用触控板,一个解决办法是“向左滑动”在编辑区域。这会将main.c移开,并打开之前编辑的文件。

1

在我看来,jrturton的解决方案并没有真正解决问题。我是特别是停止应用程序,所以我可以使用NSUserDefaults测试保存数据。

我的建议是在运行后立即点击STOP,以便调试器不再监视应用程序。然后,您可以自由关闭该应用程序并按需要重新打开该应用程序。这样做,我能够检查NSUserDefaults是否正确保存,而不必每次我杀死并重新打开应用程序时都通过调试器。