没有gcc的gdb

Tyl*_*ler 3 linux assembly gdb

是否可以使用汇编as并链接的程序运行GDB ld?随着gcc加入标志-g允许进行调试,但我得到的错误No symbol table is loaded. Use the "file" command,当我尝试断点添加到加载的程序.

谢谢!

编辑也许我应该说清楚我正在学习和编写程序集.我真正想要的只是一个堆栈跟踪,但能够使用GDB会很棒.

分辨率运行as -g可以解决问题.

谢谢所有回答!

eph*_*ent 5

有可能的.但是,您需要符号才能添加符号断点,并且符号由调试信息提供; 确保你的汇编器和链接器提供这些. 编辑 使用GNU as,使用as -g.或者只是使用gcc -g:如果你给它一个.s文件,它将适当地调用汇编器和链接器.

GDB了解几种格式的调试信息:stabs,COFF,PE,DWARF,SOM.(其中一些是带有调试部分的可执行格式,另一些是可以嵌入到可执行文件中的调试信息格式,例如ELF.) gcc -g通常选择平台的默认值,gcc -ggdb通常选择最具表现力(取决于你的版本,可能是DWARF- 3).

如果您有可执行文件嵌入或链接的调试信息,gdb将尝试自动加载它.如果你在其他地方有它,你可能需要用它file来告诉gdb它在哪里找到它.

您仍然可以调试没有符号信息.例如,break *0x89abcdef如果那里有任何代码,您可以发出在该地址插入断点的问题.