VSInstr

La herramienta VSInstr se usa para instrumentar archivos binarios. Se invoca mediante la siguiente sintaxis:

VSInstr [/U] filename [/options]

En la siguiente tabla se describen las opciones de la herramienta VSInstr:

Opciones Descripción
Ayuda o ? Muestra información de ayuda.
U Escribe la salida de la consola redirigida como Unicode. Debe ser la primera opción especificada.
@filename Especifica el nombre de un archivo de respuesta que contiene una opción de comando por línea. No utilice las comillas.
OutputPath:path Especifica un directorio de destino para la imagen instrumentada. Si no se especifica una ruta de acceso de salida, se cambia el nombre del binario original agregándole "Orig" al nombre de archivo en el mismo directorio y se instrumenta una copia del binario.
Excluye:funcspec Especifica una especificación de función para excluir de la instrumentación por sondeos. Es útil cuando la inserción de sondeos de generación de perfiles en una función da lugar a resultados impredecibles o no deseados.

No utilice opciones Exclude e Include que hagan referencia a funciones del mismo binario.

Puede especificar varias especificaciones de funciones con opciones Exclude independientes.

funcspec se define como:

[namespace<separator1>] [class<separator2>]function

<separator1> es :: para código nativo, y . para código administrado.

<separator2> siempre es ::.

Exclude es compatible con cobertura de código.

Se admite el carácter comodín *. Por ejemplo, para excluir todas las funciones en un espacio de nombres use:

MyNamespace::*

Puede usar VSInstr /DumpFuncs para enumerar los nombres completos de funciones en el binario especificado.
Incluye:funcspec Especifica una especificación de función en un binario para la instrumentación con sondeos. No se instrumentan el resto de funciones en los binarios.

Puede especificar varias especificaciones de funciones con opciones Include independientes.

No utilice opciones Include y Exclude que hagan referencia a funciones del mismo binario.

Include no es compatible con cobertura de código.

funcspec se define como:

[namespace<separator1>] [class<separator2>]function

<separator1> es :: para código nativo, y . para código administrado.

<separator2> siempre es ::.

Se admite el carácter comodín *. Por ejemplo, para incluir todas las funciones en un espacio de nombres use:

MyNamespace::*

Puede usar VSInstr /DumpFuncs para enumerar los nombres completos de funciones en el binario especificado.
DumpFuncs Enumera las funciones en la imagen especificada. No se realiza ninguna instrumentación.
ExcludeSmallFuncs Excluye de la instrumentación las funciones pequeñas, que son funciones cortas que no realizan ninguna llamada de función. La opción ExcludeSmallFuncs proporciona menos sobrecarga de instrumentación y, por tanto, una velocidad de instrumentación mejorada.

La exclusión de las funciones pequeñas también reduce el tamaño del archivo .vsp y el tiempo necesario para el análisis.
Mark: {Before|After|Top|Bottom},funcname,markid Inserta una marca de perfil (un identificador utilizado para delimitar los datos de informes) que puede utilizar para identificar el inicio o final de un intervalo de datos en el archivo de informe .vsp.

Before: inmediatamente antes de la entrada de la función de destino.

After: inmediatamente después de la salida de la función de destino.

Top: inmediatamente después de la entrada de la función de destino.

Bottom: inmediatamente antes de cada devolución de la función de destino.

funcname: nombre de la función de destino

Markid: un entero positivo (largo) que se usará como el identificador de la marca de perfil.
Coverage Realiza instrumentación de cobertura. Solo se puede usar con las siguientes opciones: Verbose, OutputPath, Exclude y Logfile.
Verbose La opción Verbose se utiliza para ver información detallada sobre el proceso de instrumentación.
NoWarn[:[Message Number[;Message Number]]] Suprime todas las advertencias o solo advertencias específicas.

Message Number: el número de advertencia. Si se omite Message Number, se suprimen todas las advertencias.

Para obtener más información, consulte Advertencias de VSInstr.
Control:{Thread | Process | Global} Especifica el nivel de generación de perfiles de las siguientes opciones de control de recopilación de datos de VSInstr:

Start

