9

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

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

提前致谢

4

2 回答 2

13

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

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

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

有关语法更多信息,请参见此处。.dumpbp

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

.dump /f

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

如果您收到错误消息:

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

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

.dump /f c:\users\public\myDump.dmp
于 2012-11-22T21:18:56.567 回答
2

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

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

于 2014-04-23T15:45:20.340 回答