2013-01-21 25 views
8

Yeni bir Eclipse Juno 32 bit yüklemesi ve yeni bir MinGW 32 bit yüklemesi yaptım, platformum Windows 7 64 bittir. Basit bir programda hata ayıklamaya çalışırken çok basit ifadeler izleyebilirim, ancak daha karmaşık olan her şey bana bir hata veriyor. izle penceresindeMinGW ile Eclipse hata ayıklama: MI komutu yürütülemedi MI komutu

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 normal olarak çalışır izlerken, ancak vektör içeriği çalışmıyor izlemeye çalışıyorum: Aşağıdaki programda bir örnek için

vRings izlemek için çalışılıyor [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 izlemek için çalışılıyor (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

Ben Probl, Celi Differ çözmek için ne yapabilirim em?

cevap

0

Bir işlev çağrısının sonucunu izlemeyi deniyorsunuz. Hem vRings.at() hem de vRings[], bir değere bir başvuru döndüren işlevlerdir (sonuncusu bir aşırı yüklenmiş işlev). Senin durumunda - bir tamsayı. Eğer 0 dizininde vRings değerini izlemek istiyorsanız

, örneğin, bir noktada bir değişkene atamak için deneyebilirsiniz:

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

Sonra değişken watchme izleyebilirsiniz.

+0

Bu, kodu değiştirmeyi gerektirir ve kabul edilemez. Doğru bir şekilde çalışırken, tutulma işlev çağrılarının tt sonuçlarını doğru şekilde görüntüleyebilir. –