Как сделать дамп памяти в .NET?
-
27-09-2019 - |
Вопрос
Как вы получаете дамп памяти из данного адреса памяти в формате:
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
Вы знаете какие-либо API / Framework / Tool для работы?
Решение
Вам понадобится маршал. Копимемия () и Этот код. Отказ P / Призывая VirtualQueryex () Для обеспечения действительной идеей адресов памяти будет хорошей идеей, чтобы избежать исключений.
Другие советы
Это, безусловно, можно сделать с помощью WINDBG. Честно говоря, я не волшебник, используя его, но Tess Ferrandez от Microsoft есть и имеет превосходно Блог об использовании Windbg для отладки .NET приложений.
Похоже, вы просто хотите просматривать нормальную дампу памяти, что должно быть довольно простым. Если вы хотите получить что-либо еще больше (в отношении .NET), вы должны использовать расширения SOS для WINDBG.