================================Windbg下載符號===================================
打了補丁後經常出現"Your debugger is not using the correct symbols",
使用WINDBG命令下載更新符號檔案即可,以下命令不能去掉“.”,打完命令就開始下載了 流量監控可以看到
1: .sympath srv*G:\WinDDK\7600.16385.1\Debuggers\Symbols*http://msdl.microsoft.com/download/symbols
2: !sym noisy
3: .reload
完成下載後
lkd>.reloadConnected to Windows 7 7600 x86 compatible target at (Fri Apr 29 21:42:54.477 2011 (UTC + 8:00)), ptr64 FALSELoading Kernel Symbols.............................................................................................................................................................Loading User SymbolsPEB is paged out (Peb.Ldr = 7ffda00c). Type ".hh dbgerr001" for detailsLoading unloaded module list..lkd> !sym noisynoisy mode - symbol prompts onlkd> !sym noisynoisy mode - symbol prompts onlkd> .sympath srv*G:\WinDDK\7600.16385.1\Debuggers\Symbols*http://msdl.microsoft.com/download/symbols DBGHELP: Symbol Search Path: srv*g:\winddk\7600.16385.1\debuggers\symbols*http://msdl.microsoft.com/download/symbols DBGHELP: Symbol Search Path: srv*g:\winddk\7600.16385.1\debuggers\symbols*http://msdl.microsoft.com/download/symbols Symbol search path is: srv*G:\WinDDK\7600.16385.1\Debuggers\Symbols*http://msdl.microsoft.com/download/symbols Expanded Symbol search path is: srv*g:\winddk\7600.16385.1\debuggers\symbols*http://msdl.microsoft.com/download/symbols WARNING: Whitespace at end of path element
下面在使用命令 dt _eprocess 出來了.本機7600.16695
lkd> dt _eprocessntdll!_EPROCESS
+0x000 Pcb : _KPROCESS
================================極速雙機調試VirtualKD+Windbg+vmware==================================
雙機調試的時候,不管是Windbg+vmware,還是Windbg+1394,其調試速率都是相對比較低的,有時候執行一條p命令,Windbg的狀態都會BUSY..好久...
VirtualKD可以完美的解決這一問題。
VirtualKD主要是用來提高當使用vmware或virtualBox進行windows核心調試時的速率。以前的雙機標準調試方法是利用虛擬COM串口,其速率很低。
通常,通過虛擬COM串口進行調試包括以下步驟:
1.windows使用虛擬COM串口和host主機之間進行資料交換;
2.WinDbg/KD使用VM提供的一個PIPE管道來與目標調試機進行通訊。
這裡最弱的串連是虛擬COM串口,其傳輸速率僅為:115200 baudrate,等效於115200 bit per second,也就是大約10KB/S的傳輸速率。VirtualKD取代了虛擬COM串口的功能,極大的提高了資料交換速率,可達6MB/S,但是官方給出的用!irpfind命令測試的話,vmware平台可達150KB/S,不過已經比虛擬COM串口快了15倍了。具體的效果只有在調試過程當中,才會體會到 -:) 事實上,VirtualKD的主要原理是,利用KD的擴充DLL功能,並且向虛擬機器patch一個進程,二者通過pipe來進行通訊。
使用方法:
1.配置方法可簡單,可複雜。簡單的方法有自動化,複雜的方法有手動設定。手動方法分為動態patch和靜態patch兩種,具體的可參考官網。http://virtualkd.sysprogs.org/
2.現在只說明下自動安裝的情況,目標機為vmware,若是VirtualBox,則稍有改動
下載VirtualKD安裝包,解壓後,父目錄下virtualKD2.2下有一個target目錄,將該target目錄copy到虛擬機器,點擊target/vminstall.exe 運行,然後直接安裝即可。如圖1所示,vminstall.exe會自動檢測虛擬機器的核心版本,因為我的目標機是wrk 的核心,故顯示:wrk debug【VirtualKD】,當然,你也可以將顯示的字串修改後,再點擊安裝。
當目標機為XP系統的時候,情況如圖2所示:
(圖2)
選擇install以後,按照提示直接重啟。
接著,在host主機端開啟vmmon.exe程式即可(記著,vmmon程式要始終開啟著),該程式會自動檢測到虛擬機器當中正在啟動並執行作業系統。簡單的設定下windbg的路徑和啟動方式(自動/手動),那麼一切就OK了。虛擬機器啟動的時候,windbg調試機就自動或手動掛接上了。如圖:
其實配置過程非常簡單。這裡寫的比較囉嗦了,主要是自己第一次配置的時候,沒好好讀說明書,結果手動設定,浪費了時間;後來選擇vminstall.exe自動安裝,忘記了設定Debugger path..又浪費了時間去檢查。
最終的結論是,使用VirtualKD代替了傳統的虛擬COM串口以後,調試速度是飛一般的快。
接受新事物總是好的,認知的過程總是有點小曲折,不過目標對象是多麼簡單。。。
========================windows 7本地核心調試================
使用VistaLKD 如下圖