VirtualBox+Windbg 进行双机调试

1.安装Virtual Box虚拟机
官方网址:https://www.virtualbox.org/
在左边找到Downloads标签, 选择合适自己平台的安装包就行了(可比VMWare小多了).
这软件自带中文语言包, 且说是开源+免费软件, 所以不要到其它地方去找什么破解, 绿色之类, 搞得不好反倒弄一身的XX.

2.安装虚拟机操作系统
对于VBox安装虚拟机操作系统, 百度一下, 太多了...百度吧.

3.对虚拟机中的操作系统进行额外的设置
常规的设置,比如内存大小, 显存大小等, 请酌情分配就行.
3.1 对串口的支持设置(需要在关机的条件下设置)
02094912-61b101ea18db4ce28e44f35fd8016ca1
注意管道的命名规则, 否则会创建失败.
02094912-61b101ea18db4ce28e44f35fd8016ca1

3.2 在虚拟机和实机之间共享文件
第一种办法(目录共享):
02095104-f796597fedbc482296e86fc555da8b15
02095213-ff83bbb66d5842da84dab40147ef475a
02095224-accdb4479c6f44788392fb3425136da0
02095234-03f4f1fb81dd4d6688d9d90369d12c7f

第二种办法(简单方便, 但貌似会使电脑出现拖放问题):
02095642-42d9f6544fe8453189808b21f7cd0cd6

3.3 修改操作系统配置文件以启动调试模式
在虚拟机中, 找到 C:\Windows\boot.ini(隐藏,只读),在最后加上一行:

/debugport=com1就是上面创建的管道的命名后面的部分:\.\pipe\com1,/baudrate=115200表示设置波特率(这个可以大点,速度快些,但不能随便乱设置)
/debug 表示启用调试
修改后大概是这样的:

重启虚拟机,  选择第2项启动菜单进入调试模式:
02100820-eb6753cc22db46ec983c4abe061b619f

4. 配置Windbg进行调试
4.1 下载符号文件(如果没有)
1) 到http://msdn.microsoft.com搜索下载
2)到http://msdn.microsoft.com/en-us/windows/hardware/gg463028.aspx
当然,也可以直接设置在Windebug 的Symbol 选项中“SRV*C:\WINDOWS\SYMBOLS.NET*http://msdl.microsoft.com/download/symbols;” 后面的其他PDB 文件的路径,用“;”隔开。
4.2 新建一批处理脚本文件(双机调试.bat)
内容如下:

附图:
02102059-294abad0d91f4c4f946a83b58b16f115

保存后, 直接双击打开该bat脚本文件即可打开WinDbg并调试虚拟机(先要打开虚拟机并进入调试模式)
02102934-fe886251c1854378ab5cc7c180af86c9

一开始虚拟机可能处理未响应状态(被调试), 按照上面的说明, 在下面的命令行中执行命令g即可继续.
之后通过共享文件的方式, 加载相应的驱动/程序, 通过手动下断点的方式进入调试:
在驱动中手动加入断点:
#if DBG
__asm int 3
#endif

即可使虚拟机挂起到调试状态了.

参考链接 http://www.cnblogs.com/nbsofer/archive/2013/01/02/2841513.html

Windbg 在Windows 7 平台上通过 1394 远程调试 Windows XP

什么是1394?

1394是提供给高速外设的串行总线介面标准,此介面标准由IEEE所开发,设计传输速率为100、200、400、800Mb/秒。1394是为精简整体设备的连接而设计,它去除了一些不必要的输入/输出连接,且使主板看起来更干净整齐,而且能降低系统的成本。现在,人们习惯称1394接口为“火线”。

使用1394最明显的好处就是它的传输速率要远超过串口。

准备

首先要确保调试机器和被调试机器都拥有1394接口,现在大多数机器都没有带1394口,由于我用的是DELL E5400,机器本身自带1394口,刚好用来做Host Debug,而且移动起来比较方便。如果目标机上不具备1394口,也有办法。那就是到电脑城买一块1394的PCI转接卡,便宜的卡几十块钱就能买到。另外还需要一根1394传输线,有4 ping和6 ping两种接口,无论哪种接口都可以,只要确保两端能够正常连接,我用的是4p to 4p。

配置

由于操作系统和Windbg本身版本的不断更新,各平台的配置稍微有一些变化,一定要注意。

为了避免大家少走一些弯路,下面列出了我成功配置的步骤。

1. 在Target上修改boot.ini,添加

然后重启(注意,channel 的号码不宜太高,我刚刚设置成 88 则是不能调试的,设置成10 ,就可以正常识别)。

2. 在Target上打开设备管理器,禁用1394总线控制器。(在XP SP2和Server 2003以及后续版本不需要此步骤,debug会自动禁用1394总线控制器)。

3. 在Host上安装Windbg,运行kernel debug->1394 debug,第一次运行的时候会提示安装失败,这时候windbg会自动安装1394虚拟驱动,安装完成之后会在设备管理器的Adapter项添加一个1394 debug的虚拟设备。如下图所示

屏幕截图

 

注意,Windbg在我的机器上面是不能成功安装驱动的,此时观察设备管理器,会发现一个未识别的设备,查看详情,发现里面包含1394 字样,应该就是这个驱动,可能是由于Windbg里面的自带的驱动版本太低,导致安装失败,这时候,只需要联网并且让他去Windows Update 上面去更新就可以了。

4. 重新启动Windbg,在kernel deubg->1394 debug项填入和Target相同的channel号,确定。

5. 重启Target机器,在启动界面选择Debug进入操作系统。

如果在Host Windbg界面上有显示大量的信息就说明连接成功了