2013-01-08 13 views
6

Quindi, ho una variabile buffPtr: TPointer Ha una dimensione di 16 e contiene una serie di numeri, per lo più a partire da 0, dire qualcosa come 013854351387365. Sono sicuro che contiene valori, perché l'applicazione fa quello che va bene.Come visualizzare il valore di un puntatore durante il debug in Delphi?

Voglio vedere questo valore mentre eseguo il debug.

Se aggiungo "PAnsiChar (buffPtr) ^" agli orologi, vedo solo il primo byte.

+1

Hai provato a mettere PAnsiChar (BufPtr) (senza il ^)? – jachguate

risposta

8

ho aggiunto un orologio per PAnsiChar (buffPtr)^

con le proprietà Guarda come

Repeat Count = 16 decimale

enter image description here

+0

Non capisco la domanda o la risposta. Potresti elaborare? –

+0

Sarebbe bello se tu includessi anche un'immagine * dell'output * da questa configurazione, anziché solo l'input della finestra di dialogo. –

3

Hai impostato l'orologio do discarica una regione di memoria? Per alcune strutture che aiutano.

Se è possibile ricompilare l'applicazione, quindi definire questo:

type 
    T16Values = array[0..15] of Byte; 
    P16Values = ^T16Values; 

poi gettato il puntatore in una P16Values e visualizzare quello.

Se si tratta di un altro tipo di dati diverso da Byte, modificare di conseguenza il codice sopra riportato.

+0

IMHO non ti serve, dal momento che il debugger gestisce direttamente la ripetizione personalizzata. –

+0

A volte è più comodo farlo al momento del codice, poiché il salvataggio delle impostazioni del debugger richiede di salvare l'intero .DSK, che spesso causa dolore. –

+1

... o aggiungi semplicemente, 16 all'espressione. Non c'è bisogno di cambiare le impostazioni. ;) –

9

Digitare semplicemente l'espressione dell'orologio PAnsiChar(buffPtr)^,16 o PByte(buffPtr)^,16 se si desidera ottenere i valori ordinali/di byte.

Il trucco consiste nell'aggiungere il numero di ripetizione del motivo dopo una virgola, ad esempio ,16.

È IMHO più conveniente di modificare le proprietà di controllo e funziona con il comando di valutazione F7 dell'IDE.

+0

+1; Trucco pulito. –

Problemi correlati