Compartir a través de


.ocommand (Esperar comandos del destino)

El comando .ocommand permite que la aplicación de destino envíe comandos al depurador.

.ocommand  String 
.ocommand -d 
.ocommand 

Parámetros

Cuerda
Especifica la cadena de prefijo de comando. La cadena puede incluir espacios, pero no puede usar caracteres de control de estilo C como \" y \n. También puede incluir string entre comillas. Sin embargo, si String incluye un punto y coma, espacios iniciales o espacios finales, debe incluir string entre comillas.

-d
Elimina la cadena de prefijo de comando.

Entorno

Elemento Descripción
Modos solo modo de usuario
Destinos solo depuración en vivo
Platforms all

Información adicional

Para obtener más información sobre OutputDebugString y otras funciones en modo de usuario que se comunican con un depurador, consulte la documentación de Microsoft Windows SDK.

Comentarios

Si usa el comando .ocommand sin parámetros, el depurador muestra la cadena de prefijo de comando actual. Para borrar la cadena existente, use .ocommand -d.

Cuando haya establecido una cadena de prefijo de comando, se examina cualquier salida de destino (como el contenido de un comando OutputDebugString). Si esta salida comienza con la cadena de prefijo de comando, el texto de la salida que sigue a la cadena de prefijo se trata como una cadena de comandos del depurador y se ejecuta. Cuando se ejecuta este texto, no se muestra la cadena de comandos.

El destino puede incluir un comando .echo (Echo Comment) en la cadena de salida si desea mensajes adicionales. La salida de destino que no comienza con la cadena de prefijo se muestra de la manera típica.

Una vez ejecutados los comandos dentro de la cadena de comandos, el destino permanece dividido en el depurador, a menos que el comando final sea g (Go).

La comparación entre la cadena de prefijo de comando y la salida de destino no distingue mayúsculas de minúsculas. (Sin embargo, los usos posteriores de .ocommand muestran la cadena que escribió con el caso conservado).

En este ejemplo, supongamos que escribe el siguiente comando en el depurador.

0:000> .ocommand magiccommand

A continuación, la aplicación de destino ejecuta la siguiente línea.

OutputDebugString("MagicCommand kb;g");

El depurador reconoce el prefijo de cadena de comandos y ejecuta kb; g inmediatamente.

Sin embargo, la línea siguiente no hace que se ejecute ningún comando.

OutputDebugString("Command on next line.\nmagiccommand kb;g");

No hay comandos ejecutados desde el ejemplo anterior porque el prefijo de cadena de comandos no está al principio de la salida, aunque comience una nueva línea.

Nota Debe elegir un prefijo de cadena de comandos que probablemente no aparezca en ninguna salida de destino que no sea sus propios comandos.