2013-01-21 132 views
8

我做了Eclipse Juno 32位的新安​​装,以及MinGW 32位的新安​​装,我的平台是Windows 7 64位。当试图调试一个简单的程序时,我可以看到非常简单的表达式,但是更复杂的一切都会让我错误。对于下面的程序为例:使用MinGW进行Eclipse调试:无法执行MI命令

int main() 
{ 
    vector<int> vRings; 
    for(int i=0;i<50;i++) { 
    vRings.push_back(i%5); 
    } 
    //std::cout << "result:" << getRingNumber(vRings,vDiscs); 
    return 0; 
} 

在监视窗口,看vRings正常工作,但想观看向量的内容不工作:

试图观看vRings [0] :

Error: Multiple errors reported.\ Failed to execute MI command: -var-create - * vRings[0] Error message from debugger back end: Could not find operator[].\ Unable to create variable object

试图观看vRings.at(0):

vRings.at(0) Error: Multiple errors reported.\ Failed to execute MI command: -var-create - * vRings.at(0) Error message from debugger back end: Cannot evaluate function -- may be inlined\ Unable to create variable object

我能做些什么来解决PROBL他们吗?

回答

0

您正试图观察函数调用的结果。 vRings.at()vRings[]都是返回值的引用的函数(后者是一个重载函数)。在你的情况 - 一个整数。

如果你想在索引0观看的vRings值,你可以尝试将它在某个时刻分配给一个变量,例如:

int main() 
{ 
     vector<int> vRings; 
     for(int i=0;i<50;i++) { 
     vRings.push_back(i%5); 
     } 
     int watchme = vRings.at(0); 
     //std::cout << "result:" << getRingNumber(vRings,vDiscs); 
     return 0; 
} 

然后你就可以观察的变量watchme

+0

这需要修改代码并且不可接受。当正常工作时,eclipse可以正确显示函数调用的tte结果。 –