zoukankan      html  css  js  c++  java
  • 【旧文章搬运】Windbg+Vmware驱动调试入门(二)---Vmware及GuestOS的设置

    原文发表于百度空间,2009-01-08
    ==========================================================================

    这一篇是主要是关于Vmware部分的设置,其实参考JIURL那篇很经典的《借助VMware实现单机使用WinDbg》就可以了.不过那篇文章里面有个小错误(不知道是原作者不小心,还是别人转载的时候错了),后面的波特率应为115200而非11520
    我就再来写一下吧,内容基本雷同,稍微精简一些

    Vmware的相关设置

    1.编辑Vmware设置,添加一个串口设备.
    首先我们要添加一个串口设备.打开你的虚拟机,选择“编辑虚拟机设置”

    然后"Add...(添加)"->"Serial Port(串口)"->"Output to named pipe(输出到命名管道)"一路Next
    名称就用默认的"",这个其实对应于你的串口名称com1,用别的名字当然也可以,不过后面要对应
    第二行选择"This end is the server"
    第三行选择"The other end is an application"
    同时把下面的"Connect at power on(打开电源时连接)"
    请见下图:


    好了,这回串口设备有了.下面进行相关设置


    2.设置串口波特率
    启动虚拟机中的OS,进入系统,打开设备管理器选项,这时就看到刚才添加的串口com1了
    双击com1设备进入属性设置,在"端口设置"选项卡中选择"每秒位数"也就是波特率为115200
    (据说Windbg可以自动适应波特率,没尝试过,因此还是设置一下吧)


    3.修改boot.ini(如果是Vista以上就不是修改boot.ini了,需要别的修改方式,请看第5点)
    这一步准确讲是添加DEBUG启动模式,对于Win2003及以前的系统,可以通过修改boot.ini来实现
    对于Vista,Server2008,Win7等就得用bcdedit来编辑启动设置了
    有需要的可以搜索"Windbg内核调试之一 Vista Boot Config设置"来查找那篇文章
    我的GuestOS是WinXP Sp2,所以采用boot.ini的方法
    打开C盘,把隐藏文件显示出来,去掉boot.ini的只读属性,双击打开来
    通常你只会看到一个启动选项,我们复制一个,在后面加上 /debug /debugport=com1 /baudrate=115200 
    注意修改时间timeout,不要为0或太短,否则你连选择的机会都没有~~
    贴个图,不会就照图中来,红线框住的部分是新加的
    如果你不愿新增加,直接编辑原来那个也可以,不过还是推荐新加一个好~


    然后你可以往虚拟机中放一些测试驱动常用的工具,比如DebugView,InstDrv等等
    这时关于虚拟机部分就设置完成了,可以把当前状态保存一个快照,以后如果哪个驱动把系统搞崩溃再也起不来了,恢复一下就OK了

    4.建立双机调试快捷方式
    在桌面建立一个Windbg的快捷方式命名为“双机调试”,然后编辑其属性,把“目标”后面加上
    -k com:port=\.pipecom_1,baud=115200,pipe 
    比如我的电脑上,完整的应该是这个样子:
    "C:Program FilesDebugging Tools for Windows (x86)windbg.exe" -k com:port=\.pipecom_1,baud=115200,pipe


    好了,一切设置就绪,来体验一下~~
    重新启动虚拟机中的系统,在启动菜单时选择有“启用调试程序”的那一项,回车确认


    然后把虚拟机最小化,回到桌面双击刚才建好的“双机调试”快捷方式,如果没有什么意外的话,稍等一下就会看到:
    Connected to Windows XP 2600 x86 compatible target,ptr64 FALSE
    Kernel Debugger connection established.
    这就表示已经连接成功了,接下来会显示一下符号路径,内核基址等信息。
    此时按下Ctrl+Break,就会中断下来,命令输入窗口变为可用状态,可以输入各种命令了~~
    如果需要进入系统之后才加载驱动的话,可以等系统启动完毕后再中断,输入断点命令.这取决于你驱动的加载时机

    5.Vista以上系统的设置方式

    Vista以上系统的启动项管理不再使用boot.ini,而是使用BCD数据库,它的操作方式可以使用系统自带的bcdedit命令。

    打开一个管理员权限的cmd窗口,依次执行以下命令:

    bcdedit /copy {current} /d Win7Debug 

    该命令复制当前启动项并命令为Win7Debug,复制成功后,会提示新启动项的GUID

    bcdedit /debug {29999672-9a09-11e7-bb18-b881985ed70f} on

    该命令中的第2个参数就是新启动项的GUID,该命令将开启新启动项的调试功能

    bcdedit /dbgsettings

    该命令显示当前的调试设置,如果发现调试功能工作不正常,可以使用以下命令恢复到默认:

    bcdedit /dbgsettings serial baudrate:115200 debugport:1


    这一节到这儿,下一节Windbg的基本使用,马上就来...

  • 相关阅读:
    java 编程基础 Class对象 反射:代理模式和静态代理
    sql优化(排序)
    Mysql备份恢复
    Mysql5.7.33安装
    Networker oracle备份恢复
    Centos7 安装11.2.0.4
    spring security 自定义多种方式登录授权
    CentOS 7 安装Nginx 并配置自动启动
    Nginx 配置模板
    Alibaba cloud 版本说明
  • 原文地址:https://www.cnblogs.com/achillis/p/10181112.html
Copyright © 2011-2022 走看看