Debugging Tools for Windows |
开始内核调试之前,必须选择使用的连接设置。
调试器支持各种不同的内核调试方式:
有三种办法可以进行内核调试设置:通过环境变量,通过调试器命令行,或者通过WinDbg图形界面。如果不使用这些方法,调试器默认使用COM1和19200波特率连接。
如果通过环境变量设置COM端口连接,需要使用下面两个变量:
set _NT_DEBUG_BAUD_RATE = BaudRate
通过环境变量设置1394连接,使用下面三个变量:
set _NT_DEBUG_1394_CHANNEL = 1394Channel
set _NT_DEBUG_1394_SYMLINK = 1394Protocol
不能用环境变量来设置USB 2.0调试电缆连接、通过modem的调试、通过命名管道调试和本地内核调试。
如果使用KD命令行,可以在-k 命令行选项之后指定连接设置。com:port 参数指定调试器通过COM端口连接。1394 参数指定通过1394电缆连接。usb2 参数指定通过USB 2.0调试电缆连接。com:modem 参数指定通过modem连接。com:pipe 参数指定通过命名管到连接。-kl 命令行选项启用内核调试。如果省略掉这些参数,则使用环境变量或者默认设置。
kd ... -k 1394:channel=1394Channel[,symlink=1394Protocol] ...
kd ... -k usb2:targetname=USBString ...
kd ... -k com:pipe,port=\\VMHost\pipe\PipeName[,resets=0][,reconnect] ...
kd ... -k com:modem ...
kd ... -kl ...
kd ...
WinDbg 连接参数和KD一样。唯一不同在于,如果想使用环境变量或者默认设置,还是必须指定-k 选项。
windbg ... -k 1394:channel=1394Channel[,symlink=1394Protocol] ...
windbg ... -k usb2:targetname=USBString ...
windbg ... -k com:pipe,port=\\VMHost\pipe\PipeName[,resets=0][,reconnect] ...
windbg ... -k com:modem ...
windbg ... -kl ...
windbg ... -k ...
如果WinDbg已经运行并且处于静止状态,可以使用File | Kernel Debug 菜单选项来开始新的内核调试任务。出现的对话框中有四个选项卡:COM, 1394、USB 2.0和Local。他们每个都指定一种不同的连接方式:
这个对话框不能用来设置modem和命名管道连接。
这些参数由环境变量、命令行选项和WinDbg对话框使用,有下面一些可能的值:
注意 1394内核调试只在主控机和目标机都运行Windows XP之后系统的情况下支持。通过1394电缆调试之前,必须在主控机和目标机上都进行一些软件配置。查看禁用1394控制器和安装1394虚拟驱动程序获取更多信息。
注意 USB 2.0内核调试仅当主控机运行Windows系统,目标机运行Windows Vista及之后的系统时才支持。需要进行更多的配置,查看设置USB 2.0调试电缆连接获取更多信息。
下面的批处理文件用来设置COM连接
set _NT_DEBUG_PORT=com1
set _NT_DEBUG_BAUD_RATE=19200
set _NT_DEBUG_LOG_FILE_OPEN=d:\debuggers\logfile1.log
kd
下面的批处理用于设置1394连接:
set _NT_DEBUG_BUS=1394
set _NT_DEBUG_1394_CHANNEL=44
set _NT_DEBUG_LOG_FILE_OPEN=d:\debuggers\logfile1.log
windbg -k
下面的命令行在每种配置下启动KD,不使用任何环境变量:
kd -y d:\mysymbols -k com:port=com2,baud=57600
kd -y d:\mysymbols -k com:port=\\.\com2,baud=115200
kd -y d:\mysymbols -k 1394:channel=20,symlink=instance