2013-01-21 38 views
8

Tôi đã cài đặt mới các bit của Juno 32 bit của Eclipse và cài đặt mới các bit 32 bit của MinGW, nền tảng của tôi là Windows 7 64 bit. Khi cố gắng gỡ lỗi một chương trình đơn giản, tôi có thể xem các biểu thức rất đơn giản, nhưng mọi thứ phức tạp hơn đều khiến tôi gặp lỗi. Đối với một ví dụ trong chương trình sau đây:Gỡ rối Eclipse bằng MinGW: Không thể thực thi lệnh 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; 
} 

Trong cửa sổ xem, xem vRings làm việc bình thường, nhưng cố gắng để xem nội dung của vector không hoạt động:

Đang cố gắng để xem 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

Đang cố gắng để xem 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

tôi có thể làm gì để giải quyết vấn probl em?

Trả lời

0

Bạn đang cố xem kết quả của cuộc gọi hàm. Cả hai vRings.at()vRings[] là các hàm (hàm sau bị hàm quá tải) trả về một tham chiếu đến một giá trị. Trong trường hợp của bạn - một số nguyên.

Nếu bạn muốn xem giá trị của vRings ở chỉ số 0, bạn có thể thử để gán nó vào một biến tại một số điểm, ví dụ:

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

Sau đó, bạn có thể xem các biến watchme.

+0

Điều này yêu cầu phải sửa đổi mã và không được chấp nhận. Khi làm việc chính xác, nhật thực có thể hiển thị kết quả tte của hàm gọi chính xác. –

Các vấn đề liên quan