gpt4 book ai didi

c++ - 如何使用 MinGW gdb 调试器在 Windows 中调试 C++ 程序?

转载 作者:IT老高 更新时间:2023-10-28 12:47:10 26 4
gpt4 key购买 nike

我已经查找了这方面的文档,但一无所获。我安装了 MinGW,效果很好。我只是不知道如何使用调试器。

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

int main()
{
int temp = 0;

for (int i = 0; i < 5; ++i)
temp += i;

return 0;
}

...我将如何调试它。我在 Windows 中使用 MinGW 和 GDB 调试代码的命令是什么?我可以像在 Visual Studio 中那样通过命令行单步执行代码吗?如果是这样,我使用什么命令来做到这一点?

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

最佳答案

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

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

然后程序就可以加载到gdb中了:

gdb myprog.exe

一些命令可以帮助您入门:

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

在断点处:

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

最好的阅读是GDB users' manual .

关于c++ - 如何使用 MinGW gdb 调试器在 Windows 中调试 C++ 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4671900/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com