Compartir a través de


Controlar una sesión de depuración remota

Una vez iniciada la sesión remota, se pueden escribir comandos en el servidor de depuración o en el cliente de depuración. Si hay varios clientes, cualquiera de ellos puede escribir comandos. Una vez presionado ENTRAR, el comando se transmite al servidor de depuración y se ejecuta.

Cada vez que un usuario escriba un comando, todos los usuarios verán el propio comando y su salida. Si este comando se emitió desde un cliente de depuración, todos los demás usuarios verán una identificación, anterior al comando, del que el usuario emitió el comando. Los comandos emitidos desde el servidor de depuración no tienen este prefijo.

Una vez que un usuario ejecuta un comando, otros usuarios que están conectados a través de KD o CDB no verán un nuevo símbolo del sistema. Por otro lado, los usuarios de WinDbg verán el símbolo del sistema en el panel inferior de la ventana Comando del depurador continuamente, incluso cuando se está ejecutando el motor del depurador. Ninguno de estos debe ser una causa de alarma; cualquier usuario puede escribir un comando en cualquier momento y el motor ejecutará estos comandos en el orden en que se recibieron.

El servidor de depuración también ejecutará las acciones realizadas a través de la interfaz winDbg.

Comunicación entre usuarios

Cada vez que un nuevo cliente de depuración se conecta a la sesión, todos los demás usuarios verán un mensaje que indica que este cliente está conectado. No se muestra ningún mensaje cuando un cliente se desconecta.

El comando .clients (List Debugging Clients) enumerará todos los clientes conectados actualmente a la sesión de depuración.

El comando .echo (Echo Comment) es útil para enviar mensajes de un usuario a otro.

Áreas de trabajo de WinDbg

Cuando WinDbg se usa como cliente de depuración, su área de trabajo solo guardará los valores establecidos a través de la interfaz gráfica. Los cambios realizados a través de la ventana Comando del depurador no se guardarán. (Esto garantiza que solo se reflejarán los cambios realizados por el cliente local, ya que la ventana Comando del depurador aceptará la entrada de todos los clientes, así como el servidor de depuración).

Rutas de acceso de archivo

La ruta de acceso del símbolo, la ruta de acceso de la imagen ejecutable y la ruta de acceso dll de extensión se interpretan como rutas de acceso de archivo relativas a la carpeta de instalación herramientas de depuración para Windows en el servidor de depuración.

Cuando WinDbg se usa como cliente de depuración, también tiene su propia ruta de acceso de origen local . Todos los comandos relacionados con el origen tendrán acceso a los archivos de origen en el equipo local. Por lo tanto, las rutas de acceso adecuadas deben establecerse en cualquier cliente o servidor que use comandos de origen.

Este sistema de múltiples rutas de acceso permite a un cliente de depuración usar comandos relacionados con el origen sin compartir realmente los archivos de origen con otros clientes o con el servidor. Esto resulta útil si hay archivos de origen privados o confidenciales a los que uno de los usuarios tiene acceso.

Cancelación del servidor de depuración

El comando .endsrv (End Debugging Server) se puede usar para finalizar un servidor de depuración. Si el depurador ha establecido varios servidores de depuración, puede cancelar algunos de ellos mientras deja otros en ejecución.

La terminación de un servidor impedirá que los clientes futuros se conecten a él. No cortará ningún cliente que esté conectado actualmente a través del servidor.

Salir del depurador y finalizar la sesión

Para salir de un cliente de depuración sin terminar el servidor, debe emitir un comando desde ese cliente específico. Si este cliente es KD o CDB, use la tecla CTRL+B para salir. Si usa un script para ejecutar KD o CDB, use .remote_exit (Salir del cliente de depuración). Si este cliente es WinDbg, elija Salir en el menú Archivo para salir.

Para finalizar toda la sesión y salir del servidor de depuración, use el comando q (Salir). Este comando se puede especificar desde cualquier servidor o cliente, y finalizará toda la sesión de todos los usuarios.