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