Activación de un servidor de procesos
El servidor de procesos que se incluye en Herramientas de depuración para Windows se denomina DbgSrv (dbgsrv.exe). Para activar un servidor de procesos, abra una ventana del símbolo del sistema con privilegios elevados (Ejecutar como administrador) y escriba el comando dbgsrv .
Nota Puede activar un servidor de procesos sin tener privilegios elevados y los clientes de depuración podrán conectarse al servidor. Sin embargo, los clientes no podrán detectar un servidor de procesos a menos que se haya activado con privilegios elevados. Para obtener información sobre cómo detectar servidores de depuración, consulte Búsqueda de servidores de procesos.
Importante
Hay consideraciones de seguridad importantes al usar la depuración remota. Para obtener más información, incluida la información sobre cómo habilitar el modo seguro, consulta Security During Remote Debugging and Security Considerations for Windows Debugging Tools.
DbgSrv admite varios protocolos de transporte: canalización con nombre (NPIPE), TCP, puerto COM, canalización segura (SPIPE) y capa de sockets seguros (SSL).
métodos de conexión recomendados, con algunos de seguridad adicionales
dbgsrv -t spipe:proto=Protocol,{certuser=Cert|machuser=Cert},pipe=PipeName[,hidden][,password=Password] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc]
dbgsrv -t ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket[,hidden][,password=Password] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc]
dbgsrv -t ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket,clicon=Client[,password=Password] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc]
métodos de conexión no seguros
dbgsrv -t tcp:port=Socket[,hidden][,password=Password][,ipversion=6][,IcfEnable] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc]
dbgsrv -t tcp:port=Socket,clicon=Client[,password=Password][,ipversion=6] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc]
dbgsrv -t npipe:pipe=PipeName[,hidden][,password=Password][,IcfEnable] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc]
dbgsrv -t com:port=COMPort,baud=BaudRate,channel=COMChannel[,hidden][,password=Password] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc]
Parámetros
Los parámetros de los comandos anteriores tienen los siguientes valores posibles:
pipe=PipeName
Cuando se usa el protocolo NPIPE o SPIPE, PipeName es una cadena que servirá como nombre de la canalización. Cada nombre de canalización debe identificar un servidor de procesos único. Si intenta reutilizar un nombre de canalización, recibirá un mensaje de error.
PipeName no debe contener espacios ni comillas.
PipeName puede incluir un código numérico de formato printf estilo, como %x o %d. El servidor de procesos lo reemplazará por el identificador de proceso de DbgSrv. Un segundo código de este tipo se reemplazará por el identificador de subproceso de DbgSrv.
Nota Es posible que tenga que habilitar el uso compartido de archivos e impresoras en el equipo que ejecuta el servidor de procesos. En el Panel de control, vaya a Red e Internet > Centro de red y uso compartido> Configuración de uso compartido avanzado. Seleccione Activar el uso compartido de archivos e impresoras.
puerto de
Cuando se usa el protocolo TCP o SSL, socket es el número de puerto de socket.
También es posible especificar un intervalo de puertos separados por dos puntos. DbgSrv comprobará cada puerto de este intervalo para ver si es gratis. Si encuentra un puerto libre y no se produce ningún error, se creará el servidor de procesos. El cliente inteligente tendrá que especificar el puerto real que se usa para conectarse al servidor. Para determinar el puerto real, utilice cualquiera de los métodos descritos en Búsqueda de servidores de procesos; cuando se muestra este servidor de procesos, el puerto se verá seguido de dos números separados por dos puntos. El primer número será el puerto real utilizado; se puede omitir el segundo. Por ejemplo, si el puerto se especificó como port=51:60y el puerto 53 se usó realmente, los resultados de la búsqueda mostrarán "port=53:60". (Si usa el clicon parámetro para establecer una conexión inversa, el cliente inteligente puede especificar un intervalo de puertos de esta manera, mientras que el servidor de procesos debe especificar el puerto real usado).
clicon de =cliente
Cuando se usa el protocolo TCP o SSL y se especifica el parámetro clicon
Dado que el servidor de procesos busca un cliente específico, no puede conectar varios clientes al servidor si usa este método. Si la conexión se rechaza o se interrumpe, tendrá que reiniciar el servidor de procesos. Un servidor de procesos de conexión inversa no aparecerá cuando alguien use el -QR opción de línea de comandos para mostrar todos los servidores activos.
Nota Cuando se usa clicon, es mejor iniciar el cliente inteligente antes de crear el servidor de procesos, aunque también se permite el orden habitual (servidor antes del cliente).
port=COMPort
Cuando se usa el protocolo COM, COMPort especifica el puerto COM que se va a usar. El prefijo "COM" es opcional; por ejemplo, tanto "com2" como "2" son aceptables.
baud=BaudRate
Cuando se usa el protocolo COM, BaudRate especifica la velocidad de baudios a la que se ejecutará la conexión. Se permite cualquier velocidad de baudios compatible con el hardware.
channel=COMChannel
Si se usa el protocolo COM, COMChannel especifica el canal COM que se usará para comunicarse con el cliente de depuración. Puede ser cualquier valor entre 0 y 254, ambos incluidos. Puede usar un único puerto COM para varias conexiones mediante números de canal diferentes. (Esto es diferente del uso de puertos COM para un cable de depuración, en esa situación no se pueden usar canales dentro de un puerto COM).
proto=Protocol
Si se usa el protocolo SSL o SPIPE, Protocol especifica el protocolo de canal seguro (canal S). Puede ser cualquiera de las cadenas tls1, pct1, ssl2 o ssl3.
cert de
Si se usa el protocolo SSL o SPIPE, cert especifica el certificado. Puede ser el nombre del certificado o la huella digital del certificado (la cadena de dígitos hexadecimales proporcionado por el complemento del certificado). Si se usa la sintaxis certuser=Cert, el depurador buscará el certificado en el almacén del sistema (el almacén predeterminado). Si se usa la sintaxis Cert, el depurador buscará el certificado en el almacén de máquinas. El certificado especificado debe admitir la autenticación del servidor.
ocultas
Impide que el servidor de procesos aparezca cuando alguien usa la opción -QR línea de comandos para mostrar todos los servidores activos.
password=password
Requiere un cliente inteligente para proporcionar la contraseña especificada para conectarse al servidor de procesos.
contraseña puede ser cualquier cadena alfanumérica, hasta doce caracteres de longitud.
Importante
El uso de una contraseña con el protocolo TCP, NPIPE o COM solo ofrece una pequeña cantidad de protección, ya que la contraseña no está cifrada. Cuando se usa una contraseña junto con un protocolo SSL o SPIPE, la contraseña se cifra. Si desea establecer una sesión remota más segura, debe usar el protocolo SSL o SPIPE.
ipversion=6
(Herramientas de depuración para Windows 6.6.07 y versiones anteriores) Obliga al depurador a usar la versión 6 de IP en lugar de la versión 4 cuando se usa TCP para conectarse a Internet. En Windows Vista y versiones posteriores, el depurador intenta establecer el valor predeterminado automático en la versión 6 de IP, lo que hace que esta opción sea innecesaria.
IcfEnable
Hace que el depurador habilite las conexiones de puerto necesarias para la comunicación tcp o canalización con nombre cuando el firewall de conexión a Internet está activo. De forma predeterminada, el Firewall de conexión a Internet deshabilita los puertos usados por estos protocolos. Cuando IcfEnable se usa con una conexión TCP, el depurador hace que Windows abra el puerto especificado por el parámetro Socket. Cuando IcfEnable se usa con una conexión de canalización con nombre, el depurador hace que Windows abra los puertos usados para canalizaciones con nombre (puertos 139 y 445). El depurador no cierra estos puertos una vez finalizada la conexión.
-sifeoejecutable
Suspende el valor de opción de ejecución de archivo de imagen (IFEO) para la imagen especificada.
Ejecutable debe incluir el nombre de archivo de la imagen ejecutable, incluidas las extensiones de nombre de archivo. La opción -sifeo permite establecer DbgSrv como depurador IFEO para una imagen creada por la opción -c, sin provocar la invocación recursiva debido a la configuración ifEO. Esta opción solo se puede usar si se usa -c.
-c
Hace que DbgSrv cree un nuevo proceso. Puede usarlo para crear un proceso que quiera depurar. Esto es similar a generar un nuevo proceso desde el depurador, salvo que este proceso no se depurará cuando se cree. Para depurar este proceso, determine su PID y use la opción -p al iniciar el cliente inteligente para depurar este proceso.
de
Hace que el proceso recién creado se suspenda inmediatamente. Si usa esta opción, se recomienda usar CDB como cliente inteligente y que inicie el cliente inteligente con la opción de línea de comandos -pb
Especifica la línea de comandos completa del proceso que se va a crear.
appCmdLine puede ser una cadena Unicode o ASCII y puede incluir cualquier carácter imprimible. Todo el texto que aparece después del -c[s] parámetro se tomará para formar la cadena AppCmdLine.
-x
Hace que se omita el resto de la línea de comandos. Esta opción es útil si va a iniciar DbgSrv desde una aplicación que puede anexar texto no deseado a su línea de comandos.
-pc
Hace que se omita el resto de la línea de comandos. Esta opción es útil si va a iniciar DbgSrv desde una aplicación que puede anexar texto no deseado a su línea de comandos. Se produce un error de sintaxis si -pc es el elemento final de la línea de comandos dbgSrv. Aparte de esta restricción, -pc es idéntico a -x.
Puede iniciar cualquier número de servidores de procesos en un equipo. Sin embargo, esto suele ser innecesario, ya que cualquier número de clientes inteligentes puede usar un servidor de procesos (cada uno de ellos participa en una sesión de depuración diferente).