Åtkomst till minne efter virtuell adress
Om du vill komma åt minnesadresser eller adressintervall kan du använda flera kommandon. Visual Studio och WinDbg tillhandahåller användargränssnittselement (samt kommandon) som du kan använda för att visa och redigera minne. Mer information finns i Visa och redigera minne i WinDbg (klassisk).
Följande kommandon kan läsa eller skriva minne i olika format. Dessa format omfattar hexadecimala byte, ord (ord, dubbelord och fyrdubbelord), heltal (korta, långa och fyrtal samt osignerade heltal), flyttal (10-byte, 16-byte, 32-byte och 64-byte flyttal) och ASCII-tecken.
Kommandot d* (Visningsminne) visar innehållet i en angiven minnesadress eller ett angivet intervall.
Kommandot e* (Ange värden) skriver ett värde till den angivna minnesadressen.
Du kan använda följande kommandon för att hantera mer specialiserade datatyper:
Kommandot dt (visningstyp) hittar en mängd olika datatyper och visar datastrukturer som har skapats av programmet som debuggas. Det här kommandot är mycket mångsidigt och har många varianter och alternativ.
Kommandot ds, dS (visningssträng) visar datastrukturen STRING, ANSI_STRING eller UNICODE_STRING.
Kommandot dl (Visa länkad lista) spårar och visar en länkad lista.
Kommandot d*s (Visa ord och symboler) hittar dubbla ord eller fyrord som kan innehålla symbolinformation och visar sedan data och symbolinformation.
Kommandot !address extension visar information om egenskaperna för det minne som finns på en specifik adress.
Du kan använda följande kommandon för att ändra minnesintervall:
Kommandot m (Flytta minne) flyttar innehållet i ett minnesintervall till ett annat.
Kommandot f (Fyllningsminne) skriver ett mönster till ett minnesintervall och upprepar det tills intervallet är fullt.
Kommandot c (Jämför minne) jämför innehållet i två minnesintervall.
Kommandot (Sökminne) söker efter ett angivet mönster inom ett minnesintervall eller söker efter ASCII- eller Unicode-tecken som finns i ett minnesintervall.
Kommandot .holdmem (Hold and Compare Memory) jämför ett minnesintervall med ett annat.
I de flesta fall tolkar dessa kommandon sina parametrar i det aktuella radixet. Därför bör du lägga till 0x före hexadecimala adresser om det aktuella radixet inte är 16. Visningsutdata för dessa kommandon är dock vanligtvis i hexadecimalt format, oavsett aktuellt radix. (Mer information om utdata finns i de enskilda kommandoavsnitten.) Fönstret Minne visar heltal och verkliga tal i decimalformat och visar andra format i hexadecimalt format.
Om du vill ändra standardradixet använder du kommandot n (Ange nummerbas). Om du snabbt vill konvertera tal från en bas till en annan använder du ? (Utvärdera uttryck) kommando eller kommandot .format (Visa talformat).
När du utför felsökning i användarläge bestäms innebörden av virtuella adresser av den aktuella processen. När du utför felsökning i kernelläge kan innebörden av virtuella adresser styras av felsökningsprogrammet. Mer information finns i Process Context.