天天看点

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

继续阅读