GDB在OS X Mavericks上调试x86汇编代码

时间:2013-12-04 20:49:43

标签: macos debugging gcc assembly gdb

我一直试图在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

1 个答案:

答案 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