2015-03-17 11 views
8

Modifica 2: Se non è possibile, assegnerò il premio a una risposta che lo dimostra (intendo fornire alcune fonti attendibili che sostengono che non è possibile).Mostra puntatore come array in Qt Creator con CDB per debugger


Diciamo ho un puntatore a una matrice, per esempio:

int arr[3]; 
int *p = new int[3]; 

posso vedere tutti gli elementi di arr, ma solo il primo elemento di p. Come posso vedere tutti e 3 gli elementi di p?

Ho provato i vari suggerimenti dalle risposte da View Array contents in QtCreator e View Array contents in Qt Creator debugger, tuttavia non ha funzionato per me:

enter image description here

presumo questo è perché sono in CDB, mentre gli altri 2 le domande sono per GDB. È possibile ottenere lo stesso per CDB?

Modifica: Ho dimenticato di menzionare, ma anche p,3 non funziona.

+0

Prova '(int (&) [3]) p' – GreenScape

+0

@GreenScape CDB registra questo errore:' EERRORE: impossibile aggiungere l'elemento di visualizzazione "watch.1"/"(int (&) [3]) p" : Impossibile aggiungere il simbolo '(int (&) [3]) p': DEBUG_ANY_ID è stato restituito come indice simbolico da AddSymbol. – sashoalm

risposta

-1

È possibile utilizzare * (p + 1) e * (p + 2) per accedere agli altri due elementi.

Edit: @sashoalm devi fare questo qui sotto:

int *pindex[3]; 
for(int j=0; j< 3;j++){ 
    pindex[j]= p+j; 
} 

allora si sarà in grado di visualizzare tutte le p nel debugger.

Spero che questo aiuti.

+1

Questa non è affatto una soluzione. Conosco già 'p [1]' e 'p [2]'. Ho bisogno che funzioni per matrici di centinaia di elementi. – sashoalm

+0

Bello, ho salvato la giornata! –

-2

Per visualizzare tutti gli elementi del * p:

  1. fare clic destro sul locale ed espressioni.
  2. immettere * (p + 1) e * (p + 2).

Quindi, è possibile visualizzare tutti e tre gli elementi.

+3

Se stai per copiare una risposta esistente, potresti sceglierne una che non è stata downvoted e che non risponde alla domanda in modo soddisfacente. –

+0

Si prega di non copiare le risposte altrui, di apportare nuovi contributi a SE –

1

Aggiungere in Expression Evaluator (menu Finestra-> Views-> Gli abitanti del posto ed espressioni)

(int(*)[3])p 

Che funziona bene in Qt Creator 3.2.1 Sulla base di Qt 5.3.2 (GCC 4.9.2, a 64 bit) Costruito il 10 maggio 2016 alle 17:53:15.