我正在使用 WinDbg 为 Windows 调试内核模式设备驱动程序。是否可以按需创建小型转储?
我的意思是,我的一个断点被击中,系统停止了。我想创建一个小型转储(假设只有堆栈)。是否有为此的 WinDbg 关键字?
提前致谢
当它到达断点时,您可以像这样编写一个小型转储:
bp myDLL!myFunc ".dump /ma c:\myDump.dmp;g"
这将为您的函数添加一个断点并执行引号中的命令,这将写入一个带有大多数标志的小型转储,然后继续。
要在用户或内核模式下转储完整的内存:
.dump /f
但/ma
switch 实际上为用户模式提供了更多信息。
如果您收到错误消息:
Unable to create file 'c:\myDump.dmp' - Win32 error 0n5
"Access is denied."
尝试将文件写入 c:\users\public\ 目录。
.dump /f c:\users\public\myDump.dmp
请注意,.dump 不能创建内核内存转储,只能创建完整或小内存转储(/f 或 /m)。要获得内核内存转储,您需要使用控制面板启用转储文件的写入,然后在调试器中使用 .crash 触发崩溃,这将导致转储文件被写入。
有关如何使用它的更多详细信息,请参阅 .crash 的 windbg 帮助,包括指向“创建内核模式转储文件”的链接。