Win7+vmware+xpsp3+vs2010驱动开发环境搭建及调试方法
Win7+vmware+xpsp3+vs2010驱动开发环境搭建及调试方法
本文,系09年笔记记录整理,当时只有大概的步骤,最近又搭建环境,顺道比较详细的整理一下,以供自己备查。较之前的笔记,只是DDK和VMWARE的版本增高了,基本步骤还是大差不差。
注意:
如果是初次搭建环境,请大概浏览完全篇后,再参照本文搭建环境。
一、工具描述
主机:Win7 (原来是:XP sp3)
虚拟机:vmware9.0 +XP sp3
WinDBG :DDK安装完成后即有
DDK:6.1.6001.18002.081017-1400_wdksp-WDK18002SP_EN_DVD.iso
注:
主机:hostOS
虚拟机:guestOS
代码来自于网络,详细如下:
#include <ntddk.h>
// 提?供?一?个?Unload函ˉ数簓只?是?为a了?能ü够?支§持?动ˉ态?卸?载?,?防え?止1驻痢?留?内ú存?
VOID DriverUnload(PDRIVER_OBJECT driver)
{
// 但?什?么′都?不?做?,?只?打洙?印?一?句?话°:
DbgPrint("first: Our driver is unloading...\r\n");
}
// DriverEntry,?入?口ú函ˉ数簓。£相à当獭?于瞞ain。£
NTSTATUS DriverEntry(PDRIVER_OBJECT driver, PUNICODE_STRING reg_path)
{
#if DBG//调獭?试?命ü令?
// _asm int 3
#endif
// 这a是?我ò们?的?内ú核?模£块é的?入?口ú,?可é以?在ú这a里?写′入?我ò们?想?写′的?东?西÷。£
// 我ò在ú这a里?打洙?印?一?句?话°。£
DbgPrint("first: Hello, world!...\r\n");
// 设Θ?置?一?个?卸?载?函ˉ数簓便?于?这a个?函ˉ数簓能ü退?出?。£
driver->DriverUnload = DriverUnload;
return STATUS_SUCCESS;//返う?回?成é功|,?否?则ò不?执′行D
}
二、具体步骤
guestOS设置比较简单,具体操作如下:
添加串口:
VM->settings->hardware->add
选择 serial
设置如下图所示:
修改guestOS的boot.ini文件
在文件最末行添加如下内容:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional Debug" /fastdetect /debugport=com2 /baudrate=115200
debugport=com2,要根据你虚拟出来的串口号来设置。
本人电脑里设置的是COM2,如上图所示。
注意:
1、boot.ini 文件在C:根目录下,修改booti.in文件时,需要设置文件夹选项,详见下图的标注。
2、波特率
进入系统(虚拟机),修改串口的波特率为115200,默认建立的时,波特率是9600。
电脑右键->属性->硬件->属性管理,在弹出的框框里找到COM2修改即可。
虚拟机(guestOS)上的配置基本完成。
hostOS配置:
安装DDK
版本:6.1.6001.18002.081017-1400_wdksp-WDK18002SP_EN_DVD.iso,在微软网站可以下载到。
DDK的安装,可以使用DEAMON tools 安装即可。
WinDBG设置:
创建一个windbg的快捷方式
右击windbg快捷图标,并在属性下的目标内容后面,
添加“-k com:port=\\.\pipe\com_1,baud=11520,pipe”后,确定即可。
设置符号路径
WinDbg->菜单->File->Symbol File Path或“Ctrl+S”打开设置窗体,符号路径一般有两个两者以分号隔开。
1、是你设置保存系统DLL的PDB文件的路径
直接从微软网站下载,下载时一定要注意版本,也就是要和你的操作系统版本一致。
Symbol下载地址中
http://www.microsoft.com/whdc/devtools/debugging/symbolpkg.mspx
例如
我将其安装在E:\WINDOWS\Symbols,则在框中输入“E:\WINDOWS\Symbols”
2、驱动的PDB的路径,即你驱动生成所在的目录。
配图是原图,新搭环境的盘符与09年搭环境时有区别,需注意。
至此,hostOS(主机)需要设置的基本完成。
联调基本步骤:
启动虚拟机
选择 XP的调试版本,先不要按“回车键”。
主机(hostOS)上运行Windbg程序。
运行虚拟机上的XP系统(在虚拟机的 debug选项上按 “回车”)
hostOS上的windbg 出现如下信息:
虚机启动后如下:
后来发现是“symbol”搞错了。
新hostOS是WIN7(32bits),老的是WINXP
第一次装的symbol(Windows_Win7SP1.7601.17514.101119-1850.X86FRE.Symbols)是对应于WIN7的,
所以报上面的错误。
后重新下载并安装
WindowsXP-KB936929-SP3-x86-symbols-full-ENU,就正常了。
设置路径:
Windbg中“restart”后:
Windbg界面的命令行窗口输入“bu driver!driverentry”(不分大小写哦)
在驱动的DriverEntry函数的入口点下一个延迟断点,driver是你的驱动名字。
在虚拟机上加载驱动程序
这里使用instDrv工具,网上搜索能搜到。
hostOS上的WINDBG不能断点下来。
狠是邪门
后来,用DDK命令行编译驱动,用相同的方法,最终在驱动源文件里能断点下来。
而新搭建的环境采用VS2010来配置环境,编译驱动。开始怀疑VS2010的编译问题,后经过对比发现:
用VS2010编译时,未能生成PDB文件。
设置VS2010,如下所示:
再次重复前面调试驱动步骤,成功断点下来。
Win7+vmware+xpsp3+vs2010驱动开发环境搭建及调试方法相关推荐
- Windows Server 2012 +WDK7600.16385.1+VS2010驱动开发环境搭建
本帖通过Augusdi的一篇博文进行重新总结 第一步:安装Visual stdio 2010 1.安装VS2010 第二步:安装WDK安装包 2.安装WindowsDriverKit7-GRMWDK_ ...
- Windows Server 2012 +WDK7600.16385.1+VS2008驱动开发环境搭建
这个配置相较与Windows Server 2012 +WDK7600.16385.1+VS2010驱动开发环境搭建 要简单的多,不需要每次创建驱动工程时配置这么多的参数 下载WDK开发安装包,我已经 ...
- vs2010 wdk c语言,Windows7+WDK+VS2010+VisualDDK驱动开发环境搭建.doc
Windows7+WDK+VS2010+VisualDDK驱动开发环境搭建.doc [置顶]Windows7+WDK+VS2010+VisualDDK驱动开发环境搭建(菜鸟的经验) 分类: 驱动开发 ...
- windows驱动开发环境搭建以及helloworld
文章目录 前言 编译环境-WDK的安装 搭建测试驱动的虚拟机 win11虚拟机 win10虚拟机 在测试机器上运行驱动 修改注册表-显示调试信息 上面驱动代码含义 测试证书签名 其他 旧版本的visu ...
- QQ玩一玩(轻游戏)开发环境搭建与调试
玩一玩开发环境搭建与调试 前言 Android 调试 下载Android Studio 配置环境变量 进入用户当前目录 设置环境变量 设置生效 检查配置是否正常 下载特殊版测试Q 调试时Android ...
- Windows编程—Windows驱动开发环境搭建
文章目录 前言 步骤 步骤一 步骤二 步骤三 连接测试 步骤四 步骤五 总结 前言 作为一个编写Windows程序的开发人员,对Windows驱动开发 并非必需要掌握,但是掌握 Windows驱动开发 ...
- Windows驱动开发环境搭建:VS2013+WDK8.1
你的Windows驱动开发环境之所以搭建不成功,是因为你没有看这篇博客 1.安装包准备 Visio Studio2013: https://pan.baidu.com/s/1P77yeSKuE7mWl ...
- 驱动开发环境以及双机调试环境搭建
工作将近三个月了,做了几个项目,想在这里总结一下,方便以后自己或者大家借鉴.最近一个项目里需要做一个文件过滤驱动,我打算把整个过程中遇到的坑和解决方法,总结一下.这篇博客主要帮助大家实现驱动程序的开发 ...
- windows10 驱动开发环境搭建vs2019 helloworld
因为特殊原因需要搭建win10驱动环境, 因此学习了一下 但是发现win10环境特别麻烦 vs2022已经出来了,但是没看到驱动支持, 因此还是选择vs2019 提前准备 1 查看系统版本 2 下载v ...
- eclipse+gcc STM32开发环境搭建及调试
记录一下本人进行eclipse+gcc stm32开发环境的搭建过程,以便后续学习使用 参考资料如下: CubeMX+Eclipse+Jlink STM32开发环境搭建_小裘HUST的博客-CSDN博 ...
最新文章
- 「鸡娃」是家长无处安放的「应试」焦虑
- java创建线程的2种方式
- GitHub热门:程序员的架构师封神之路
- eclipse自动关闭的原因
- 模拟 Codeforces Round #249 (Div. 2) C. Cardiogram
- 2018年第九届蓝桥杯 - 国赛 - C/C++大学B组 - B. 激光样式
- C#——一个简单的文件管理器
- stripfxg php,zzcms v8.2 中的众多cve分析
- Kindle Collection编辑器
- PXE远程CentOS安装anaconda报错
- spss因子分析结果解读_AMOS进行问卷分析中效度分析之验证因子分析教程 ——【杏花开生物医药统计】...
- pt电阻测温c语言算法,铂电阻测温仪的设计与实现
- 计算机u盘驱动坏了如何的修复,u盘损坏怎么修复 u盘损坏再次使用
- 邀请函 · Android 9 Pie 技术分享会直播
- 【隐私计算笔谈】MPC系列专题(五):Beaver三元组和BMR协议
- python代码画樱花教程-python画樱花树代码 具体代码介绍
- 蛋白质集合c语言算法,利用蛋白质序列的预测方法
- apk安装,解析包时出错
- 低成本精准营销助推中小企业度过经济寒冬
- vcruntime140_1.dll丢失的解决方法(仅一招解决)