关闭

驱动开发:WMWare+Windbg调试环境搭建

185人阅读 评论(0) 收藏 举报
分类:

转自:http://blog.csdn.net/xuepiaosong/article/details/8236702  

            http://yexin218.iteye.com/blog/545187

            http://blog.sina.com.cn/s/blog_79ba23780101qvwt.html

一.配置环境

    主机:SC_Win7_64Bit_SP1

    虚拟机:SC_Win7_64Bit_SP1

   VMware版本:11

   VS2012 with update 5

   WDK8.0

二.配置过程

  1.安装VS2012 with update 5

  2.安装WDK8.0

  3.虚拟机中安装SC_Win7_64Bit_SP1

     安装完成后,在"虚拟机设置"->"添加"->"串行端口"->"输出到命名管道".命名管道名称为“\\.\pipe\com_2”,因为com_1端口被printer占用。最后点完成并勾选"轮询时主动放弃CPU"。在虚拟机系统的设备管理器中找到com2的属性设置,将位/秒改为115200.

    Vista和XP不同, 没有boot.ini文件, 需要用bcdedit进行启动设置。

   3.1. 在administrator权限下, 进入command line模式, 键入bcdedit命令, 会出现以下界面:

   3.2 然后, 设置端口COM2, baudrate为115200 (除COM1外, 也可以用1394或USB. 1394用起来比COM口快多了, 当然前提是你需要有1394卡及其驱动. 很恶心的是Vista不再支持1394的文件传输协议, 但是用windbg双机调试还是可以的)
命令为:
bcdedit /dbgsettings {serial [baudrate:value][debugport:value] | 1394 [channel:value] | usb }

bcdedit /dbgsettings serial baudrate:115200 debugport:2


   3.3 接着, 我们需要复制一个开机选项, 以进入OS的debug模式
命令为:
bcdedit /copy {current} /d DebugEnty
DebugPoint 为选项名称, 名字可以自己定义. 然后复制得到的ID号.


   3.4接着增加一个新的选项到引导菜单
bcdedit /displayorder {current} {ID}
这里的{ID}的ID值是刚 生成的ID值.


   3.5激活DEBUG : bcdedit /debug {ID} ON
这里的{ID} 的ID值还是刚才的ID值.

   3.6命令执行成功后, 重新启动机器.或者更简单的图形界面设置:在msconfig界面中,选Boot,再选Advanced options,在选择Debug、Debug port、Baud rate都打上钩。选择DebugEntry[debug]作为等入口。

   4.安装.配置Windgb

   4.1安装完WDK8.0后会自带Windbg。在桌面创建一个Windbg的快捷方式。修改快捷方式目标为:"C:\Program Files (x86)\Windows Kits\8.0\Debuggers\x64\windbg.exe" -b -k com:port=//./pipe/com_2,baud=115200,pipe。也就是添加-b -k com:port=//./pipe/com_2,baud=115200,pipe。注意com_2对应虚拟机创建的串口序号。

   4.2下载符号表,符号表对应的是虚拟机中OS的版本。打开Windbg,File->Symboy file pah.输入srv*c:\Symbols*http://msdl.microsoft.com/download/symbols。c:\Symbols是下载的符号表目录。

如果勾选了Reload,那么相当于输入了.reload命令,这时开始下载。不过好像经常下载不成功。可以在https://msdn.microsoft.com/en-us/windows/hardware/gg463028手动下载对应的版本在安装即可。

   4.3配置环境变量:在系统的环境变量中新建一个_NT_SYMBOL_PATH系统变量,值为C:\symbols;C:\symbolsMy;SRV*C:\symbols*http://msdl.microsoft.com/download/symbols   这样设置以后,系统的调试符号就在C:\symbols下,而我们自己驱动的调试符号就在C:\symbolsMy下
当符号文件不匹配时,Windbg会自动连网从http://msdl.microsoft.com/download/symbols下载符号文件到C:\symbols,下次再用到时就不用下载了

  4.4现在我们假设你的驱动代码放在D:\mydriver目录中;系统级Symbol文件存放在C:\symbols目录中,这些Symbol文件是从微软的网站上http://msdl.microsoft.com/download/symbols下载而来,这个网址是不可以用IE直接打开的,File Symbol File Path...界面中选择Reload,WinDbg会自动帮你下载;驱动生成的Symbol文件存放在D:\mydriver\objchk_wxp_x86\i386目录中。
a) 设置驱动Symbol路径,WinDbg->File-> Symbol File Path...为 SRV*C:\WINDOWS\Symbols*http://msdl.microsoft.com/download/symbols; D:\mydriver\objchk_wxp_x86\i386
b) 设置驱动源文件路径,WinDbg->File-> Source File Path…为D:\mydriver
c) 为了保险起见,我们同时设置系统变量。
My Computer -> Properties-> Advanced Tab-> Enviroment Variables-> Add.
_NT_DEBUG_BAUD_RATE=115200
_NT_SYMBOL_PATH=SRV*C:\symbols*http://msdl.microsoft.com/download/symbols
_NT_ALT_SYMBOL_PATH = D:\mydriver\objchk_wxp_x86\i386
_NT_SOURCE_PATH = D:\mydriver
同时请把驱动编译后生成在D:\mydriver\objchk_wxp_x86\i386目录下的*.pdb、*.sys、*.map、*.exp、*.lib文件一并拷贝到系统的C:\symbols目录中。





0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:22723次
    • 积分:415
    • 等级:
    • 排名:千里之外
    • 原创:13篇
    • 转载:38篇
    • 译文:0篇
    • 评论:9条
    文章分类
    最新评论