2012-11-22 84 views
7

我正在使用WinDbg調試Windows的內核模式設備驅動程序。 是否可以按需創建小型轉儲?如何使用WinDbg創建內核轉儲

我的意思是,我的一個斷點被擊中,系統停止。我想創建一個小型轉儲(我們只說棧)。這是否有WinDbg關鍵字?

在此先感謝

回答

9

你可以寫像這樣一個小型轉儲,當它擊中你的斷點:

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:\用戶\ PUBLIC \目錄下。

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

我們假設我已經處於斷點。如果我理解正確,命令是'.dump/ma c:\ myDump.dmp',對嗎? – valdo

+0

@valdo是的,這是正確的 – EdChum

+0

從.dump命令的windbg幫助文件中:在內核模式下,要生成完整的內存轉儲,請使用/ f選項。要生成一個小內存轉儲,請使用/ m選項(或不選)。 .dump命令不能產生內核內存轉儲。因此,也許只是'.dump/mc:\ myDump.dmp'(在'm'選項後沒有'a'選項? –

2

請注意.dump無法創建內核內存轉儲,只能完成或小內存轉儲(/ f或/ m)。要獲得內核內存轉儲,您需要使用控制面板啓用轉儲文件的寫入,然後在調試器中使用.crash觸發崩潰,這將導致寫入轉儲文件。

有關如何使用它的更多詳細信息,請參閱.crash的windbg幫助,包括指向「創建內核模式轉儲文件」的鏈接。