网上有很多关于利用VM单机调试驱动的说明,但是其中有些问题都没有说明白,可能是由于调试器版本不同的原因,我的调试器是6.08的。
1、在虚拟机启动的过程中,WINDbG显示的是没有链接成功,只有等虚拟机完全启动以后,才会显示连接成功
2、在windbg中,一定设置一个命令行参数reconnect。如下所示,
com:port=//pipe/com_1,baud=115200,pipe,reconnect
因为在启动调试器的过程中,必须要重新连接一次
3、windbg安装在调试端,驱动源代码、符号表等都安装在调试器这一端,在虚拟机中只需要装载驱动的执行体就可以了。
其他的参考下面的说明:
首先,先下载http://msdl.microsoft.com/download/symbols/packages/windowsxp/WindowsXP-KB835935-SP2-slp-Symbols.exe?符号表,然后安装到真实系统中。 
再下载http://msdl.microsoft.com/download/symbols/debuggers/dbg_x86_6.5.3.8.exe?WinDbg程序的最新版本,同样也安装到真实系统中。 
接下来我们要在虚拟机中装系统了,我用的是WinXP SP2。安装完成后修改boot.ini文件。在里面[operating systems]节中加入一行, 
" multi(0)disk(0)rdisk(0)partition(1)/WINDOWS="Microsoft Windows?XP Professional - debug" /fastdetect /debug /debugport=com1 /baudrate=115200 " 
随后关闭系统。配制虚拟机的硬件,点击 "Edit virtual machine settings",添加一个Serial Port,选择"Output to named pipe",然后下一步,第一框里保持默认的 "//./pipe/com_1" 
第二框里选"This end is the server." 
第三框里选"The other end is an application." 
选中 "Connect at power on" 
然后点击 "Advanced>>" 然后在新窗口中选中 "Yield CPU on poll"。保存退出。 
好了,以上就是虚拟机系统要做的全部事情。 
在真实系统中,我们要在设备管理器中。找到Com1口,然后再属性页中修改他的速率为115200。 
然后为使用方便,创建一个WinDbg的快捷方式。快捷方式的命令行为 
"C:/Program Files/Debugging Tools for Windows/windbg.exe" -y C:/Windows/Symbols/ -b -k com:port=//./pipe/com_1,baud=115200,pipe 
这里面-y后面的路径就是我们前面安装符号表的路径。 

使用时,首先运行虚拟机系统,到bootloader选择进入哪个系统的时候,我们先按一下上下,将倒计时停止。然后再到真实系统中运行刚才我们创建的WinDbg快捷方式。运行完成后再在虚拟系统中选择带有调试标志的系统即可。此时回到真实系统,稍等一会就可以看到WinDbg输出信息告诉我们两个系统已经连接上了。到此调试器已经和VMware 虚拟机连接成功了,下面就可以进行期待已久的调试工作了。

