峥嵘岁月

joshua_yu的网络空间

用户操作
[即时聊天] [发私信] [加为好友]
joshuaID:joshua_yu
106924次访问,排名851好友6人,关注者16
人生总有些阶段,新的起点,新的心情,没有好也没有坏,生活总是辩证而真实地存在,感谢所有人!
joshua_yu的文章
原创 44 篇
翻译 2 篇
转载 42 篇
评论 32 篇
joshua的公告
联系方式: QQ:404271575 MSN:joshua_yu@263.net
最近评论
TE:安高科技:http://www.amgotech.com
bluehouse1985:Linux 环境下的多核调试
— Intel + Totalview 强强联合!
目前,在软件开发行业,各种性能优异的调试工具层出不穷。但是,它们中的绝大部分都只支持windows环境。即使能支持linux平台,操作起来也很不方便。因此,对于长期在linux上编写程序的开发人员来说,如何调试就成了一个令人头痛的问题!Intel软件 和 Total……
sap99:www.sap99.com/,SAP99资料多多

SAP免费资料下载
http://www.sap99.com

有很多的学习资料,推荐一下,
wBlf_www:请问我在过滤函数中截获所有收发数据包,会否有漏包的现象,我发现通过web发邮件,截获的数据不能恢复出邮件发出的状态(邮件包括内容和多个附件)。
wBlf_www:请问我在过滤函数中截获所有收发数据包,会否有漏包的现象,我发现通过web发邮件,截获的数据不能恢复出邮件发出的状态(邮件包括内容和多个附件)。
文章分类
收藏
    相册
    08年第一期儿子照片
    过年
    交大新面貌
    我的可爱儿子
    周末烧烤之众生相
    关注的Blog
    EVA的回收站
    joyfire的space
    Kendiv的专栏
    PJF的Blog
    WebCrazy的Blog
    孟言的blog
    野路子(http://wulujia.com)
    铁卷大成天下
    网络收藏夹
    China CISSP论坛(文档保护)
    China Uniix
    developerWorks Linux 专栏
    docshow
    linux伊甸园
    OSR在线论坛
    PKI论坛
    reactos
    rootkit论坛
    Sysinternals论坛
    中国Linux公社
    中国Linux论坛
    协议分析网论坛
    安全焦点
    看雪技术学院论坛
    驱动开发网
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    转载 借助VMware实现单机使用WinDbg收藏

    新一篇: 有关文档保护似是而非的观点及我的看法 | 旧一篇: 透明加密技术浅析

    借助VMware实现单机使用WinDbg
     
    作者: JIURL
     
                    主页: http://jiurl.yeah.net/
     
        日期: 2003-10-3
     


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

        调试器中,SoftICE可以说是鼎鼎大名。而 Microsoft 的调试器 WinDbg 则有很多 SoftICE 不具备的非常有用的功能。对于从事 Windows 系统研究和驱动开发的人来说,WinDbg 实在是件上好的兵器,值得推荐。不过要想使用它并不是件容易的事,它需要有两台计算机,一台调试,一台被调试。这个条件对于大多数人来说是非常苛刻的。

        今天我们介绍借助VMware实现单机使用WinDbg进行调试的方法。

        VMware Support 中说,自 4.0.18.0 版本之后的 WinDbg 都支持了通过 pipe 来进行调试,不过微软对此并没有任何说明。所以,在VMware中虚拟被调试的系统,然后通过VMware虚拟一个com端口。使用这个虚拟的端口,就可以用 WinDbg 进行调试了。

    具体步骤如下:

    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"
    然后点击 "Advanced>>"
     
     

    1.6 选中 "Yield CPU on poll"(VMware Support 中提到了这一点),然后点完成。
     
     

    1.7 这样就完成了虚拟com的设置。
     
     

    1.8 重新启动一下。

    2 设置 VMware 虚拟出来的 guest os

    现在 power on 虚拟出来的 guest os

    2.1 设置boot.ini

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

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

    [boot loader]
    timeout=10
    default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
    [operating systems]
    multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Professional" /fastdetect
    multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Professional - debug" /fastdetect /debug /debugport=com1 /baudrate=115200

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

    这里还要注意的是,timeout不要为0,否则直接启动默认的项。新行后面加上了参数 /debug /debugport=com1 /baudrate=115200 ,可以看到 debugport=com1 ,baudrate=115200 。参数的具体作用,可以参考 WinDbg 的帮助文件。
     
     

    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 的帮助文件。
     
     

    4 推荐的操作顺序

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


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

    4.3 在 Guest OS 中选择 "Microsoft Windows 2000 Professional - debug" 项,按回车。
     
    4.4 稍等片刻,就连接上了。如果很长时间没有连接上的话,可以按 WinDbg 菜单中的 "Debug"->"Kernel Connection"->"Resynchronize"。
     
     

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

    ? 其他
    ?.1 VMware Support 中还提到了可以通过修改虚拟机的配置文件来改变虚拟串口的速度,有兴趣的话可以参考 VMware Support 中的方法。
    ?.2 WinDbg 的菜单项 "View"->"Show Version" 可以看到一些相关信息。

    参考
    Driver Debugging with WinDbg and VMWare http://silverstr.ufies.org/lotr0/windbg-vmware.html
    VMware Support 相关部分 http://www.vmware.com/support/ws3/doc/ws32_devices3.html

      

    发表于 @ 2008年04月22日 12:48:00|评论(loading...)|编辑|收藏

    新一篇: 有关文档保护似是而非的观点及我的看法 | 旧一篇: 透明加密技术浅析

    评论:没有评论。

    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © joshua