控制远程调试会话
启动远程会话后,可以将命令输入调试服务器或调试客户端。 如果有多个客户端,则其中任一客户端都可以输入命令。 按 Enter 后,命令将传输到调试服务器并执行。
每当一个用户输入命令时,所有用户都会看到命令本身及其输出。 如果此命令是从调试客户端发出的,那么所有其他用户在命令前都会看到一个显示哪位用户发出此命令的标识。 从调试服务器发出的命令没有此前缀。
一个用户执行命令后,通过 KD 或 CDB 连接的其他用户将看不到新的命令提示符。 另一方面,WinDbg 的用户将连续看到调试器命令窗口底部面板中的提示,即使调试器引擎正在运行也是如此。 这两者都不应引起警报:任何用户可以随时输入命令,并且引擎将按照接收的顺序执行这些命令。
通过 WinDbg 接口执行的操作也将由调试服务器执行。
用户之间的通信
每当新的调试客户端连接到会话时,所有其他用户都会看到一条消息,指出此客户端已连接。 当客户端断开连接时,不会显示任何消息。
.clients(列出调试客户端) 命令将列出当前连接到调试会话的所有客户端。
.echo (Echo Comment) 命令可用于将消息从一个用户发送到另一个用户。
WinDbg 工作区
当 WinDbg 用作调试客户端时,其工作区将仅保存通过图形界面设置的值。 不会保存通过调试器命令窗口所做的更改。 (这可以保证仅反映本地客户端所做的更改,因为调试器命令窗口将接受来自所有客户端以及调试服务器的输入。
文件路径
符号路径、可执行映像文件路径和扩展 DLL 路径都被解释为相对于 Windows 调试工具在调试服务器上的安装文件夹的文件路径。
将 WinDbg 用作调试客户端时,它还具有自己的 本地源路径。 所有与源相关的命令都将访问本地计算机上的源文件。 因此,必须在将使用源命令的任何客户端或服务器上设置正确的路径。
此多路径系统允许调试客户端使用与源相关的命令,而无需实际与其他客户端或服务器共享源文件。 如果有一个用户有权访问的私有或机密源文件,这非常有用。
取消调试服务器
.endsrv(结束调试服务器) 命令可用于终止调试服务器。 如果调试器已建立多个调试服务器,则可以取消其中一些调试服务器,同时让其他服务器保持运行状态。
关闭服务器将阻止任何未来的客户端连接到该服务器。 它不会切断当前通过服务器连接的任何客户端。
退出调试器并终止会话
若要退出一个调试客户端而不终止服务器,必须从该特定客户端发出命令。 如果此客户端是 KD 或 CDB,请使用 Ctrl+B 键退出。 如果使用脚本运行 KD 或 CDB,请使用 .remote_exit(退出调试客户端)。 如果此客户端为 WinDbg,请从“文件”菜单中选择“退出”。
若要终止整个会话并退出调试服务器,请使用 q (Quit) 命令。 此命令可以从任何服务器或客户端输入,它将终止所有用户的整个会话。
重要
使用远程调试时,还有其他重要的安全注意事项,有关详细信息(包括有关启用安全模式的信息),请参阅