打开windbg.exe 开始进行‘内核调试’(kernel debug)时,
命令行窗口输出错误提示 :
Connected to Windows XP 2600 x86 compatible target, ptr64 FALSE
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for ntkrnlpa.exe - 
Loading Kernel Symbols
..................................................................................................................................................
Loading User Symbols
............................................................................................................
Loading unloaded module list
.........................
当在命令行中输入!process 0 0命令时,output窗口输出内容为:
lkd> !process
NT symbols are incorrect, please fix symbols
以上信息说明 符号文件(symbol files)与当前调试的系统版本不符 或者 符号文件路径设置错误
在下载符号文件时,应该先确定我们将要调试的系统的版本:如版本为xp_sp3_enu,则下载相应的符号文件:WindowsXP-
KB936929-SP3-x86-symbols-update-ENU.exe。如果版本为中文版,则下载相应的CHS版。
下载了符号文件后,解压到个人指定的文件夹-"x:/symbols_folder"。
然后,开始打开windbg调试前,设定系统环境变量'_NT_SYMBOL_PATH',值为符号文件目录x:/symbols_folder。
(windbg中帮助文件如是写:Before you start the debugger, use the _NT_SYMBOL_PATH and _NT_ALT_SYMBOL_PATH environment variables to set the path. The symbol path is created by appending _NT_SYMBOL_PATH after _NT_ALT_SYMBOL_PATH.)
打开windbg调试前,按下ctrl+s打开"symbol file path"项配置符号文件路径,可填入
x:/symbols_folder;srv*x:/symbols_folder*http://msdl.microsoft.com/download/symbols
其中不同的路径用分号(;)分隔。以上设置srv*x:/symbols_folder*http://msdl.microsoft.com/download/symbols的原因为,当
我们下载下来的符号文件x:/symbols_folder中有缺少或者损坏的文件时,windbg因找不到对应文件而报错(自己就因这个问题而
浪费了大量时间去查错,经过反复设置均不能解决.后来从目录中查到是ntdll.pdb与ntkrnlmp.pdb两个文件不符),当在路径中加入
srv*x:/symbols_folder*http://msdl.microsoft.com/download/symbols后,当windbg找不到对应的符号文件时,就会自动连接
到http://msdl.microsoft.com/download/symbols,把缺少的东西下载到x:/symbols_folder。下载期间,我们应耐心等待(时间
的长短视网速及缺少文件数多少而定,整个symbols压缩文件164M。自己下载下来的符号文件中就因ntdll.pdb与ntkrnlmp.pdb不符
而总是报错),之后,动人的一面开始展现:
Connected to Windows XP 2600 x86 compatible target, ptr64 FALSE
Symbol search path is:
F:/sys_symbols/;F:/sys_symbols;SRV*f:/sys_symbols*http://msdl.microsoft.com/download/symbols
Executable search path is: 
*******************************************************************************
WARNING: Local kernel debugging requires booting with kernel
debugging support (/debug or bcdedit -debug on) to work optimally.
*******************************************************************************
Windows XP Kernel Version 2600 (Service Pack 3) MP (2 procs) Free x86 compatible
Product: WinNt, suite: TerminalServer SingleUserTS
Built by: 2600.xpsp_sp3_gdr.090804-1435
Kernel base = 0x804d7000 PsLoadedModuleList = 0x805634c0
Debug session time: Sat Mar 20 22:07:50.656 2010 (GMT+8)
System Uptime: 0 days 3:40:45.403

小结:
1. windbg符号文件路径搜索的两个位置:环境变量中的_NT_SYMBOL_PATH设置及windbg中的"symblos file path";
2. 设置srv*x:/symbols_folder*http://msdl.microsoft.com/download/symbols 路径是保证我们能快速正确使用windbg的法
门,呵呵。

最后wdk最新版7.1里有个dsf的功能不要安装,否则系统重启后无法启动,真对微软无语了。

