Come fare un dump di memoria in .NET?
-
27-09-2019 - |
Domanda
Come si fa a ottenere un dump della memoria da un determinato indirizzo di memoria nel formato:
Address | Hexadecimal representation | ASCII representation
---------------------------------------------------------------------------------------
0x637132687 | 00 00 00 00 00 00 00 00 45 21 65 78 32 F5 12 6C | ....... ahsnfdas
0x637132703 | 00 00 00 00 00 00 00 00 45 21 65 78 32 F5 12 6C | ....... ahsnfdas
0x637132719 | 00 00 00 00 00 00 00 00 45 21 65 78 32 F5 12 6C | ....... ahsnfdas
0x637132735 | 00 00 00 00 00 00 00 00 45 21 65 78 32 F5 12 6C | ....... ahsnfdas
Sai qualsiasi API / quadro / strumento per il lavoro?
Soluzione
È necessario Marshal.CopyMemory () e questo codice . P / Richiamo VirtualQueryEx () per garantire gli indirizzi di memoria sono validi sarebbe una buona idea di eccezioni evitare.
Altri suggerimenti
Si può certamente essere fatto utilizzando WinDbg. Onestamente, io non sono un mago usarlo, ma Tess Ferrandez da Microsoft è e ha un ottimo blog sull'utilizzo WinDbg per eseguire il debug di applicazioni .NET.
Sembra che si desidera solo per navigare un normale dump di memoria, che dovrebbe essere abbastanza semplice. Se si desidera esaminare nulla di più (per quanto riguarda il .net) è necessario utilizzare le estensioni di SOS per WinDbg.