2011-09-23 40 views
9

Tôi đang sử dụng Qt trên Ubuntu. Khi tôi gỡ lỗi, tôi chỉ thấy giá trị đầu tiên của mảng trong Người dân địa phương và Người theo dõi. Làm thế nào tôi có thể xem tất cả các nội dung mảng?Xem nội dung Mảng trong trình gỡ lỗi Qt Creator

struct node 
{ 
    int *keys; 
    void **pointers; 
    int num_keys; 
    struct node *parent; 
    int is_leaf; 
    struct node *nextLevelNode; 
}; 

Chỉ hiển thị giá trị khóa đầu tiên trong cửa sổ gỡ lỗi.

Trả lời

8

Nó chỉ hiển thị các giá trị quan trọng đầu tiên, trong cửa sổ gỡ lỗi

Tôi đoán bạn đang đề cập đến các phím con trỏ, khai báo với int *keys;

Các debugger không biết rằng điều này là một mảng: tất cả những gì nó biết là đây là con trỏ đến một số int. Vì vậy, nó không thể biết có bao nhiêu giá trị bạn muốn nó hiển thị.

Những gì tôi đã tìm thấy, bằng cách sử dụng Qt Creator 2.1.0 debugger trên Ubuntu, là đoạn mã sau cho phép tôi để xem tất cả 5 giá trị:

int array1[5]; 
array1[0] = 2; 
array1[1] = 4; 
array1[2] = 6; 
array1[3] = 8; 
array1[4] = 10; 

Trong khi với mã này, trình gỡ lỗi chỉ hiển thị giá trị đầu tiên, chính xác như bạn mô tả.

int* array2 = new int[5]; 
array2[0] = 20; 
array2[1] = 21; 
array2[2] = 22; 
array2[3] = 23; 
array2[4] = 24; 

Ngoài: tất nhiên, các mã trên sẽ được theo sau bởi điều này, để tránh bộ nhớ bị rò rỉ:

delete[] array2; 

Sau: Qt Developer Network Forum Post này nói rằng bạn có thể nói với các debugger để hiển thị một con trỏ dưới dạng mảng:

Trong trình đơn người xem và trình đơn ngữ cảnh, chọn “Biểu thức xem”. Điều này tạo ra một biểu thức mới được xem bên dưới.

Ở đó, nhấp đúp vào mục nhập trong cột "Tên" và thêm "@ 10" để hiển thị 10 mục nhập.

Điều này nghe có vẻ như bạn sẽ bắt đầu.

3

Chỉ cần nhấp chuột phải vào biến của bạn, và chọn Change Value Display Format và kiểm tra Array of 100 items.

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