菜鸟WDF驱动开发系列(1):VM+Windbg调试平台的搭建
来源:互联网 发布:深圳关键词排名软件 编辑:程序博客网 时间:2024/04/27 21:14
讲驱动开发的书市面上并不多的,我手上有四本:Ronald D.Reeves的《Window7设备驱动程序开发》中文版,武安河老师的《Windows 设备驱动程序WDF开发》,经典的《Windows驱动开发技术详解》,还有驱网著名的《竹林蹊径》,当然,我一本也没看懂,因为此文是综合借鉴大家之言,当然不能掩盖别人的功劳,为此略表结以上作者的崇拜之情。
言归正传吧。
(1)设置VM与WinDBG通讯用的虚拟串口
虚拟机的使用是驱动开发必须的,理由我就不多说了。网上有很多这样的文章,其实都挺实用的,唯一的缺点是,没有深入到断点调试的那一步,而且有些地方不尽详细,那我不妨多作点无用功,将自己搭建的调试环境一步步展现给大家吧。
我的VM是8.0版本的,目标机装的xp(因为我的测试源码是基于xp的),win7下面的配置我暂时不说,网上攻略颇多,或以后我自己开始配置Win7时我补回去吧。
怎么在VM装XP我就不废话了。装好系统后,先别急着开启,打开目标系统的Virtual Machine Setting选项,在Hardware中添加新硬件:1)选择Serial Port;2)serial Port Type选择“Output to named pipe”;3)Specify Socket的选项如图1吧;4)最终的配置结果如图2所示。然后启动VM的目标系统吧。
(2)设置目标机系统的启动项
进入WinXP的虚拟机操作系统,打开系统盘(C:\),将文件夹查看选项全开了,那在C盘根目录下有一个叫boot.ini的启动项文件,先去掉只读属性,以文本文件的方式打开,拷贝原来的启动项,作如下修改:
Multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /debug /debug /debugport=com2 /baudrate=115200
然后重新启动,则虚拟机设置完成。在此处需要注意的是,在第一步如果你添加的是Serial Port 1,则在boot.ini中修改/debugport=com1,似乎这是因为目标系统本身就带有一串口,所以新增一个用于命名管道的Serial Port时,系统内部增加的是COM2。还有就是将boot.ini的timeout值弄得大一点,方便选调试模式,以后VM启动时就会出现调试的启动项,如下图3所示:
(3)配置WinDBG的快捷方式
如果你装了WDK的话,你可以在如下路径找到WinDBG的执行文件:D:\WinDDK\7600.16385.1\Debuggers,当然,你也可以在开始菜单中找出WinDBG的启动方式(似乎有x86\x64之分,对应本机系统,但没什么区别),我选择的是开始菜单中的WinDBG。然后添加桌面快捷方式,修改快捷方式的属性—快捷方式,在“目标”中添加如下文字,注意pipe的名称与VM的串口设置一致:
-b -k com:pipe,port=\\.\pipe\com_xp,baud=115200,resets=0
至此,完成全部的调试环境配置,接下来就可以调试第一个驱动程序了,其实Win7下面的环境配置会比XP下面要烦挺多的,但一般照网上说的去做也没什么太大的问题。值得一提的是,可以用VirtualDDK的配置调试环境,那相当方便,由于我连接成功一次后就莫名其妙地不行,我就放弃了用它,若以后我找出什么连接不了的原因后再作补充吧。
本文出自 “几缕萧雨锁清秋” 博客,请务必保留此出处http://joeyliu.blog.51cto.com/3647812/937476
- 菜鸟WDF驱动开发系列(1):VM+Windbg调试平台的搭建
- 菜鸟WDF驱动开发系列
- 菜鸟WDF驱动开发系列(2):调试第一个KMDF驱动程序
- 菜鸟WDF驱动开发系列(3):安装与调试第一个UMDF驱动程序
- 菜鸟WDF驱动开发系列(4):VS2012驱动开发初体验
- VS 2015 vs2013 WDK10 SDK10驱动开发 + Windbg + VM双机调试(内核驱动环境搭建图文教程)
- windbg+vm 调试环境的搭建
- WDF驱动开发(1)- 一个简单的WDF驱动(non-pnp)
- 驱动开发:WMWare+Windbg调试环境搭建
- Windows驱动wdf驱动开发系列(一)
- Windows驱动wdf驱动开发系列(二)
- 基于WDF的PCI/PCIe接口卡Windows驱动程序(1)-WDF概述及开发环境搭建
- VS 2013驱动开发 + Windbg + VM双机调试(亲测+详解)
- VS 2013驱动开发 + Windbg + VM双机调试(亲测+详解)
- WDF驱动的编译、调试、安装
- 基于WDF的PCIe驱动开发
- WDF开发USB设备驱动教程(1)
- VirtualKD+IDA+VM+Windbg调试无PDB内核驱动
- angular transfer msg from one controller to the other controller by $scope.$on()
- ArithUtil
- PB得到本机的名称和IP地址MAC地址
- POJ 1789
- 慢慢聊异步IO之Linux Epoll
- 菜鸟WDF驱动开发系列(1):VM+Windbg调试平台的搭建
- Spark and Tez Highlight MapReduce Problems
- Unity3D教程宝典之 FX Maker
- 【OpenCV文档】用于角点检测的Fast算法
- 裸设备、字符设备、块设备不全面比较
- Verilog下的图像处理--第二话--downsample
- 【计算机网络常见面试题】计算机网络体系结构
- 21点扑克游戏
- android SharedPreferences 的使用