如何在Eclipse中使用GDB进行C/C++调试?

15
我是Visual Studio用户,习惯使用断点进行调试。现在我正在Linux环境下使用Eclipse作为IDE。我是Linux和Eclipse的新手,不知道如何在Eclipse中使用gdb来调试程序。我尝试在命令行中使用gdb,但没有UI界面那么容易。请问如何在Eclipse中使用gdb?
2个回答

15
以下说明适用于Eclipse 3.5(Galileo)。对于3.6(Helios),它们类似,只有步骤2中的链接不同。
  1. 转到 帮助 > 安装新软件。
  2. 将CDT存储库 http://download.eclipse.org/tools/cdt/releases/galileo 添加到存储库列表中。
  3. 选择CDT存储库。现在您需要从可用插件列表中安装CDT插件以及GDB支持(选择CDT主要功能以及CDT GNU工具链调试支持)。

现在您应该能够在Eclipse中设置断点并检查变量的值。

另一种方法是安装DDD(一个GDB的图形用户界面前端)。


1
首先下载Eclipse CDT,确保您可以像Eclipse中如何从现有源代码创建项目并找到它?中所示那样将项目导入Eclipse。
您可以尝试使用这个简单的测试目录进行测试:https://github.com/cirosantilli/ide-test-projects/tree/e93924d4e2ce8cd64b00a7ce67d10d62b497fda1/cpp
git clone https://github.com/cirosantilli/ide-test-projects
cd ide-test-projects/cpp
make
./main.out

现在您还需要告诉Eclipse如何找到标准库符号,详见:"Unresolved inclusion" error with Eclipse CDT for C standard library headers。它们的默认设置很糟糕,根本无法工作。
一旦Eclipse导入了项目,例如您似乎能够跳转到定义等操作,让我们来设置一个GDB步骤调试。
首先,您必须进入:
运行 运行配置 C / C ++应用程序 cpp默认值(“cpp”是项目名称) C / C ++应用程序
然后将其设置为:
main.out

enter image description here

现在 Eclipse 知道如何运行你的程序。我们可以通过进行测试运行来确认:
  • 运行
  • 运行 (Ctrl + F11)
而底部的终端将显示程序的输出:

enter image description here

最后,我们可以在任何一个点上设置断点,例如双击代码左侧的侧边栏上的main,这会创建一个蓝色圆圈(如上图所示)。
现在我们可以通过以下方式进行调试:
  • 运行
  • 调试(F11)
预期结果是我们停在了main处:

enter image description here

淡蓝色线条覆盖在 (void)argv; 上,表示这是在调试器下正在执行的当前行。

从那里开始,学习调试界面就只是一个问题,例如:

  • 使用快捷键,如 F6 来跳过,现在可在“运行”下看到(仅在开始调试后可见)
  • 在右侧的“变量”下查看变量值
  • 使用“运行”>“终止”(Ctrl + F2)停止运行
  • 向程序传递参数:Eclipse 命令行参数

完成调试后,您可以使用 Ctrl + F8 切换回正常的代码视图(非调试状态):如何在 Eclipse 中终止调试进程后更改回透视?

在 Eclipse 2020-03 (4.15.0) 上测试通过。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接