用于生成exe的正确GCC编译命令(与gdb一起使用)

用于生成exe的正确GCC编译命令(与gdb一起使用),gcc,compilation,gdb,flags,Gcc,Compilation,Gdb,Flags,我有一个名为val_ref.c的文件,我使用命令标志编译了它: gcc val_ref.c-DDEBUG 之后,我使用以下命令打开了gdb: gdb a%生成的可执行文件称为 然后,我使用以下命令设置断点并运行调试器: (gdb) break main (gdb) break incvar (gdb) run (gdb) continue 但是,我无法在控制台上看到逐行进行的信息。相反,我看到的是: 我不确定我做错了什么。例如,如果我要在VS2010或Eclipse Kepler(使用Min

我有一个名为
val_ref.c
的文件,我使用命令标志编译了它:

gcc val_ref.c-DDEBUG

之后,我使用以下命令打开了gdb:

gdb a
%生成的可执行文件称为

然后,我使用以下命令设置断点并运行调试器:

(gdb) break main
(gdb) break incvar
(gdb) run
(gdb) continue
但是,我无法在控制台上看到逐行进行的信息。相反,我看到的是:


我不确定我做错了什么。例如,如果我要在VS2010或Eclipse Kepler(使用MinGW工具链)中将其构建为一个控制台应用程序,然后在exec上运行
gdb
,那么它将工作得很好(我认为)。似乎我没有在编译中添加正确的指令/标志。有人能帮我吗?

g旗怎么样?这是gdb的常用标志。

编译用于调试的最佳标志是-g和-O0-g导致GCC向可执行文件添加调试信息,-O0停止GCC启用优化,这在调试时会造成混乱