StartOnly

Suspend

StopOnly

SuspendOnly

ResumeOnly

Thread: especifica las funciones de control de recopilación de datos de nivel de subproceso. La generación de perfiles se inicia o detiene solo para el subproceso actual. El estado de generación de perfiles de otros subprocesos no se ve afectado. El valor predeterminado es thread.

Process: especifica las funciones de control de recopilación de datos de generación de perfiles de nivel de proceso. La generación de perfiles se inicia o se detiene en todos los subprocesos del proceso actual. No se ve afectado el estado de generación de perfiles de otros procesos.

Global: especifica las funciones de control de recopilación de datos de nivel global (entre procesos).

Se produce un error si no se especifica el nivel de generación de perfiles.
Start:{Inside | Outside},funcname Limita la recopilación de datos a la función de destino y las funciones secundarias a las que llama.

Inside: inserta la función StartProfile inmediatamente después de la entrada a la función de destino. Inserta la función StopProfile inmediatamente antes de cada devolución de la función de destino.

Outside: inserta la función StartProfile inmediatamente antes de cada llamada a la función de destino. Inserta la función StopProfile inmediatamente después de cada llamada a la función de destino.

funcname: el nombre de la función de destino.
Suspend:{Inside | Outside},funcname Excluye la recopilación de datos de la función de destino y las funciones secundarias a las que llama.

Inside: inserta la función SuspendProfile inmediatamente después de la entrada a la función de destino. Inserta la función ResumeProfile inmediatamente antes de cada devolución de la función de destino.

Outside: inserta la función SuspendProfile inmediatamente antes de la entrada a la función de destino. Inserta la función ResumeProfile inmediatamente después de cada salida de la función de destino.

funcname: el nombre de la función de destino.

Si la función de destino contiene una función StartProfile, la función SuspendProfile se inserta antes. Si la función de destino contiene una función StopProfile, la función ResumeProfile se inserta después.
StartOnly:{Before | After | Top | Bottom},funcname Comienza la recopilación de datos durante un proceso de generación de perfiles. Inserta la función de API StartProfile en la ubicación especificada.

Before: inmediatamente antes de la entrada de la función de destino.

After: inmediatamente después de la salida de la función de destino.

Top: inmediatamente después de la entrada de la función de destino.

Bottom: inmediatamente antes de cada devolución de la función de destino.

funcname: el nombre de la función de destino.
StopOnly: {Before|After|Top|Bottom},funcname Detiene la recopilación de datos durante un proceso de generación de perfiles. Inserta la función StopProfile en la ubicación especificada.

Before: inmediatamente antes de la entrada de la función de destino.

After: inmediatamente después de la salida de la función de destino.

Top: inmediatamente después de la entrada de la función de destino.

Bottom: inmediatamente antes de cada devolución de la función de destino.

funcname: el nombre de la función de destino.
SuspendOnly: {Before|After|Top|Bottom},funcname Detiene la recopilación de datos durante un proceso de generación de perfiles. Inserta la función de API SuspendProfile en la ubicación especificada.

Before: inmediatamente antes de la entrada de la función de destino.

After: inmediatamente después de la salida de la función de destino.

Top: inmediatamente después de la entrada de la función de destino.

Bottom: inmediatamente antes de cada devolución de la función de destino.

funcname: el nombre de la función de destino.

Si la función de destino contiene una función StartProfile, la función SuspendProfile se inserta antes.
ResumeOnly: {Before|After|Top|Bottom},funcname Comienza o reanuda la recopilación de datos durante un proceso de generación de perfiles.

Normalmente se utiliza para iniciar la generación de perfiles después de que una opción SuspendOnly haya dejado de generar perfiles. Inserta una API ResumeProfile en la ubicación especificada.

Before: inmediatamente antes de la entrada de la función de destino.

After: inmediatamente después de la salida de la función de destino.

Top: inmediatamente después de la entrada de la función de destino.

Bottom: inmediatamente antes de cada devolución de la función de destino.

funcname: el nombre de la función de destino.

Si la función de destino contiene una función StopProfile, la función ResumeProfile se inserta después.

Vea también