Debugging Tools for Windows

/debug

/debug参数启用内核调试连接。

以下语法只适用于Microsoft Windows 2000 和 Windows XP。

/debug

/debug /debugport=COM/baudrate=BaudRate ] 

/debug /debugport=1394 [/channel=Channel 

/debug /debugport=usb /targetname=String

以下语法只适用于Microsoft Windows Server 2003。

/debug

/debug[={autoenable | disable | noumex},...] /debugport=COM/baudrate=BaudRate ]

/debug[={autoenable | disable | noumex},...] /debugport=1394 [/channel=Channel ]

/debug[={autoenable | disable | noumex},...] /debugport=usb /targetname=String

子参数

/debugport
指定内核调试器使用的串口。

COMx一起,/debugport启用使用调试电缆(null modem)的调试。

1394一起, /debugport 启用使用IEEE 1394电缆的调试。

usb一起, /debugport 启用使用USB 2.0调试电缆的调试。

COMx
指定使用null modem 电缆的内核调试使用的通信端口。合法的值是任何可用的COM端口,例如COM1或者COM2。
/baudrate
当使用/debugport=COMx 参数时,用于指定内核调试连接的速度。
BaudRate
指定内核调试器连接的速度,以BPS为单位。合法的BaudRate 有9600,19200, 38400,57600和 115200。默认值是19200。
1394

指定使用IEEE 1394(火线)电缆进行调试。这个特性只在目标机和主控机都使用Windows XP或更迟版本Windows 的情况下有效。

注意 通过1394电缆进行内核调试之前,还需要在主控机和目标机上进行额外的软件配置。查看禁用1394控制器 安装1394虚拟驱动程序获取详细信息。

/channel
指定使用IEEE 1394电缆调试时使用的1394总线频道。默认值是0。
Channel
指定1394频道。默认值为0。Channel 的值必须是0到62之间的一个十进制整数,并且,必须和主控机使用的频道号相同。参数中指定的频道号和选择的物理1394适配器端口无关。
usb

指定使用USB 2.0调试电缆进行调试。这个特性只有当主控机运行Windows 2000或之后的系统,并且目标机运行Windows Vista或之后的系统地情况下可用。

注意 通过USB 2.0电缆进行内核调试之前,还需要其它设置。查看设置USB 2.0 调试电缆连接获取更详细的信息。

/targetname
指定一个字符串用于标识USB 2.0连接。这个字符串可以是任意值。
String
指定一个字符串用于标识USB 2.0连接。String可以是任意值。
autoenable
指定内核调试器在出现异常或其它紧急事件时自动启用。在这之前,调试器都是激活但是禁用的。
disable
指定内核调试器当使用kdbgctrl 清空使能块(enable block)的时候启用。在此之前,调试器都是激活但是禁用的。

/debug=disable 参数被设计成为/crashdebug的首选替代。关于KDbgCtrl 的更多信息,查看Windows调试工具文档

noumex
指定内核调试器不会因为用户模式异常而中断下来。默认的,内核调试器会因为特定的用户模式异常中断,例如STATUS_BREAKPOINT 和STATUS_SINGLE_STEP。/debug=noumex 参数只在当没有用户模式调试器附加到进程的时候起效。

注释

/debug 参数只在Windows Server 2003,Windows XP,和Windows 2000下支持。在Windows Vista和之后版本Windows中,使用BCDEdit和/dgbsettings 参数及它的子参数来为所有引导入口进行调试器设置。然后,使用/debug 选项来为特定引导入口启用调试。

启用本地(单机)调试,只使用/debug 参数。

启用调试电缆(null-modem)调试,使用/debug /debugport=COMx 和/baudrate 子参数。

启用IEEE 1394(火线)电缆调试,使用 /debug /debugport=1394/channel 子参数。

由于/debugport 会使得指定的端口被保留下来,所以如果不进行调试的话就不要使用它。

使用串口进行内核调试,Windows会将该串口从系统设备列表中去除。结果是,拥有ACPI BIOS的机器上,该端口不会在任何设备列表中出现,例如设备管理器。在没有ACPI BIOS的机器上,会出现一条错误信息,如“没有足够资源使用该端口。”("Not enough resources to use this port.")。这些消息表明端口被主控机控制,并不是说明出现了故障。

要测试电缆连接,应该在连接电缆之后,启用调试之前。

如果某个调试入口配置为启用调试,在引导菜单显示的友好名后面会添加上粗体的[启用调试]( [debugger enabled])。但是如果他们加起来超过70个字符的话,boot loader省略掉这些粗体字。要它显示出来,需要缩短友好名。

在Windows Server 2003上,可以使用/debug的autoenabledisablenoumex 子参数来只在需要的时候才启用调试器。可以一次使用多于一个的子参数,这时需要用逗号分割每个子参数。(一次不要使用多于一个的/debug,如果这样,Windows使用第一个并且跳过其它的。)

例如,/debug=autoenable,noumex在异常或紧急事件时启用调试器,但跳过用户模式的事件。

关于/debug 参数和它更多变化的细节,查看启用调试的引导参数

示例

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /debug

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /debug /debugport=COM1 /baudrate=115200

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /debug /debugport=1394 /channel=44

multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows Server 2003, Standard" /noexecute=optout /fastdetect /debug=autoenable /debugport=1394 /channel=44

multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows Server 2003, Standard" /noexecute=optout /fastdetect /debug=disable,noumex /debugport=COM1 /baudrate=115200

Bootcfg命令

bootcfg /debug ON /ID 1
bootcfg /debug ON /port=COMx [/baud=115200] /ID 2
bootcfg /dbg1394 ON /channel=44 /ID 3

Build machine: CAPEBUILD