【问题标题】:How to create a kernel dump using WinDbg如何使用 WinDbg 创建内核转储
【发布时间】:2012-11-22 20:40:23
【问题描述】:

我正在使用 WinDbg 为 Windows 调试内核模式设备驱动程序。 是否可以按需创建小型转储?

我的意思是,我的一个断点被击中,系统停止了。我想创建一个小型转储(假设只有堆栈)。这个有 WinDbg 关键字吗?

提前致谢

【问题讨论】:

    标签: kernel windbg minidump


    【解决方案1】:

    当遇到断点时,您可以像这样编写一个小型转储:

    bp myDLL!myFunc ".dump /ma c:\myDump.dmp;g"
    

    这将为您的函数添加一个断点并执行引号中的命令,这将写入一个带有大多数标志的小型转储,然后继续。

    有关.dumphere 的更多信息,请参阅herebp 语法。

    在用户或内核模式下转储完整的内存:

    .dump /f
    

    /ma 开关实际上为用户模式提供了更多信息。

    如果出现错误:

    Unable to create file 'c:\myDump.dmp' - Win32 error 0n5
        "Access is denied."
    

    尝试将文件写入 c:\users\public\ 目录。

    .dump /f c:\users\public\myDump.dmp
    

    【讨论】:

      【解决方案2】:

      请注意,.dump 不能创建内核内存转储,只能创建完整或小内存转储(/f 或 /m)。要获取内核内存转储,您需要使用控制面板启用转储文件的写入,然后在调试器中使用 .crash 触发崩溃,这将导致转储文件被写入。

      有关如何使用它的更多详细信息,请参阅 .crash 的 windbg 帮助,包括指向“创建内核模式转储文件”的链接。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多