gdb声称它不知道如何运行

时间:2011-02-07 01:04:06

标签: cocoa xcode macos gdb

我在Mac Pro X Mac OS X 10.6.6上使用Xcode 3.2.3从the growl-development repository构建版本5fd480ef577f的GrowlTunes。

使用原始结帐的干净版本,这就是我得到的:

% gdb build/Debug/GrowlTunes.app/Contents/MacOS/GrowlTunes 
GNU gdb 6.3.50-20050815 (Apple version gdb-1469) (Wed May  5 04:41:34 UTC 2010)
[blah blah blah]
This GDB was configured as "--host=x86_64-apple-darwin --target=powerpc-apple-darwin"...Reading symbols for shared libraries ......... done

(gdb) run
Starting program: /Volumes/RAM Disk/growl-development/Extras/GrowlTunes/build/Debug/GrowlTunes.app/Contents/MacOS/GrowlTunes 
Don't know how to run.  Try "help target".

当我在Xcode中尝试时,它显然会进行一些失败的内部测试,因为它甚至没有将GDB列为选项。由于Cocoa应用程序中没有其他调试器(在此版本的Xcode中),与目标Info窗口中的调试相关的弹出菜单是空的,并且尝试运行应用程序什么都不做 - Run按钮切换回为立即运行按钮。

目标是为32位PowerPC和64位Intel构建的:

% file build/Debug/GrowlTunes.app/Contents/MacOS/GrowlTunes 
build/Debug/GrowlTunes.app/Contents/MacOS/GrowlTunes: Mach-O universal binary with 2 architectures
build/Debug/GrowlTunes.app/Contents/MacOS/GrowlTunes (for architecture ppc7400):        Mach-O executable ppc
build/Debug/GrowlTunes.app/Contents/MacOS/GrowlTunes (for architecture x86_64): Mach-O 64-bit executable x86_64

我可以直接从终端或Finder运行它,但这对我的逐步调试没有帮助。

这不是交叉编译方案;我的意思是运行64位英特尔架构,这是我机器的本机架构,而不是PowerPC架构。

我猜这是项目中某处的构建错误配置,但我不知道是什么或在哪里。有什么建议吗?

3 个答案:

答案 0 :(得分:2)

来自我的联系人的解决方法:

gdb -arch x86_64 build/Debug/GrowlTunes.app/Contents/MacOS/GrowlTunes

我仍然感谢能够在Xcode中运行/调试应用程序的解决方案。

答案 1 :(得分:1)

在相关构建设置中切换体系结构的顺序解决了gdb和Xcode中的问题。这是一个蹩脚的解决方案,我仍然欢迎一个更好的解决方案,但至少它是有效的。

答案 2 :(得分:1)

在gdb提示符下,尝试'set arch x86_64'或'set arch i386:x86-64'(当然没有引号;我是gdb的新手,我正在寻找其他问题的解决方案)