Macos GDB在OSX小牛上调试x86汇编代码

Macos GDB在OSX小牛上调试x86汇编代码,macos,debugging,gcc,assembly,gdb,Macos,Debugging,Gcc,Assembly,Gdb,我已经在stackoverflow上寻找了一个小时的答案,似乎有很多类似的问题,但没有一个真正适合我 关于我正在使用的工具的信息可以在下面找到 我正在为java语言的一个子集编写自己的编译器,从而创建汇编代码。现在我需要调试所说的汇编代码来定位bug。问题是,当我使用gcc-m32-g myAssembler.s将我的汇编程序代码编译成二进制时,我得到以下警告: warning: no debug symbols in executable (-arch i386) (使用-ggdb,-ggd

我已经在stackoverflow上寻找了一个小时的答案,似乎有很多类似的问题,但没有一个真正适合我

关于我正在使用的工具的信息可以在下面找到

我正在为java语言的一个子集编写自己的编译器,从而创建汇编代码。现在我需要调试所说的汇编代码来定位bug。问题是,当我使用
gcc-m32-g myAssembler.s
将我的汇编程序代码编译成二进制时,我得到以下警告:

warning: no debug symbols in executable (-arch i386)
(使用
-ggdb,-ggdb2,-ggdb3,-g2,-g3
而不是
-g
时也会出现此警告。)

由于没有调试符号,我无法使用
gdb
来调试我的代码。我不太了解链接以及链接是如何完成的,也不知道是谁做的(尤其是在Mac上),因此非常欢迎精确的/noob友好的答案



我正在使用的工具: 从我的编译器创建的程序集是x86,32位GAS语法

我使用的是OSXMavericksGNUGDB(gdb)7.6,通过MacPorts下载(他们将其名称改为
ggdb
ggdb--version
命令还显示了一行代码:

This GDB was configured as "x86_64-apple-darwin13.0.0".
(不太确定这是否重要。)

运行
gcc--version
返回:

Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
Target: x86_64-apple-darwin13.0.0
Thread model: posix

这可能与苹果在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这可能与苹果公司在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

这可能与苹果在Xcode 5中放弃对GDB的支持有关,而您正在使用Xcode 5附带的gcc版本。您可能需要更改编译器或调试器(到lldb)@CRD从GDB似乎工作正常这一事实判断,除了gcc,你还推荐什么其他编译器?我不能推荐任何编译器,也没有尝试过你正在做的事情,但你可以看看llvm gcc(Xcode 5也不再支持)。请尝试www.llvm.org下载。但这可能比使用lldb更麻烦(如果您的问题确实与Xcode 5的更改有关)。祝您好运!@CRD非常感谢您,我刚刚从homebrew下载了gcc-4.2,这似乎适用于lldb(似乎Xcode 5仍然支持它)。如果你愿意,你可以回答这个问题,我会接受。这可能与苹果在Xcode 5中放弃对GDB的支持有关,你正在使用Xcode 5附带的gcc版本。你可能需要更改编译器或调试器(到lldb)@CRD从GDB似乎工作正常这一事实判断,除了gcc,你还推荐什么其他编译器?我不能推荐任何编译器,也没有尝试过你正在做的事情,但你可以看看llvm gcc(Xcode 5也不再支持)。请尝试www.llvm.org下载。但这可能比使用lldb更麻烦(如果您的问题确实与Xcode 5的更改有关)。祝您好运!@CRD非常感谢您,我刚刚从homebrew下载了gcc-4.2,这似乎对lldb有效(它似乎仍然受到Xcode 5的支持)。如果您愿意,您可以回答这个问题,我会接受它。