目錄
1. 調試工具VisualDDK:
2. Vista以下的版本系統設定:
3. Vista以上的版本系統設定:
4. 1394火線調試
5. 使用序列槽線雙機調試
6. 調試過程中出現的問題及解決方案
7. 快速下載下傳符号檔案離線包
1. 調試工具VisualDDK:
1. 安裝VisualDDK.
2. WMware 拷貝target檔案夾,運作wminstall.exe 配置調試資訊。
3. 主控端啟動vmmon程式監控虛拟機。
2. Vista以下的版本系統設定:
1. VMware 配置
首先,VMware 打開系統盤根路徑下的boot.ini檔案或通過
點選編輯打開boot.ini檔案,添加調試啟動項。
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="MicrosoftWindows XP Professional" /noexecute=optin /fastdetect /noguiboot
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP Debug" /noexecute=optin /fastdetect /debug /debugport=com1 /baudrate=115200
最後,編輯Vmware設定,添加一個序列槽裝置.
首先我們要添加一個序列槽裝置.打開你的虛拟機,選擇“編輯虛拟機設定”
然後"Add...(添加)"->"Serial Port(序列槽)"->"Output to namedpipe(輸出到命名管道)"一路Next
名稱就用預設的"\\.\pipe\com_1",這個其實對應于你的序列槽名稱com1,用别的名字當然也可以,不過windbg中要用對應的名字
第二行選擇"Thisend is the server"
第三行選擇"Theother end is an application"
2. windbg所在宿主系統設定
建立windbg快捷方式,參數中添加 -b -k com:pipe,port=\\.\pipe\com_1,resets=0,
系統符号路徑設定: srv*D:\symbols*http://msdl.microsoft.com/download/symbols;
3. Vista以上的版本系統設定:
1. VMware 配置
Vista以上的系統沒有了boot.ini, 用bcdedit.exe指令行來配置
首先, 拷貝目前的配置:
bcdedit /copy {current} /d "Vista Debug"
查詢到一個 GUID 值
其次, 啟動配置的調試功能:
bcdedit /debug {之前查詢到的GUID} ON
也可通過msconfig實作
再次, 修改調試的設定(可選)
bcdedit /dbgsettings SERIAL DEBUGPORT:1 BAUDRATE:115200
2. 宿主系統設定與Vista以下的版本系統設定相同。
4. 1394火線調試
具體方法如下:
WMware虛拟系統主機配置:
在boot.ini裡面加一行:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP 1394" /noexecute=optin /fastdetect /debug /debugport=1394 /channel=10
channel是10,然後禁用1394(2000必須禁用,xp以上不需要,系統會在進debug後自己禁用),重新開機,選這個選項進系統。
調試機配置:
安裝windbg(最好是用微軟的安裝包安裝,不是copy),然後把1394線拔了,然後windbg,按Ctrl+K,選擇1394,填入10(這裡的10是上面的channel),然後确定,這時候windbg會自動安裝一個虛拟的1394的驅動,然後會wait to connect,這時候插上線,就可以調試了。
以後可以在windbg的快捷方式裡面填上啟動選項 -k 1394:channel=10,symlink=instance
這樣可以快速啟動1394調試
二、被調試機:WIN7, 調試機:XP
主機端還是XP,目标機是WIN7筆記本,調試一個藍屏錯誤。
1>. 調試端,配置不變
2>. 被調試端,也就是WIN7平台的配置
使用bcdedit.exe指令行工具進行配置,該工具用于修改啟動配置資料庫。
比起以前的vista,win7的配置略微簡單,可通過msconfig實作,也可以通過指令行實作:
首先,以管理者身份運作cmd,然後輸入msconfig,彈出系統配置的視窗,選擇“引導”:可看到目前系統的引導項。
在cmd裡輸入bcdedit,會顯示目前系統的所有啟動項。
現在,我們拷貝一個目前的啟動項,然後修改屬性,進行1394調試:
指令:bcdedit /copy {current} /d "1394 debug"
注:此時如果已經打開msconfig,則關閉,再重新打開一次,否則看不到新拷貝的啟動項。
執行此指令以後,會在"引導"下面多出一個名為“1394 debug”的啟動項,選中“1394 debug",然後選擇“進階選項”,在“引導進階選項”視窗中設定 調試、調試端口(1394),通道(10,通道編号一定要與主機同步)。
其它的根據個人需求設定。
退出“進階選項”,還可以設定預設啟動項,逾時等選項。
注:也可以全部通過bcdedit指令來實作整個過程,在cmd裡輸入 bcdedit /?具體檢視幫助
3>. 通過1394線将target和host機器聯起來,在target(WIN7)機器上安裝出現藍屏問題的驅動程式,重新開機,選擇debug模式;同時在host主機端打開調試器等待連接配接。然後就是自動或者主動加載符号表,調試問題~~
5. 使用序列槽線雙機調試
環境:host (無序列槽thinkpad ) 、 target (有序列槽桌上型電腦)
額外: 購買一條USB轉序列槽線,并安裝驅動在thinkpad上。
第一步: ComPort-測試序列槽線 thinkpad使用端口顯示為COM4, 桌上型電腦顯示為COM1. 經測試
OK。
第二步: 設定target 的 boot.ini檔案為:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS = "Debug Serial" /noexecute=optin /fastdetect /debug /debugport=com1 /baudrate = 115200
第三步: 安裝windbug 在快捷方式 目标中:添加 -k com:port=COM4,baud=115200 -b
設定vista和win7進入Debug模式(也可以直接在msconfig的界面中設定):
1. bcdedit /copy {current} /d DebugEntry
這裡的debugentry 新的啟動項的描述。
2. bcdedit
會顯示 各項的詳細資訊,找到 decription 為 DebugEntry 的項,找到GUID,記下值
3. bcdedit /debug DebugEntry的GUID on
打開調試選項,紅色的為你可以改的内容
注意:
如果有其他的作業系統使用:bcdedit /displayorder {current} {GUID} 給啟動菜單排序
如果Debug模式不能調試使用:bcdedit /dbgsettings serial baudrate:115200 debugport:1 試試。
6. 調試過程中出現的問題及解決方案
1. win7 x64 系統 VMware 8.0 虛拟機連結是出現com1端口無法連結調試的問題。
解決方案:
Vmware設定,添加一個序列槽裝置com_2端口
windbg 快捷鍵設定 -b -k com:pipe,port=\\.\pipe\com_2,resets=0,
以XP中的問題舉例,看下面的虛拟機配置,如果這裡顯示串行端口,那麼boot.ini中需要設定/debugport=com1
但是有的時候下面圖中顯示為“串行端口 2”,那麼boot.ini中需要設定/debugport=com2,否則怎麼都連不上。
2.設定輸出列印消息
在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager目錄下建立一項Debug Print Filter
在Debug Print Filter之下建立類型為DWORD、名稱為DEFAULT、值為8的條目。名稱DEFAULT是大小寫相關的,如果建成Default好像會啟動不了。
重新開機OS
要進行這個設定的原因是,在vista和win7下面,KdPrint宏的意義被修改成了按照條件列印消息,即以下兩條程式語句是等效的
KdPrint ( Format, arguments )
KdPrintEx ( DPFLTR_DEFAULT_ID, DPFLTR_INFO_LEVEL, Format, arguments )
3. symbols path設定
cache*E:\symbols;SRV*http://msdl.microsoft.com/download/symbols;
E:\filter\filespy\filter\objchk_wnet_x86\i386
4.source path 設定
E:\filter\sfilter;E:\filter\filespy\filter;
7. 快速下載下傳符号檔案離線包
您可以使用 SymChk.exe 實用程式驗證符号并以友善、非入侵性的方式生成本地符号高速緩存。SymChk.exe 實用程式随 Debugging Tools for Windows 軟體包提供。SymChk.exe 是一種指令行工具。您可能需要将 Debugging Tools for Windows 軟體包的檔案夾添加到系統上的 PATH 環境變量,以便從任意指令提示符下通路該工具。
要使用 SymChk.exe 實用程式下載下傳 Windows\System32 檔案夾中所有元件的符号檔案,請使用以下指令行指令:
symchk /r c:\windows\system32 /s SRV*c:\symbols\*http://msdl.microsoft.com/download/symbols
在此示例中:
“/r c:\windows\system32”查找 System32 檔案夾和所有子檔案夾中的所有符号檔案。
“/s SRV*c:*http://msdl.microsoft.com/download/symbols”指定用于符号解析的符号路徑。在此例中,“c:\symbols”是将在其中從符号伺服器複制符号的本地檔案夾。
要擷取 SymChk.exe 指令行選項的更多資訊,請在指令提示符下鍵入 symchk /?。其他選項包括指定正在運作的可執行檔案的名稱或程序 ID (PID) 的功能。