2012-01-03 46 views
1

在gdb中调试C/C++代码时,可以使用list命令查看您正在调试的源文件。但是,如果你引入汇编函数并尝试列出源代码,gdb就不会看到它。 “信息来源”也只能看到C文件。为什么gdb无法看到汇编源文件

我知道我可以反汇编代码,但我希望看到具有评论等来源。 我已经检查了对应于程序集源的对象文件,并且源文件的名称甚至没有记录(它是针对C文件的)。

这是行为设计​​吗?我错过了一些标志?

回答

4

正如编译器需要标志来产生调试信息一样,汇编器也是如此。不知道你在用什么汇编语言,我不能说你需要什么标记。

+0

我使用gcc(它执行gnu汇编程序)。我正在使用-g3标志。 – dbrank0 2012-01-03 17:30:10

+0

gcc有一个-Wa标志用于将选项传递给汇编器;看起来像汇编程序也使用-g来表示调试信息的生成。 – 2012-01-03 18:53:21

+0

谢谢。在x86 gcc上,它实际上也仅仅通过将-g传递给gcc(它传递给as)来工作。实际上,我在其他工具链上玩耍,但是错误地认为这是通用的GNU行为。 – dbrank0 2012-01-04 08:22:30