如何使用MinGW gdbdebugging器在Windows中debuggingC ++程序?

我已经find这个文件,什么也没find。 我已经安装了MinGW,它工作得很好。 我只是不知道如何使用debugging器。

给定一些简单的代码,例如在一个名为“mycode.cpp”的文件中:

int main() { int temp = 0; for (int i = 0; i < 5; ++i) temp += i; return 0; } 

…我将如何debugging这个。 在Windows中使用MinGW和GDBdebugging代码的命令是什么? 我可以像Visual Studio一样通过命令行执行代码吗? 如果是的话,我用什么命令来做到这一点?

那里有使用GDB的教程吗? 我找不到任何东西,但如果有人能指引我,那也会很棒。 我已经厌倦了编写大量的std::cout语句来debugging复杂的代码。

第一步是用-g编译你的程序,在可执行文件中包含调试信息:

 g++ -g -o myprog.exe mycode.cpp 

然后程序可以加载到gdb

 gdb myprog.exe 

几个命令让你开始:

  • 调用break main会导致调试器中断。 你也可以break FILENAME:LINENO的代码行。 例如,当程序到达mycode.cpp第4 mycode.cppbreak mycode.cpp:4会中断执行。
  • start启动程序。 在你的情况下,你需要在启动程序之前设置断点,因为它快速退出。

在一个断点:

  • print VARNAME 这就是打印变量的值,无论是本地,静态还是全局。 例如,在for循环中,可以输入print temp打印出temp变量的值。
  • step这相当于“步入”。
  • nextadv +1前进到下一行(如“step over”)。 您也可以使用例如adv mycode.cpp:8前进到特定文件的特定行。
  • bt打印回溯。 这本质上是一个堆栈跟踪。
  • continue完全像一个可视调试器的“继续”操作。 它会导致程序继续执行,直到下一个中​​断点或程序退出。

最好的阅读是GDB用户手册 。

在这个问题的Windows版本的GDB前端DDD有几个gdb的guis窗口

尽管DDD尚未被移植