我有一个名为val_ref.c
的文件,我使用命令flag编译它:
gcc val_ref.c -DDEBUG
之后,我使用以下命令打开了gdb:
gdb a
%生成的可执行文件称为
然后我使用以下命令设置断点并运行调试器:
(gdb) break main
(gdb) break incvar
(gdb) run
(gdb) continue
但是,我无法在控制台上看到逐行处理信息。相反,我看到了这一点:
我不确定我做错了什么。例如,如果我要在VS2010或Eclipse Kepler(使用MinGW工具链)中将其构建为控制台应用程序,然后在exec上运行gdb
,它将完美地工作(我认为)。好像我没有在我的编译中添加正确的指令/标志。有人可以帮我吗?
答案 0 :(得分:1)
-g标志怎么样?这是gdb的通常标志..
答案 1 :(得分:0)
用于编译以进行调试的最佳标志是-g和-O0。 -g使GCC向可执行文件添加调试信息,-O0停止GCC启用优化,这在调试时会引起混淆。