WDK安装调试以及注意事项相关推荐

  1. Windows内核安全与驱动编程学习笔记----1.WDK安装

    WDK安装安装 1.WDK下载 VS2019设置 EWDK使用 注意事项 错误解决方法 系统错误1275 系统错误557 1.WDK下载 微软已经不再使用connect.microsoft.com,新 ...

  2. Windows下CodeBlocks安装及配置注意事项

    转载自: http://www.cnblogs.com/weichao975/p/6121104.html CodeBlocks安装及配置注意事项 在使用codeblocks的时候,网上一般只会提供C ...

  3. 坯子库安装不上_柜式七氟丙烷的安装调试方法

    柜式七氟丙烷灭火装置是一种预制的,直接放在防护区内,由一套或者几套灭火装置保护一个防护区.在发生火灾时,不需要经过很多管路,直接就在防护区内喷放灭火.根据结构形式可分为双瓶组柜式七氟丙烷灭火装置和单瓶 ...

  4. 试图运行项目时出错,无法启动调试。没有正确安装调试器,请运行安装程序安装或恢复调试器。...

            用Visual Studio.net 2003调试项目时,出现错误对话框,显示如下:         试图运行项目时出错,无法启动调试.没有正确安装调试器,请运行安装程序安装或恢复调试 ...

  5. Linux(Centos)之安装Redis及注意事项

    Linux(Centos)之安装Redis及注意事项 转:http://www.cnblogs.com/hanyinglong/p/5036558.html  阅读目录 1.redis简单说明 2.准 ...

  6. 【总结】在VirtualBox上面安装Mac的注意事项

    看此文之前 http://www.crifan.com/category/work_and_job/virtual_machine/virtualbox-virtual_machine/ 此文仅仅是针 ...

  7. asp功放怎么装_汽车功放怎么安装 汽车功放安装调试方法【详解】

    摘要:汽车功放怎么安装调试?汽车功放安装位置考虑安装到座椅下面,或者是后排座椅后面,或者是吊装在后隔板上面.下面,就来了解下汽车功放安装与调试知识. [汽车功放安装教程]汽车功放安装调试 汽车功放接线 ...

  8. android最新能调试吗,android – 不能在同一台设备上安装调试和发布版本

    我已经使用applicationIdSuffix在我的项目中配置了构建版本,以便我可以在我的设备上安装调试版本和发行版本. 这里是我的build.gradle(相关部分): buildTypes { ...

  9. oracle vm virtualbox 无法安装mac,【总结】在VirtualBox上面安装Mac的注意事项

    看此文之前 此文只是针对VirtualBox中安装Mac需要注意的事情. 在此之前,你需要知道,对于在虚拟机软件,不论是VMWare还是VirtualBox,对需要注意的事情: 看完了之后,再接着看此 ...

  10. PCM复用设备的安装和使用注意事项

    PCM设备在通信系统中的是一种很常用的设备,但是不少用户在购买了PCM设备后,都不懂怎么去安装使用PCM复用设备.下面,飞畅科技的小编来为大家详细介绍下PCM复用设备的安装和使用注意事项,一起来看看吧 ...

最新文章

  1. 病毒入侵计算机的危害,那些年电脑中过的病毒,中病毒的危害又有哪些
  2. mysql 安装问题一:由于找不到MSVCR120.dll,无法继续执行代码.重新安装程序可能会解决此问题。
  3. 微信小程序textArea组件字数限制
  4. java中执行js代码
  5. λ-矩阵(λ-矩阵在初等变换下的标准形)
  6. c语言多种选,教你轻松学会C语言系列之——一种更简洁、更经典的选择结构
  7. 如何在ASP.NET Core中使用JSON Patch
  8. Fedora开机自动登录指定用户(root或普通用户)
  9. ecplice中class.forname一直报错_A6v5.1升级A6v7.0报错:调用Java代码
  10. svn 命令的使用(在linux下)
  11. 忽略git项目上的任何#39;bin#39;目录
  12. 艺术字体图标设计软件Art Text 4 for Mac
  13. golang在windows下编译Linux下的文件
  14. oracle 下载 pb12.5,PowerBuilder
  15. [Java Web]敏感词过滤算法
  16. BIM信息化综合管理运营平台、BIM模型、数据首页、工单管理、建设建筑、工单信息、设备管理、工地、设备台账、运维标准、巡检管理、巡检计划、巡检任务、维保管理、能耗管理、3d模型、文档管理、工作日报
  17. 如何判断矩阵的谱半径 C语言,矩阵谱半径
  18. Nginx不解析PHP,无法打开PHP文件
  19. 用python计算圆环面积公式_圆环的计算公式,一看就懂的
  20. Wireshark抓取ping包

热门文章

  1. 市场供需简单模型分析
  2. TopCoder SRM 688
  3. 1.1 pug常用命令
  4. 培训php暑期,西安软件php暑假培训
  5. iReport连接数据库
  6. c语言中合法整型常量负号,C语言中整型常量的表示方法
  7. glassfish插件_Maven嵌入式Glassfish插件-未启动
  8. shell支持loop吗_如何在 Bash 中使用循环 | Linux 中国
  9. 基于堆栈的缓冲区溢出_基于堆栈溢出问题构建搜索引擎
  10. H264BSAnalyzer 使用方法