2012-05-18 69 views
9

我發現很難從我正在處理的內核模式驅動程序中看到調試輸出。如何從內核模式驅動程序中查看DbgPrint輸出?

我是新來的驅動程序開發。我試圖在Windows XP上調試USB驅動程序。我已經安裝了DDK,並構建了我的驅動程序的「檢查模式」版本。我已經安裝了驅動程序,如果我使用十六進制編輯器在Windows /驅動程序中查看我的驅動程序的.sys文件,我可以看到我的調試輸出字符串的文本。

如果我在Visual Studio下運行使用我的驅動程序的應用程序,則我的調試輸出不會顯示在輸出窗口中,因爲應用程序自己的調試輸出可以。在網絡搜索中,我發現了許多關於如何顯示內核調試輸出的不同聲明。對於一般的內核調試,人們似乎要麼通過NULL調制解調器電纜(Crikey,2012年)進行遠程調試,要麼使用虛擬機和虛擬COM端口。這兩種方法看起來像是大量的工作,只是爲了能夠看到調試輸出。有其他選擇嗎?

我試過在「本地」內核調試模式下使用WinDbg,但它沒有顯示任何東西。它警告我應該在啓用「/ debug」的情況下重新啓動Windows。我做到了,但沒有幫助。

還有其他想法嗎?還是我要求不可能的?

回答

10

DebugView中會顯示你從你的驅動程序跟蹤消息:

http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx

但是,你真的需要一兩個機器設置做任何真正的開發工作。

+0

謝謝。這工作。我認爲DbgView只能顯示與Visual Studio在輸出窗口中顯示的相同的調試流,但事實並非如此。 –

+0

順便說一句,沒有必要使用「/ debug」啓動Windows以使其工作。 –

1

您發現的信息是正確的。您確實需要2臺機器來調試內核模式驅動程序。

如果您選擇使用2臺物理機器,則可以通過USB連接它們。 NULL調制解調器(COM端口)是將調試器附加到虛擬機的常用方式,其中VM的COM端口被視爲主機上的命名管道,因此您不需要一根NULL調制解調器電纜。

幾個環節

http://msdn.microsoft.com/en-us/library/ff538141.aspx

http://msdn.microsoft.com/en-us/library/ff542279.aspx

+2

謝謝你花時間回答我的問題。我認爲你的回答有點誤導,因爲我可以在沒有2臺機器的情況下做我想做的事情。但是,我同意如果想要使用斷點進行全面調試等,則需要2臺機器。 –

相關問題