【问题标题】:creating a dump file for a managed (.net) application using windbg (or mscordmp)使用 windbg(或 mscordmp)为托管 (.net) 应用程序创建转储文件
【发布时间】:2011-04-22 19:17:46
【问题描述】:

我正在研究为托管进程创建转储文件。

我知道我可以使用 windbg 创建转储文件,但我想知道它们是否是我应该传递给“.dump”命令的任何特殊标志,因为它是托管应用程序而不是本机应用程序.

一个相关的问题:我听说过一个名为 mscordmp.exe 的工具(如果你用谷歌搜索它,你可以在网上找到它的提及)。 mscordmp 仍然相关吗?我在任何地方都找不到它的下载点,但我认为它可能比 windbg 更适合转储托管内存。

【问题讨论】:

标签: .net windbg


【解决方案1】:

您应该使用 /ma 创建完整的内存转储。 否则 sos 会抱怨托管分析非常有限。

【讨论】:

    【解决方案2】:

    不,没有任何与托管应用程序相关的特殊标志,windbg 只是创建内存转储,它是原始数据。您的分析工具的目的是了解您的转储是为托管应用程序创建的还是非托管应用程序创建的。

    如果谈到分析托管应用程序,您可以有以下步骤:

    1. 附加windbg 以处理正在运行的托管应用程序
    2. 运行.dump /ma <outputfilename.dmp>。它创建转储文件,此操作可能需要几分钟,具体取决于进程消耗的内存。 /ma 标志命令在启用所有选项的情况下创建附加进程的完整内存转储(它不是完整系统转储,仅附加进程)。
    3. 脱离进程,它可以继续运行,同时你可以将转储文件加载到windbg并分析它。
    4. sos.dll 是用于分析托管应用程序的常用 windbg 扩展。

    附言使用.load sos.dll 启用sos.dll 可能会出现问题,在这种情况下您可以尝试.loadby sos mscorwks

    【讨论】:

      猜你喜欢
      • 2011-06-13
      • 1970-01-01
      • 2015-12-25
      • 1970-01-01
      • 2021-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-04
      相关资源
      最近更新 更多