【问题标题】:How to make a memory dump in .net?如何在.net中进行内存转储?
【发布时间】:2010-05-16 01:33:17
【问题描述】:

如何从给定内存地址获取内存转储,格式为:

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

【问题讨论】:

    标签: .net memory trace dump memory-dump


    【解决方案1】:

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

    【讨论】:

    • 谢谢汉斯,我将采用这种方法:) +1
    【解决方案2】:

    当然可以使用 WinDbg 来完成。老实说,我不是使用它的向导,但来自 Microsoft 的 Tess Ferrandez 是并且有一个关于使用 WinDbg 调试 .NET 应用程序的 excellent 博客。

    看来你只是想浏览一个普通的内存转储,这应该很简单。如果您想进一步检查任何内容(关于 .net),您应该使用 WinDbg 的 SOS 扩展。

    【讨论】:

    • 谢谢约翰内斯!不错的链接 +1
    猜你喜欢
    • 2015-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-14
    • 1970-01-01
    • 1970-01-01
    • 2012-11-09
    相关资源
    最近更新 更多