我一直试图在stackoverflow上找到这个问题的答案大约一个小时了,似乎有很多类似的问题,但没有一个真的适合我的。
有关我正在使用的工具的信息可以在下面找到!
我正在为java语言的子集编写自己的编译器,从而创建汇编代码。现在,我正处于需要调试所述汇编程序代码以查找错误的位置。问题是当我将汇编程序代码编译为带gcc -m32 -g myAssembler.s
的二进制文件时,我收到以下警告:
warning: no debug symbols in executable (-arch i386)
(使用-ggdb, -ggdb2, -ggdb3, -g2, -g3
代替-g
由于没有调试符号,我无法使用gdb
来调试我的代码。我不太了解链接以及它是如何完成的或者是谁(特别是在Mac上),所以非常欢迎精确/无欢乐的答案。
<小时/> <小时/>
从我的编译器创建的程序集是x86,32位GAS语法。
我正在使用 OS X Mavericks ,通过 MacPorts 下载 GNU gdb(GDB)7.6 (他们将名称更改为{{1} ggdb
命令还显示一行:
ggdb --version
(不太确定这是否重要。)
运行This GDB was configured as "x86_64-apple-darwin13.0.0".
会返回:
gcc --version
答案 0 :(得分:1)
这可能与Apple在Xcode 5中放弃对GDB的支持有关,你使用的是Xcode 5附带的gcc版本。你可能需要更改编译器或调试器(到lldb)...你可能会看看llvm-gcc (Xcode 5也支持掉)。请访问www.llvm.org进行下载。但这可能比使用lldb更麻烦(如果您的问题确实与Xcode 5的更改有关)。祝好运! - CRD
我刚刚从自制软件中下载了gcc-4.2,这似乎适用于lldb(似乎Xcode 5仍然支持)。 - Octoshape