Antwort

24

Wenn Sie einen bestimmten Speicherort überwachen möchten, müssen Sie dem Debugger den Typ des Objekts mitteilen, das sich an diesem Speicherort befindet. Verwenden Sie statt 0x00aabbcc(SomeType*)0x00aabbcc. Sobald der Debugger den Typ des Speicherorts kennt, behandelt er ihn wie einen lokalen Typ und zeigt dementsprechend die Werte an.

+0

Ich wünsche VS nicht versuchen würde, so klug zu sein und erfordern wird der Datentyp bekannt, um zu sehen, was auf dem Speicherplatz ist. Ich würde es lieber ein wenig dumm sein und zeigen Sie mir nur einen Hex-Dump am Speicherort: P –

+5

Nun, es hat das Memory-Fenster dafür schon. Ziehen Sie einfach eine Variable dorthin (oder fügen Sie eine hexadezimale Adresse ein) und es wird Ihnen der rohe Speicherstatus angezeigt. – Neutrino

1

Überprüfen Sie die offizielle Seite answer, die genauso funktioniert wie die anderen Antworten auf diese Frage :). Auf dieser Seite im Abschnitt „einen Zeiger durch die Speicher Nach“ sagt:

In nativen Code-Anwendungen, Sie Namen als registrieren Live Ausdrücke verwenden können. Beispielsweise können Sie den Stapelzeiger verwenden, um dem Stapel zu folgen.

Um einen Zeiger durch Speicher

  1. Im Speicher Fenster Adresse Feld einen Zeiger Ausdruck zu folgen. Die Zeigervariable muss im aktuellen Bereich sein. Je nach Sprache müssen Sie es möglicherweise dereferenzieren.

  2. Drücken Sie ENTER. Wenn Sie jetzt einen Ausführungsbefehl wie Schritt verwenden, ändert sich die angezeigte Speicheradresse automatisch, wenn sich der Mauszeiger ändert.

+0

"Geben Sie in das Feld Adresse des Speicherfensters einen Zeigerausdruck ein." Was genau ist ein Zeigerausdruck? Nichts, was ich versuche, funktioniert. – Dan

+0

Ein Zeigerausdruck könnte etwas wie folgt aussehen: '* (int *) (ebp + 0ch)'. Er behandelt ebp + 0ch als Zeiger auf int und dereferenziert ihn dann. – Yuval

Verwandte Themen