cc682/NetRoc
http://netroc682.spaces.live.com/
控制键
本参考节讨论能够在调试器中使用的各种控制键。
这些控制键可以在KD中使用,有时候可以在CDB中。有一些也可以在WinDbg中使用 (使用CTRL+ALT键而不仅是CTRL)。
WinDbg 也可以使用CTRL、ALT和F键作为菜单的快捷键。查看快捷键获得它们的意义的列表。
CTRL+A (Toggle Baud Rate)
CTRL+A 键切换内核调试连接使用的波特率。
用法
KD 用法
CTRL+A ENTER
WinDbg 用法
CTRL+ALT+A
环境
调试器
|
仅KD和WinDbg
|
模式
|
仅内核模式
|
目标
|
仅活动目标
|
平台
|
所有
|
注释
这个控制键会在内核调试连接可以使用的波特率间循环切换。
可以支持的波特率有19200、38400、57600和115200。每次使用该控制键时,会选中下一个波特率。如果已经是115200,则又会返回到19200。
在WinDbg中,也可以通过Debug | Kernel Connection | Cycle Baud Rate菜单实现。
这个控制键并不能用来改变实际调试的波特率。主控机和目标机的波特率必须匹配,而目标机必须重起才能改变它。因此,只有在两台计算机试图以不同波特率连接时才应该进行切换。这种情况向,必须改变波特率来匹配目标机。
要改变目标机的波特率,查看配置目标机的软件。
CTRL+B (Quit Local Debugger)
CTRL+B 键使得调试器强制退出。这不会结束远程调试会话。
用法
CTRL+B ENTER
环境
调试器
|
仅CDB和KD
|
模式
|
用户模式、内核模式
|
目标
|
活动目标、崩溃转储
|
平台
|
所有
|
注释
CDB中,应该使用q (Quit) 命令来退出。CTRL+B 只应该在调试器停止相应时使用。
在KD中,q 命令会结束调试会话并保持目标机被锁定。如果想保持调试会话(所以新的调试器可以连接上去),或者想让目标机继续运行,可以使用CTRL+B。
在WinDbg中,等效的命令是File | Exit 或ALT+F4。
附加信息
其他退出调试器或停止对目标附加的方法,查看结束调试会话。
CTRL+C (Break)
CTRL+C 键中断到调试器,停止目标程序或目标机,并且取消调试器命令。
用法
CDB 用法
CTRL+C
KD 用法
CTRL+C
目标机用法
SYSRQ
ALT+SYSRQ
F12
环境
调试器
|
仅CDB和KD
|
模式
|
用户模式、内核模式
|
目标
|
活动目标、崩溃转储
|
平台
|
所有
|
注释
使用CDB时:
用户模式下,CTRL+C 键使得目标程序中断到调试器中。目标程序会冻结而调试器开始活动,这时可以输入调试器命令。
如果调试器已激活,CTRL+C不会作用于目标程序。但是,它可以用来终止调试器命令。例如,如果产生了一个很长的输出并且不再想继续看下午,可以使用CTRL+C 来终止显示并返回到调试器命令提示符。
使用CDB进行远程调试时,CTRL+C可以在主机的键盘上使用。如果想从目标机键盘上产生中断,可以在x86机器上使用CTRL+C。
F12可以用来当被调试程序很忙时获得命令提示符。将焦点放到目标程序的窗口上并且在目标机上按下F12。
使用KD时:
内核模式下,CTRL+C 键使得目标机中断到调试器中。这会锁定目标机并唤醒调试器。
调试正在运行的系统时,必须在主机键盘上按下CTRL+C才能获得初始的命令提示符。
如果调试器已激活,CTRL+C不会作用于目标机。但是,它可以用来终止调试器命令。例如,如果产生了一个很长的输出并且不再想继续看下午,可以使用CTRL+C 来终止显示并返回到调试器命令提示符。.
CTRL+C也可以用来在当产生了很长的输出或者目标机很忙时获取命令提示符。调试x86机器时,在主控机或目标机键盘上都可以使用。
SYSRQ (或者增强键盘的ALT+SYSRQ)有类似作用。它在运行于任何处理器的主控机和目标机键盘都能工作。但是,只有当之前至少使用CTRL+C获取过命令提示符一次以上时才起效。
SYSRQ 键可以通过编辑注册表禁用。在注册表键
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\i8042prt\Parameters
创建一个名为BreakOnSysRq的值,并设置为DWORD 0x0。然后重新启动。之后在目标机键盘上按下SYSRQ就不会中断到内核调试器中了。
当KD和CDB一起使用时:
如果使用KD和CDB一起调试,CTRL+C将会由主机试器(CDB)来响应。要 中断到目标调试器(KD)中,需要使用CTRL+F。
注意 在WinDbg中, CTRL+C 是用来从窗口中复制文本的快捷键。要在WinDbg中执行中断命令,可以使用CTRL+BREAK 或选择菜单的 Debug | Break 。
附加信息
关于执行该命令的其他方法和相关命令的概述,查看控制目标机。
CTRL+D (Toggle Debug Info)
CTRL+D 键用来切换调试器内部信息流打开和关闭。这在调试器通信故障时用来重置目标机和主控机之间的连接。
用法
KD 用法
CTRL+D ENTER
WinDbg 用法
CTRL+ALT+D
环境
调试器
|
仅KD和WinDbg
|
模式
|
仅内核模式
|
目标
|
仅活动调试
|
平台
|
所有
|
注释
当打开时,调试器会输出主控机和目标机之间通信的信息。
这个快捷键可以用来测试调试器是否崩溃了。如果怀疑调试器或者目标已经停止,可以使用它。如果看到数据包发送,则目标仍然在工作。如果看到超时信息,则目标已停止响应。如果没有任何信息,则调试器已崩溃。
如果目标不响应,使用CTRL+R ENTER CTRL+C。如果继续出现超时信息,则目标已经崩溃了(或者调试器配置错误)。
这在调试KD调试器本身时也有用。
CTRL+F (Break to KD)
CTRL+F 键取消命令或者中断到调试器。(这在使用CDB来调试KD本身时特别有用。)
用法
CTRL+F ENTER
环境
调试器
|
CDB、KD
|
模式
|
用户模式 、内核模式
|
目标
|
活动目标、崩溃转储
|
平台
|
所有
|
注释
在典型情况下, CTRL+F 和标准的中断命令 (KD和CDB的CTRL+C,WinDbg中的 Debug | Break 或CTRL+BREAK)一样。
但是,如果使用KD和CDB一起调试,这两种控制键作用不同。CTRL+C 将会由主机调试器(host debugger (CDB))处理,而CTRL+F 由目标机调试器(target debugger (KD))处理。
参见
.breakin (Break to the Kernel Debugger)
CTRL+K (Change Post-Reboot Break State)
CTRL+K 键改变调试器自动中断目标机的条件。
用法
KD 用法
CTRL+K ENTER
WinDbg 用法
CTRL+ALT+K
环境
调试器
|
仅KD和WinDbg
|
模式
|
仅内核模式
|
目标
|
仅活动目标
|
平台
|
所有
|
注释
该控制键使得内核调试器在下面三个状态之间循环切换:
No break
这种状态下,如果没有按下CTRL+C,调试器不会中断目标机。
Break on reboot
调试器在目标机重起后内核初始化完成后中断。这相当于以-b 命令行选项启动KD或WinDbg。
Break on first module load
调试器在目标机重起后第一个内核模块加载完毕时中断。(这个中断比Break on reboot 选项要早。) 这相当于以 -d 命令行选项启动KD或WinDbg。
CTRL+K使用后会显示新的状态。
WinDbg中,也可以通过选择Debug | Kernel Connection | Cycle Initial Break来完成。
附加信息
相关命令的概述和重起过程如何作用于调试器的说明,查看崩溃和重起目标机。
CTRL+P (Debug Current Debugger)
CTRL+P 键创建一个新的CDB示例,新调试器将会把当前调试器作为目标。
用法
CTRL+P ENTER
环境
调试器
|
CDB、KD
|
模式
|
用户模式 、内核模式
|
目标
|
活动目标、崩溃转储
|
平台
|
所有
|
注释
这和通过remote.exe 实用程序启动新的CDB,并且用它来调试已运行的调试器一样。
CTRL+P和.dbgdbg (Debug Current Debugger)命令类似。但是 ,.dbgdbg要更加通用,因为除了KD和CDB之外还可以在WinDbg中使用,并且可以用来调试远程计算机上的调试服务器。
CTRL+R (Re-synchronize)
CTRL+R 键用来和目标机同步。
用法
KD 用法
CTRL+R ENTER
WinDbg 用法
CTRL+ALT+R
环境
调试器
|
仅KD和WinDbg
|
模式
|
仅内核模式
|
目标
|
仅活动目标
|
平台
|
所有
|
注释
尝试让主控机和目标机同步。目标停止响应时可以使用这个键。
如果使用1394内核连接,重新同步可能并不总是成功。
附加信息
关于和目标重新建立联系的其他方法,查看同步目标机。
CTRL+V (Toggle Verbose Mode)
CTRL+V 键切换详细模式的打开和关闭。
用法
CDB / KD 用法
CTRL+V ENTER
WinDbg 用法
CTRL+ALT+V
环境
调试器
|
CDB、KD、WinDbg
|
模式
|
用户模式 、内核模式
|
目标
|
活动目标、崩溃转储
|
平台
|
所有
|
注释
打开详细模式时,一些显示命令(例如寄存器转储)会产生更详细的输出。发送给调试器的每个模块加载操作都会显示出来。并且操作系统每次加载驱动或者DLL时也会提示。
在WinDbg中,也可以通过选择 View | Verbose Output来实现。
CTRL+W (Show Debugger Version)
CTRL+W 键显示调试器和所有已加载扩展DLL的版本信息。
用法
CDB / KD 用法
CTRL+W ENTER
WinDbg 用法
CTRL+ALT+W
环境
调试器
|
CDB、KD、WinDbg
|
模式
|
用户模式 、内核模式
|
目标
|
活动目标、崩溃转储
|
平台
|
所有
|
注释
这和 version (Show Debugger Version) 命令有相同作用,除了后者还会显示Windows操作系统版本之外。
在WinDbg中,还可以通过选择 View | Show Version查看。
参见
version (Show Debugger Version), vertarget (Show Target Computer Version)