VMware实现单机使用WinDbg进行调试的方法

原创 2007年10月15日 21:10:00

VMware实现单机使用WinDbg进行调试的方法

转载请保留本人网址:http://blog.csdn.net/sunboyhch
具体步骤如下:
1 设置 VMware 的虚拟com
1.1 运行 VMware ,点击 "Edit virtual machine settings"


1.2 点击 "Add..." 来运行 VMware 的 Hardware Wizard

 

1.3 选择 "Serial Port",点 "下一步"


1.4 选择 "Output to named pipe",点 "下一步"


1.5 第一框里保持默认的 "\\.\pipe\com_1"

 

第二框里选"This end is the server."
第三框里选"The other end is an application."
选中 "Connect at power on"
1.6 选中 "Yield CPU on poll",然后点完成。


1.7 这样就完成了虚拟com的设置。 重新启动一下。


2 设置 VMware 虚拟出来的 guest os

2.1 设置boot.ini

在c:\下,可以找到boot.ini,可以用记事本打开它。我们需要在 guest os 的启动项上加些参数,才能够使用WinDbg调试它。我们可以在现有的行后面直接加参数,不过强烈推荐复制一个新行,在新行的后面加参数。这样在调试启动有问题的时候,我们可以方便的换回原来的启动方式。下面就是我改好的boot.ini。
其中 "multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
是原来的行。
"multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /debug /debugport=com1 /baudrate=115200 "

是我新加的将来用于 WinDbg 调试的行。

------------------------------------------------------------------------------------------

[boot loader]

timeout=10

default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

[operating systems]

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP debug" /noexecute=optin /fastdetect /debug /debugport=com1 /baudrate=115200

-------------------------------------------------------------------------------------------

这里还要注意的是

1   timeout不要为0,否则直接启动默认的项。新行后面加上了参数 /debug /debugport=com1 /baudrate=115200 ,可以看到 debugport=com1 ,baudrate=115200 。 

2  在win7中要把 debugport=com_1 


2.2 设置com1端口的速度
在 guest os 的设备管理器中把com1端口的速度也就是"每秒位数"项,设为和上面一样的115200。

3 设置 WinDbg

我们需要告诉WinDbg通过pipe进行连接和连接的速度。可以在命令提示符(cmd.exe)下加参数
-k com:port=\\.\pipe\com_1,baud=11520,pipe 运行WinDbg(VMware Support 中没有提到 baud=11520 这个参数,其实这是个比较重要的参数)。 更方便的方法是在桌面建立一个WinDbg的快捷方式,在该快捷方式的属性,"目标"框中,加上参数 -k com:port=\\.\pipe\com_1,baud=11520,pipe 。这样运行这个快捷方式启动的WinDbg就完成了设置。参数的具体作用,可以参考 WinDbg 的帮助文件。

也可以为 “....Debug.exe”  -b -k com:port=\\.\pipe\com_1,baud=115200,pipe

 


4 推荐的操作顺序

4.1 首先运行 VMware ,启动 Guest OS ,到系统启动选择,选择 " Microsoft Windows XP debug " 项,先不要按回车。

4.2 通过刚才设置好的快捷方式运行WinDbg。

4.3 在 Guest OS 中选择 " Microsoft Windows XP debug " 项,按回车。

4.4 稍等片刻,就连接上了。如果很长时间没有连接上的话,可以按 WinDbg 菜单中的 "Debug"->"Kernel Connection"->"Resynchronize"。

4.5 最后按 WinDbg 菜单中的 "Debug"->"Break" ,你就可以向 WinDbg 下命令了。


其他

5.0此外,您也可以在命令提示符下使用 .sympath 命令来设置符号路径。您可以将 symsrv 语法和其他符号路径组合在一起。例如,使用以下语法来指定两个或更多个符号路       径:f:\BusObjSymbols;SRV*f:\localsymbols*http://msdl.microsoft.com/download/symbols

    该语法用分号来分隔符号路径。
5.1 VMware Support 中还提到了可以通过修改虚拟机的配置文件来改变虚拟串口的速度,有兴趣的话可以参考 VMware Support 中的方法。
5.2 WinDbg 的菜单项 "View"->"Show Version" 可以看到一些相关信息。


