risposta

24

Se si desidera visualizzare una particolare posizione di memoria, è necessario comunicare al debugger il tipo di oggetto che vive in quella posizione. Invece di solo 0x00aabbcc usa (SomeType*)0x00aabbcc. Una volta che il debugger conosce il tipo di posizione della memoria lo tratterà come un locale digitato e visualizzerà i valori di conseguenza

+0

Desidero VS non sarebbe cercare di essere così intelligente, e richiedono il tipo di dati sia nota a vedere cosa c'è alla posizione di memoria. Preferisco che sia un po 'stupido e mostrami un dump esadecimale nella posizione di memoria: P –

+5

Bene, ha già la finestra Memoria. Basta trascinare e rilasciare una variabile lì (o incollare un indirizzo esadecimale) e mostrerà lo stato della memoria grezza. – Neutrino

1

Controllare il sito ufficiale answer, che funziona così come le altre risposte date a questa domanda :). In quella pagina, la sezione "A seguito di un puntatore attraverso la memoria" dice:

Nelle applicazioni in codice nativo, è possibile utilizzare registrare nomi come dal vivo espressioni. Ad esempio, è possibile utilizzare il puntatore dello stack per seguire lo stack .

seguire un puntatore attraverso la memoria

  1. Nella finestra memoriaIndirizzo dialogo, digitare un'espressione puntatore. La variabile puntatore deve essere nell'ambito corrente. A seconda della lingua, potrebbe essere necessario dereferenziarlo.

  2. Premere INVIO. Ora, quando si utilizza un comando di esecuzione come Step, l'indirizzo di memoria che viene visualizzato cambierà automaticamente quando il puntatore cambia.

+0

"Nella casella Indirizzo della finestra di memoria, digitare un'espressione del puntatore." Cosa, esattamente, è un'espressione puntatore? Niente di ciò che provo funziona. – Dan

+0

Un'espressione di puntatore può essere qualcosa come: '* (int *) (ebp + 0ch)'. Tratta ebp + 0ch come puntatore a int e quindi dereferenzia. – Yuval

Problemi correlati