2011-09-23 8 views
9

Estoy usando Qt en Ubuntu. Cuando depuro solo veo el primer valor de la matriz en Locales y Vigilantes. ¿Cómo puedo ver todos los contenidos de la matriz?Ver los contenidos de la matriz en el depurador de Qt Creator

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

Muestra solo el primer valor de clave en la ventana de depuración.

Respuesta

8

Se muestra sólo el primer valor de clave, en la ventana de depuración

supongo que te refieres a las teclas del cursor, declaró con int *keys;

El depurador no sabe que esta es una matriz: todo lo que sabe es que este es un puntero a un int. Por lo tanto, no puede saber cuántos valores desea que muestre.

Lo que he encontrado, utilizando el Qt Creator 2.1.0 depurador en Ubuntu, es que el código siguiente me permite ver los 5 valores:

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

Mientras que con este código, el depurador sólo muestra el primer valor, exactamente como lo describes.

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

Aparte: por supuesto, el código anterior sería seguido por esto, para evitar la memoria fugas:

delete[] array2; 

tarde: Este Qt Developer Network Forum Post dice que se puede decir que el depurador para mostrar un puntero como una matriz:

En Locales y vigilantes, menú contextual de la entrada de su puntero, seleccione "Ver expresión". Esto crea una nueva expresión observada a continuación.

Allí, haga doble clic en la entrada en la columna "Nombres", y agregue "@ 10" para mostrar 10 entradas.

Parece que debería ponerlo en marcha.

3

Simplemente haga clic derecho en su variable y elegir Change Value Display Format y comprobar Array of 100 items.

Cuestiones relacionadas