在上节中,我们设置好了符号服务器,接下来我们可以启动调试器了。
语法如下
[cdb |ntsd |windbg] 后面接下面的选项
[-server ServerTransport 创建一个可以用其他调试器访问的调试服务器]
[-remote ClientTransport 创建一个调试客户端,并连接到已经运行的调试服务器上]
[-o(指示其子进程也加入进入调试集合)]
[-pn 执行进程名(该进程已处于运行并且只有一份)]
[-psn 执行服务名]
[-p 执行进程Id,十进制]
[-y 符号路径]
[-pv 以无侵入的方式加入调试]
[-log{a|o} 以附加或者重写方式写日志]
[可执行文件名,参数。须位于最后]
内核调试方法有通过1394线连接调试,也有通过虚拟机管道来调试。下面以VMWARE虚拟机来介绍管道调试方法。
设置虚拟机:首先打开XP虚拟机的设备编辑页面,添加一个串口设备,设备状态选中连接和在启动连接两个选项。在下面选择使用命名管道,名字设置为\\.\pipe\com_1,并选择下面两个下拉框中分别选中”本机是服务端“和另外的机器是虚拟机。
设置主机:如果被调试机器是NT6.0以前的系统,那么在系统盘启动分区的boot.ini文件中加入启动调试的支持,在[operating systems]节下加入调试版启动项
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional Debug" /noexecute=optin /fastdetect /debug /debugport=com1 /baudrate=115200
启动时再选择相应的调试版就可以进入到内核调试态。如果目标机器的操作系统是NT6.0C之后的那么就要使用BCDEDIT来加启动项。
设置调试机:调试方输入以下的命令就可以和被调试系统连上。
路径windbg.exe -b -k com:port=\\.\pipe\com_1,baud=115200,pipe
路径KD.exe -b -k com:port=\\.\pipe\com_1,baud=115200,pipe