Xcode 4.2没有输出退出代码?

4
自从升级到iOS 5和Xcode 4.2以来,似乎Xcode不再在运行完成时打印"程序以退出代码结束:#"。是否有人也注意到这一点,并且有没有办法重新启用它?我有一个依赖于此输出以确定测试是否通过的自动化测试工具,因此有它会非常有帮助。
更新:我更详细地研究了这个问题,似乎这是一个更深层次的问题。每当我运行一个应用程序时,它都会在退出时崩溃并出现分段错误。有时这发生在退出代码被打印之前,有时则是在之后,这就是为什么退出代码消息出现不一致的原因。分段错误消息出现在设备的控制台中,但在Xcode调试输出中没有任何内容。
1个回答

3

我也刚刚注意到这个问题。在Xcode 4.1中,(tty /dev/ttys000)启动gdb的方式如下:

This GDB was configured as "--host=i386-apple-darwin --target=arm-apple-darwin".tty /dev/ttys000

但是在Xcode 4.2中 - 没有tty /dev/ttys000

This GDB was configured as "x86_64-apple-darwin".sharedlibrary apply-load-rules all

为了解决这个问题,您可以从命令行(Terminal.app/iTerm等)执行以下操作:
echo 'tty /dev/ttys000' >> ~/.gdbinit
# Or, put it into the global gdb config:
# echo 'tty /dev/ttys000' >> /etc/gdb.conf

接着重启Xcode,你就可以看到退出代码了!


看起来Xcode 4.2的gdb包装器与4.1不同了。

[ 13:29 Jonathan@MacBookPro / ]$ ls -l /Developer/Library/Xcode/PrivatePlugIns/DebuggerLLDB.ideplugin/Contents/MacOS/DebuggerLLDB /Developer-4.2/Library/Xcode/PrivatePlugIns/DebuggerLLDB.ideplugin/Contents/MacOS/DebuggerLLDB 
-rwxrwxr-x  1 root  admin  351936 Sep 20 13:23 /Developer/Library/Xcode/PrivatePlugIns/DebuggerLLDB.ideplugin/Contents/MacOS/DebuggerLLDB
-rwxrwxr-x  1 root  admin  353776 Oct  8 14:21 /Developer-4.2/Library/Xcode/PrivatePlugIns/DebuggerLLDB.ideplugin/Contents/MacOS/DebuggerLLDB

[ 13:33 Jonathan@MacBookPro / ]$ ls -l /Developer/Library/Xcode/PrivatePlugIns/DebuggerGDB.ideplugin/Contents/MacOS/DebuggerGDB /Developer-4.2/Library/Xcode/PrivatePlugIns/DebuggerGDB.ideplugin/Contents/MacOS/DebuggerGDB
-rwxrwxr-x  1 root  admin  1976144 Sep 20 13:23 /Developer/Library/Xcode/PrivatePlugIns/DebuggerGDB.ideplugin/Contents/MacOS/DebuggerGDB
-rwxrwxr-x  1 root  admin  1948240 Oct  8 14:21 /Developer-4.2/Library/Xcode/PrivatePlugIns/DebuggerGDB.ideplugin/Contents/MacOS/DebuggerGDB

不幸的是,我必须撤回这个陈述。起初似乎可以工作,但现在它似乎不一致。有时退出代码会出现,有时不会出现,我找不到任何模式。还有其他想法吗? - Jeff
@Jeff 试着将它放在全局 gdb 配置中,像这样 echo 'tty /dev/ttys000' >> /etc/gdb.conf - chown
很遗憾,它仍然不一致。只是最后一行有问题;我得到了我期望的所有其他输出。 - Jeff
@Jeff /dev/ttys000 可能是错误的 tty,请在终端中运行 ls -l /dev/ttys* 并查看哪个是您拥有的。它可能是 /dev/ttys001/dev/ttys002 - chown
我更详细地研究了这个问题,我的问题似乎与tty无关。请参见编辑后的问题以获取更多详细信息。 - Jeff

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