WinDebug+虚拟机---调试驱动的配置

关键字:WinDebug+虚拟机---调试驱动的配置


现在一直在做有关Windows驱动开发的工作,驱动开发非常重要的一环是驱动的调试。对于Windebug结合虚拟机的双机驱动调试,其配置还是小有点麻烦的。虽然原先自己配置的时候,都成功了,而且也进行了很多的开发和调试。但某一天再来设置这些东西的时候,却发现出了问题,甚至去网上找的一些资料也没有用。现在把自己调试驱动时的切身体会写下来,一方面自己以后也可以看看,也给广大初入门的朋友做以参考。


一、调试环境的安装

(1)安装虚拟机(VM)及Windows XP系统

(2)安装WinDebug

二、配置调试环境

(1)在WinDebug的快捷方式上添加: -k com:port=\\.\pipe\com_1,baud=115200,pipe。

例如我的主 机上 Windebug快捷方式设置以后如下: "C:\Program Files\Debugging Tools

for Windows (x86)\windbg.exe" -k com:port=\\.\pipe\com_1,baud=115200,pipe

(2)在虚拟机中,添加一个串行端口

点击 "Edit virtual machine settings",添加一个Serial Port,选择"Output to named pipe",然后下一步

第一框里保持默认的 ""
第二框里选"This end is the server."
第三框里选"The other end is an application."
选中 "Connect at power on"
然后点击 "Finish然后在新窗口中选中 "Yield CPU on poll"。保存退出。

(3)启动虚拟机的系统,在其C盘根目录下的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="Microsoft Windows XP

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

Debug" /fastdetect /debug /debugport=com1 /baudrate=115200

这里一定要注意,不要将系统启动项弄错了。[operating systems]下的第一行为原来的系统启动

下;而2-3行为我们新添加的调试启动项,这在虚拟机系统重新启动后,就可以看到系统新加了一

个启动项。

(4)配置Windebug

然后打开windebug等待连接。进入调试模式,我们可以看到windebug已经与系统连接完毕。

配置windebug,主要是符号文件一类,通用的方法如下:

WinDbg->菜单->File->Symbol File Path->,输入如下:

“C:\MyCodesSymbols; SRV*C:\MyLocalSymbols*http://msdl.microsoft.com/download/symbols"

(按照这样设置,WinDbg将先从本地文件夹C:\MyCodesSymbols中查找Symbol,如果找不到,则

自动从MS的Symbol Server上下载Symbols);这里MyCodeSymbols是存放我们编译的驱动程序有

光的符号文件,通常我们把驱动工程编译完成后(用check版本,否则不能调试的)的如下文件:

H:\MyDriver\objchk_wxp_x86\i386放入该文件夹下;另外也可以不要C:\MyCodesSymbols文

件,直接在WinDbg->菜单->File->Symbol File Path->中输入H:\MyDriver\objchk_wxp_x86\i386即

可,然后选择reload即可。后面就可以进行调试了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WinDBG 是个非常强大的调试器,它设计了极其丰富的功能来支持各种调试任务,包括用户 态调试、 内核态调试调试转储文件、 远程调试等等。 WinDBG 具有非常大的灵活性和可扩展性, 用来满足各种各样的调试需求,比如用户可以自由定义调试事件的处理方式,编写调试扩展模块 来定制和补充 WinDBG 的调试功能。 尽管 WinDBG 是个典型的窗口程序, 但是它的大多数调试功能还是以手工输入命令的方式来 工作的。目前版本的 WinDBG 共提供了 20 多条标准命令, 140 多条元命令( Meta-commands), 和难以计数的大量扩展命令。学习和灵活使用这些命令是学习 WinDBG 的关键,也是难点。 上一章我们从设计的角度分析了 WinDBG ,本章将从使用(用户)的角度介绍 WinDBG 。我 们先介绍工作空间的概念和用法(第 1 节),然后介绍命令的分类和不同种类的命令提示符(第 2 节)。 第 3 节介绍不同的调试模式, 也就是如何与不同特征的调试目标建立调试会话。 第 4 节介绍 上下文的概念和在调试时应该如何切换和控制上下文。第 5 节介绍调试事件和如何定制调试事件 的处理方式。 从第 6 节到第 9 节我们将分别介绍如何在 WinDBG 中完成典型的调试操作, 比如控 制调试目标(第 6 节)、设置断点(第 7 节)、观察栈(第 8 节)以及如何观察和修改数据(第 9 节)。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值