WinDBG   http://www.microsoft.com/whdc/devtools/debugging/installx86.Mspx

dbgView  http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx

WDK下载 (两个都可以)(6001.18002)

http://www.microsoft.com/downloads/en/confirmation.aspx?familyId=2105564e-1a9a-4bf4-8d74-ec5b52da3d00&displayLang=en

http://www.microsoft.com/downloads/details.aspx?FamilyID=2105564e-1a9a-4bf4-8d74-ec5b52da3d00&displaylang=en

转载请保留本人网址:http://blog.csdn.net/sunboyhch

 
 
 

win10中“windbg+vmware+win7双机调试”设置

本文主要介绍在win10下如何设置windbg+vmware,以进行双机调试。本文主要参考:李Sir的博客,并浏览了大量网文,以及windbg自带的help文档和MSDN,除了综合各家的经验外,也分享...
  • Sagittarius_Warrior
  • Sagittarius_Warrior
  • 2016年05月03日 16:27
  • 5542

VMware+Windbg+Win7 内核驱动调试 ----(环境搭建)

本文主要记录个人安装VMware+Windbg+Win7内核驱动调试的笔记。 一、安装环境 主机:      Win7 sp1 x64 虚拟机: VMware 8  虚拟机OS...
  • qq1841370452
  • qq1841370452
  • 2016年09月08日 00:34
  • 1409

Windbg 调试驱动 实战

驱动
  • u013205877
  • u013205877
  • 2016年10月29日 16:00
  • 1058

Windows下利用WinDBG、OllyDBG进行源码级调试

一般应用程序编译后会创建exe/dll/sys(可执行文件)、pdb(程序数据库)、map(编译信息)等文件,而源码调试需要可执行文件、程序数据库文件、还有源代码文件。(由于符号信息已经写入到程序数据...
  • lixiangminghate
  • lixiangminghate
  • 2017年01月19日 23:26
  • 1416

win10中 “windbg+vmware+win10双机调试” 设置

本文主要介绍在win10下如何设置windbg+vmware,以进行双机调试。本文主要参考:李Sir的博客(http://www.cnblogs.com/lzjsky/archive/2010/12/...
  • qq_21000273
  • qq_21000273
  • 2016年07月25日 21:33
  • 3455

第三十二篇:Windbg中USB2.0调试环境的搭建

2011年的时候,为了开发USB Mass storage -- UASP (USB attached SCSI Protocol)的设备驱动程序,从米国买了两个USB2.0的调试小设备(如下图,每个...
  • u013140088
  • u013140088
  • 2014年12月24日 10:50
  • 1896

用windbg双机调试(本机和VM虚拟机)驱动程序

本文为在学习过程中的笔记,写的不好请见谅.在调试内核驱动程序时,驱动程序被操作系统加载.而操作系统无法自己调试自己.所以要用一台计算机调试另一台计算机的操作系统,进而调试内核驱动.使用windbg对虚...
  • RedLobster
  • RedLobster
  • 2016年02月24日 16:30
  • 634

Windbg内核调试下调试应用层

用户态上下文有额外典型的两种,Session会话上下文和Process进程上下文,由于用户态进程访问的都是虚拟内存,要想调试用户态代码,就必须切换到相应的会话上下文和进程上下文,进行相关的设置。要注意...
  • justin_bkdrong
  • justin_bkdrong
  • 2013年12月30日 15:32
  • 1169

WinDbg调试 崩溃程序

目的:学习和记录WinDbg的一些使用。 声明:文章里面的很多东西都是取自网络上面,有出去的我会尽量注明出处。对于那些找不到地址的如果作者需要我可以后面添加。   1.安装和下载       ...
  • nanjun520
  • nanjun520
  • 2016年09月20日 17:57
  • 1765

windbg调试服务程序

相比通过输出日志来跟踪程序运行状态,我更倾向使用调试器。虽然我早知调试服务很麻烦,总不会比调试驱动还麻烦吧?基于这个想法,我尝试了在win7上使用windbg调试服务并记录于此。     window...
  • lixiangminghate
  • lixiangminghate
  • 2016年12月28日 15:57
  • 1377
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VMware实现单机使用WinDbg进行调试的方法
举报原因:
原因补充:

(最多只允许输入30个字)