3 Stimmen

Wie können Sie Segment-Offset-Speicheradressen im Visual Studio-Debugger anzeigen?

Ich debugge gerade einige Codes aus der Disassemblierung (es ist kein Quellcode verfügbar), und es gibt eine Reihe von Anweisungen, die auf Daten über die ds Segmentregister, z. B. so etwas wie dieses:

66 3B 05 8A B1 43 00 cmp         ax,word ptr ds:[43B18Ah]

Wie bringen Sie den Visual Studio-Debugger dazu, Ihnen den Offset der ds Segmentregister, damit ich den Speicher, auf den es sich bezieht, überprüfen kann? Das Watch-Fenster scheint keine Ausdrücke zu akzeptieren wie ds:[0x43B18A] oder Varianten; es wird mir sagen, dass ds ist 0, aber das sagt mir nicht, was der Offset von Segment 0 ist.

Gibt es eine spezielle Syntax für diese, oder ist dies etwas, das VS einfach nicht tun kann? Hätte ich mehr Glück mit einem anderen Debugger wie WinDbg oder ntsd?

5voto

Hans Passant Punkte 894572

Dies ist eine Eigenart des in Visual Studio integrierten Disassemblers. Es ist überflüssig, das DS-Register ist der Standard. Ignorieren Sie es einfach, unter Windows werden die DS-, CS- und ES-Register auf denselben Wert gesetzt. Ein geschützter Modus-Selektor. Und derselbe Wert, den das Speicherfenster verwendet. Lassen Sie einfach das Präfix ds: weg.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X