2011-03-10 179 views
1

我試圖調試WinXP SP3系統上的驅動程序問題。但是,當我連接到調試器時,我得到:無法獲得本地內核符號ntkrpamp正確加載WinDbg

* ERROR: Symbol file could not be found. Defaulted to export symbols for ntkrpamp.exe

我的主機是WinXP x64 SP2。我的調試器版本是6.11.0001.404(AMD64)。目標是WinXP x86 SP3。當我運行「vertarget」我得到:

Windows XP Kernel Version 2600 (Service Pack 3) MP (2 procs) Free x86 compatible
Product: WinNt, suite: TerminalServer SingleUserTS
Built by: 2600.xpsp_sp3_gdr.100427-1636

我用「!SYM嘈雜」得到充分的符號加載輸出。當我嘗試重新加載nt模塊(沒有正確加載的模塊)時,它會列出它查找pdb文件的所有位置。對於在正確的文件是(我裝的是XP SP3無符號),它說行:

DBGHELP: e:\symbols\wxp_sp3_x86_fre\exe\ntkrpamp.pdb - mismatched pdb

這是所有它告訴我。它沒有說明它爲什麼不匹配。我在這裏錯過了什麼嗎?提前致謝。

注意:不能連接到Microsoft的符號服務器。主機在內聯網上,無法連接到外部世界。

編輯:我能夠通過重新安裝目標機器來解決問題。我知道目標安裝了一些Windows更新,我懷疑其中的一個使得ntkrpamp.exe的符號過期。

回答

1

調試器使用時間戳和校驗和來驗證符號。如果你確定你有正確的符號,那麼只需使用.reload /fi NT強制加載符號路徑中的PDB。

如果您無法訪問正在調試的計算機的Internet表單,您可以隨時將二進制文件複製到閃存驅動器,將其轉移到可以訪問Internet的計算機並使用kd -z ntkrpamp.exe將二進制文件作爲轉儲文件。這將允許您使用Microsoft的符號服務器。然後,您可以通過閃存驅動器將PDB從本地路徑複製到Intranet環境。