2013-01-21 12 views
8

Zrobiłem nową instalację 32 bitów Eclipse Juno i nową instalację 32-bitowych bitów MinGW, moją platformą jest Windows 7 64-bitowy. Podczas próby debugowania prostego programu mogę oglądać bardzo proste wyrażenia, ale wszystko, co jest bardziej skomplikowane, powoduje błąd. Na przykład w poniższym programie:Debugowanie Eclipse z MinGW: Nieudane wykonanie komendy 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; 
} 

W oknie zegarka, oglądanie vRings pracować normalnie, ale stara się oglądać zawartość wektora nie działa:

Starając się obserwować 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

Starając się obserwować 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

Co mogę zrobić, aby rozwiązać PROBL em?

Odpowiedz

0

Próbujesz obejrzeć wynik wywołania funkcji. Zarówno vRings.at() jak i vRings[] są funkcjami (te ostatnie są przeciążonymi funkcjami), które zwracają odwołanie do wartości. W twoim przypadku - liczba całkowita.

Jeśli chcesz oglądać wartość vRings o indeksie 0, można spróbować przypisać ją do zmiennej w pewnym momencie, na przykład:

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; 
} 

Następnie można oglądać zmiennej watchme.

+0

Wymaga to modyfikacji kodu i jest niedopuszczalne. Podczas poprawnego działania, Eclipse może wyświetlać wyniki tte wywołań funkcji poprawnie. –