天天看點

Windbg+VMware雙機調試/1394/序列槽/常見問題處理+下載下傳符号檔案離線包1. 調試工具VisualDDK:2. Vista以下的版本系統設定:3. Vista以上的版本系統設定:4. 1394火線調試5. 使用序列槽線雙機調試6. 調試過程中出現的問題及解決方案7. 快速下載下傳符号檔案離線包

目錄

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檔案或通過

Windbg+VMware雙機調試/1394/序列槽/常見問題處理+下載下傳符号檔案離線包1. 調試工具VisualDDK:2. Vista以下的版本系統設定:3. Vista以上的版本系統設定:4. 1394火線調試5. 使用序列槽線雙機調試6. 調試過程中出現的問題及解決方案7. 快速下載下傳符号檔案離線包

點選編輯打開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設定,添加一個序列槽裝置.

首先我們要添加一個序列槽裝置.打開你的虛拟機,選擇“編輯虛拟機設定”

Windbg+VMware雙機調試/1394/序列槽/常見問題處理+下載下傳符号檔案離線包1. 調試工具VisualDDK:2. Vista以下的版本系統設定:3. Vista以上的版本系統設定:4. 1394火線調試5. 使用序列槽線雙機調試6. 調試過程中出現的問題及解決方案7. 快速下載下傳符号檔案離線包

然後"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,否則怎麼都連不上。

Windbg+VMware雙機調試/1394/序列槽/常見問題處理+下載下傳符号檔案離線包1. 調試工具VisualDDK:2. Vista以下的版本系統設定:3. Vista以上的版本系統設定:4. 1394火線調試5. 使用序列槽線雙機調試6. 調試過程中出現的問題及解決方案7. 快速下載下傳符号檔案離線包

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) 的功能。

繼續閱讀