2011-09-23 12 views
9

Sto usando Qt su Ubuntu. Quando eseguo il debug, vedo solo il primo valore dell'array in Locals and Watchers. Come posso visualizzare tutti i contenuti dell'array?Visualizza i contenuti dell'array nel debugger Qt Creator

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

Mostra solo il primo valore di chiave nella finestra di debug.

risposta

8

Essa mostra solo il primo valore della chiave, nella finestra di debug

Presumo ti riferisci ai tasti puntatore, ha dichiarato con int *keys;

Il debugger non sa che questo è un array: tutto ciò che sa è che questo è un puntatore a un int. Quindi non può sapere quanti valori vuoi che vengano visualizzati.

Quello che ho trovato, utilizzando il debugger 2.1.0 Qt Creator su Ubuntu, è che il seguente codice mi permette di vedere tutti i 5 valori:

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

Considerando che con questo codice, il debugger solo mostra il primo valore, esattamente come lo descrivi.

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

parte: ovviamente, il codice di cui sopra sarebbe stata seguita da questo, per evitare la memoria che perde:

delete[] array2; 

tardi: Questo Qt Developer Network Forum Post dice che si può dire il debugger per visualizzare un puntatore come matrice:

In Locals and Watchers, menu di scelta rapida della voce del puntatore, selezionare "Espressione di controllo". Questo crea una nuova espressione guardata sotto.

Qui, fare doppio clic sulla voce nella colonna "Nomi" e aggiungere "@ 10" per visualizzare 10 voci.

Sembra che questo dovrebbe farti andare.

3

Basta fare clic destro sul vostro variabili e scegliere Change Value Display Format e verificare Array of 100 items.