1 vmware 添加虚拟串口:
\\.pipe\com_1
This end is the server
The other end is an application
2 在虚拟机XP系统的boot.ini中添加:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional Debug" /fastdetect /debug /debugport=com1 /baudrate=115200
3 设置环境变量 _NT_SYMBOL_PATH
值为srv*d:\mysymbols*http://msdl.microsoft.com/download/symbols
4 在windbg.exe的快捷方式里的“目标”中的“...windbg.exe”后增加启动参数:
windbg.exe -b -k com:port=\\.\pipe\com_1,baud=115200,pipe
注意windbg.exe的全路径是在双引号里面的,而刚添加的命令行参数应该在引号外。
5 但是按照 通常的步骤做下去之后,运行虚拟机中的xp系统后,再运行windbg,虽然windbg的启动参数都设置正确,但是在windbg的窗口里,显示
Opened \\.\pipe\com_1
Waiting to reconnect...
最底部显示的: Debuggee not connected.
这是因为在Edit virtual machine settings里看下你那个串口是不是叫Serial port 2,如果是,问题就在这里,就是多了那个2。
关闭虚拟的xp系统,把这个串口删掉,然后把那个printer也删掉,然后重新添加一个串口就可以了,这个时候串口就叫Serial port了。然后就可以正常连接了
6 编译一个常见的first.c的演示驱动
在这里会遇到一个问题是。出现编译错误:WDK cannot open include file ntddk.h 问题解决
这是因为与first.c同一文件夹的
sources文件缺少INCLUDES指令
第一行加上:INCLUDES=$(WDMROOT);$(DDK_INC_PATH) 即可编译通过。
7 将编译好的first.sys用srvinstw.exe安装至虚拟机xp里
运行前需要给主机的windbg添加上first.sys的符号文件路径。
然后打开虚拟xp的命令行工具,输入net start first。 观察主机windbg的输出显示
然后再输入net stop first。观察主机windbg的输出显示。