【发布时间】:2010-11-19 05:01:01
【问题描述】:
我正在尝试在运行 Mac OS X v10.5 (Leopard) 的 MacBook Pro 上使用 Eclipse Galileo 调试 C++ 代码。这是我第一次尝试这个。我有一个复杂的 C++ 程序要调试,但为了测试,我只是尝试调试并逐步执行以下操作:
#include <iostream>
using namespace std;
int main()
{
int x = 0;
cout << x << endl;
x = 54;
cout << x << endl;
return 0;
}
我点击了调试图标,告诉它使用GDB (DSF) Create Process Launcher 并开始单步调试代码。我希望能够监控 x 的值,所以我打开了变量窗口并进行了观察。最初,它是 4096 - 大概是一些垃圾值。当我点击下一行时,它显示了该值,它现在显示以下错误:
Failed to execute MI command:
-var-update 1 var1
Error message from debugger back end:
Variable object not found
我似乎无法弄清楚或绕过它。一些谷歌搜索结果完全没有任何线索。
解决方案:正如下面drhirsch 指出的,使用标准创建进程启动器而不是GDB 创建进程启动器。 (这实际上是一种解决方法,而不是真正的解决方案,但它至少对我们两个人有用。)
【问题讨论】:
-
您是否使用调试信息进行编译,而不是剥离可执行文件?
-
我正在调试中构建,在项目设置中看不到任何类似的东西,所以我很确定不是这样。另外,它实际上在调试期间确实可以编辑并继续正常工作。不过,谢谢你的想法。
-
嗨,我遇到了同样的错误,您如何在屏幕上显示错误输出“执行失败..”?我什至没有任何信息....
-
好的,目前,使用 7.1 版的 /opt/local/bin/fsf-gdb 似乎可以解决问题!我没有对它进行广泛的测试,但是我可以在非常不同的函数中使用断点,并且程序在调试时停在那里
标签: c++ eclipse macos gdb galileo