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

时间:2014-01-30 22:27:31

标签: gcc compilation gdb flags

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

gcc val_ref.c -DDEBUG

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

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

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

(gdb) break main
(gdb) break incvar
(gdb) run
(gdb) continue

但是,我无法在控制台上看到逐行处理信息。相反,我看到了这一点:

Output of console

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

2 个答案:

答案 0 :(得分:1)

-g标志怎么样?这是gdb的通常标志..

答案 1 :(得分:0)

用于编译以进行调试的最佳标志是-g和-O0。 -g使GCC向可执行文件添加调试信息,-O0停止GCC启用优化,这在调试时会引起混淆。