Compartir a través de


VSInstr

Actualización: noviembre 2007

La herramienta VSInstr se utiliza para instrumentar binarios. Se invoca utilizando la sintaxis siguiente:

VSInstr [/U] filename [/options]

La tabla siguiente describe las opciones de la herramienta VSInstr:

Opciones

Descripción

HELP O ?

Muestra la Ayuda.

U

La opción U escribe la salida de la consola redirigida como Unicode. Debe ser la primera opción especificada.

@filename

El archivo de respuesta debería tener una opción de comando por línea. No utilice comillas tipográficas.

OUTPUTPATH:path

Directorio de destino para la imagen instrumentada. Si no se especifica la ruta de los resultados, se cambia el nombre del archivo binario original agregándole "Orig" al final en el mismo directorio y se instrumenta una copia del archivo binario original.

CONTROL:{THREAD|PROCESS|GLOBAL}

La opción CONTROL se utiliza para especificar el nivel de generación de perfiles de las funciones de control de recolección de datos siguientes:

StartProfile

StopProfile

SuspendProfile

ResumeProfile

THREAD (especifica que las funciones de control de la recolección de datos se realizarán en el nivel de subproceso). Se inicia o se detiene la generación de perfiles únicamente para el subproceso actual. El estado de generación de perfiles de los demás subprocesos no se ve afectado. El valor predeterminado es thread.

PROCESS (especifica que las funciones de control de la recolección de datos de generación de perfiles se realizarán en el nivel de proceso). Se inicia o se detiene la generación de perfiles para todos los subprocesos del proceso actual. El estado de generación de perfiles de los demás procesos no se ve afectado.

GLOBAL (especifica que las funciones de control de la recolección de datos se realizarán en el nivel global (para todos los procesos)).

Se produce un error si no se especifica el nivel de generación de perfiles.

START:{INSIDE|OUTSIDE},funcname

La opción START se utiliza para limitar la recolección de datos a la función de destino y a las funciones secundarias a las que ésta 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 (nombre de la función de destino).

SUSPEND:{INSIDE|OUTSIDE},funcname

La opción SUSPEND se utiliza para excluir la recolección de datos para la función de destino y las funciones secundarias a las que ésta 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 la salida de la función de destino.

funcname (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 de ella. Si la función de destino contiene una función StopProfile, la función ResumeProfile se inserta después de ella.

STARTONLY:{BEFORE|AFTER|TOP|BOTTOM},funcname

La opción STARTONLY se utiliza para comenzar la recolección de datos durante una ejecución de generación de perfiles. Inserta la función 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 (nombre de la función de destino).

STOPONLY:{BEFORE|AFTER|TOP|BOTTOM},funcname

La opción STOPONLY se utiliza para detener la recolección de datos durante una ejecución 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 (nombre de la función de destino).

SUSPENDONLY:{BEFORE|AFTER|TOP|BOTTOM},funcname

La opción SUSPENDONLY se utiliza para detener la recolección de datos durante una ejecución de generación de perfiles. Inserta la 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 (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 de ella.

RESUMEONLY:{BEFORE|AFTER|TOP|BOTTOM},funcname

La opción RESUMEONLY se utiliza para iniciar o reanudar la recolección de datos durante una ejecución de generación de perfiles.

Normalmente se utiliza para iniciar la generación de perfiles cuando ésta se ha detenido mediante una opción SUSPENDONLY. 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 (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 de ella.

EXCLUDE:funcspec

La opción EXCLUDE indica una especificación de función para excluir del instrumental por rastreos. Resulta de gran utilidad cuando la inserción de análisis de perfiles en una función provoca un resultado imprevisto o no deseado.

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<separador1>] [class<separador2>]function

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

<separador2> siempre es ::

La opción EXCLUDE es compatible con cobertura de código.

Para excluir todas las funciones de un espacio de nombres se utiliza el carácter comodín:

MyNamespace::*

INCLUDE:funcspec

La opción INCLUDE define una especificación de función en un archivo binario para la instrumentación con análisis. No se instrumenta ninguna otra función de los binarios.

Puede especificar varias especificaciones de funciones con opciones INCLUDE independientes.

No utilice las opciones INCLUDE ni EXCLUDE que hagan referencia a funciones del mismo binario.

La opción INCLUDE no es compatible con cobertura de código.

funcspec se define como:

[namespace<separador1>] [class<separador2>]function

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

<separador2> siempre es ::

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 de EXCLUDESMALLFUNCS proporciona menos sobrecarga de instrumentación y, en consecuencia, mejora la velocidad de instrumentación.

La exclusión de las funciones pequeñas también reduce el tamaño del archivo .vsp y el tiempo requerido para el análisis.

MARK:{BEFORE|AFTER|TOP|BOTTOM},funcname,markid

La opción MARK inserta una función de la API MarkProfile en la entrada a la función de destino o a la salida. La API MarkProfile inserta una marca de perfil (un identificador que se utiliza para delimitar los datos de los informes) que se puede utilizar para identificar el inicio o el final del intervalo de datos del 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 (entero positivo (largo) para su uso como identificador de la marca de perfil).

COVERAGE

La opción COVERAGE realiza instrumentación de cobertura. Se puede combinar con la opción OUTPUTPATH.

VERBOSE

La opción VERBOSE se utiliza para ver información detallada sobre el proceso de instrumentación.

NOWARN[:[Message Number[;Message Number]]]

La opción NOWARN se utiliza para suprimir todas las advertencias o algunas en particular.

Message Number (número de la advertencia). Si se omite Message Number, se suprimen todas las advertencias.

Para obtener más información, vea Advertencias de VSInstr.

DUMPFUNCS

La opción DUMPFUNCS muestra las funciones dentro de la imagen especificada. No se realiza ninguna instrumentación.

Vea también

Referencia

VSPerfMon

VSPerfCmd

VSPerfReport

Advertencias de VSInstr

Definiciones de columnas de informes de las herramientas de generación de perfiles