Compartir a través de


VSInstr

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

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 comillas tipográficas.

OutputPath:path

Especifica un 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.

Exclude:funcspec

Especifica una especificación de función para excluirla de la instrumentación por sondeos. 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 ::

Exclude se admite 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 utilizar VSInstr /DumpFuncs para enumerar los nombres completos de funciones en el binario especificado.

Include:funcspec

Define una especificación de función en un binario para la instrumentación con sondeos. No se instrumenta ninguna otra función de los binarios.

Puede definir varias especificaciones de funciones con opciones Include independientes.

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

Include no se admite 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 ::

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

MyNamespace::*

Puede utilizar VSInstr /DumpFuncs para enumerar los nombres completos de funciones en el binario especificado.

DumpFuncs

Enumera las funciones dentro de 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, 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

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 de un 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

Realiza instrumentación de cobertura. Solo se puede utilizar 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 específicas.

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.

Control:{Thread|Process|Global}

Especifica el nivel de generación de perfiles de las opciones de control de recolección de datos de VSInstr siguientes:

Start

StartOnly

Suspend

StopOnly

SuspendOnly

ResumeOnly

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

Limita la recolección de datos a la función de destino y a las funciones secundarias a las que esta función 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

Excluye la recolección de datos para la función de destino y las funciones secundarias invocadas por la función.

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

Comienza la recolección de datos durante una 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

Detiene la recolección de datos durante una 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

Detiene la recolección de datos durante una 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

Comienza o reanuda la recolección de datos durante una generación de perfiles.

Normalmente se utiliza para iniciar la generación de perfiles después de que una opción SuspendOnly la haya detenido. 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.

Vea también

Referencia

VSPerfMon

VSPerfCmd

VSPerfReport

Advertencias de VSInstr

Otros recursos

Vistas de informes de las herramientas de generación de perfiles