2011-01-19 88 views
13

調試en_windows_7_checked_build_dvd_x86_398742時,我沒有收到調試信息。 我甚至無法看到我自己的跟蹤信息(ATLTRACE)。 相反,Windows XP Checked的作用就像一個魅力。 在Windows 7啓動調試會話時出現「Bad QueryIdType:5」msg。 顯然,內核調試設置正確。 請幫忙...內核跟蹤Windows 7 WinDbg

回答

13

好的,我找到了解決方案here。它可以幫助人們:

問題:在Windows Vista上運行驅動程序時,您的DbgPrint或KdPrint消息不會顯示在WinDbg(或KD)中。

原因? Vista自動將DbgPrint和朋友映射到DbgPrintEx。現在,您可能還記得,DbgPrintEx允許您通過函數調用中的組件名稱和級別以及註冊表或內存中的相關過濾器掩碼來過濾消息,從而控制將消息發送到內核調試器的條件。

在Vista中,DbgPrint和KdPrint映射到組件「DPFLTR_DEFAULT_ID」和級別「DPFLTR_INFO_LEVEL」。當然,在Vista中,xxx_INFO_LEVEL輸出默認是禁用的。因此,默認情況下,您的DbgPrint/KdPrint不會發送到內核調試器。

如何解決?有兩種選擇:

  • 默認啓用DbgPrint/KdPrint消息輸出--open關鍵HKLM\SYSTEM\CurrentControlSet\Session Manager\Debug Print Filter。在此項下,創建名稱爲DEFAULT的值將此項的值設置爲等於DWORD值8以啓用x​​xx_INFO_LEVEL輸出以及xxx_ERROR_LEVEL輸出。或者嘗試將掩碼設置爲0xF,以便獲得所有輸出。您必須重新啓動才能使這些更改生效。

  • 具體更改DPFLTR的組件過濾器桅杆。在Vista/LH的早期版本中,通過在Kd_DPFLTR_MASK(「ed Kd_DPFLTR_MASK」)處指定DWORD的掩碼值來更改默認打印輸出掩碼。在內部版本5308(Vista的2月份CTP)中,看起來掩碼變量已經改變,您需要設置DWORD的掩碼值爲Kd_DEFAULT_MASK(「ed Kd_DEFAULT_MASK)。在任一情況下,指定8以啓用DPFLTR_INFO_LEVEL輸出到DPFLTR_ERROR_LEVEL輸出,或0xf添加至獲取輸出各級

見讀取和過濾調試信息WDK文檔(按照路徑:驅動程序開發工具\調試工具DRIVERS \在驅動程序中使用調試代碼\調試代碼概述)以獲取有關使用DbgPrintEx/KdPrintEx的完整詳細信息,或者查看DbgPrintEx上的調試工具Windows文檔(附錄A)

15

我能夠從WinDbg的範圍內解決這個問題,在Windows 7 32位:

ed Kd_DEFAULT_Mask 8 

根據MSDN文章,你也可以使用註冊表,但你必須重新啓動它生效。在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter下創建一個名爲DEFAULT的DWORD密鑰,其值爲8

的最新微軟的文檔可以在這裏找到:http://msdn.microsoft.com/en-us/library/windows/hardware/ff551519(v=vs.85).aspx

1

在默認情況下啓用DbgPrint/KdPrint消息輸出的註冊表路徑「HKEY_LOCAL_MACHINE \系統\ CurrentControlSet \控制\會話管理器\調試打印過濾器」 會話管理器在控制之下。默認值通常是0xf。這使所有的消息。 要在您需要設置一個更好的擬合位掩碼的信息位於 https://docs.microsoft.com/de-de/windows-hardware/drivers/devtest/reading-and-filtering-debugging-messages#identifying-the-component-name

如果你採取的Visual Studio 2015年或2017年,標準配置默認情況下不會設置該標誌。當開始使用示例時,不要忘記在Debug-Target上設置這個額外的內容。

所以這幫助我在Windows 10環境中使用Windbg。

的第二個問題是使用在Windows 10 DEVCON像在回波示例 https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debug-universal-drivers---step-by-step-lab--echo-kernel-mode-#install

在子彈描述「7找到內置驅動程序文件」所需要的驅動程序文件transfering到調試目標並與DEVCON加載它們。使用Windows 10,您還必須複製目錄文件。否則,devcon.exe將按照描述失敗。 因爲您還需要安裝測試證書。這通常在使用Visual Studio 2015/2017準備調試環境時完成。請仔細檢查certmgr。