如何在.net中进行内存转储?

时间:2010-05-15 16:51:57

标签: .net memory trace dump memory-dump

如何从以下格式获取给定内存地址的内存转储:

  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 /框架/工具吗?

2 个答案:

答案 0 :(得分:2)

你需要Marshal.CopyMemory()和this code。 P /调用VirtualQueryEx()以确保内存地址有效是避免异常的好主意。

答案 1 :(得分:1)

当然可以使用WinDbg完成。老实说,我不是一个使用它的巫师,但微软的Tess Ferrandez有一个关于使用WinDbg调试.NET应用程序的excellent博客。

您似乎只想浏览正常的内存转储,这应该非常简单。如果你想进一步检查(关于.net)你应该使用WinDbg的SOS扩展。