VSInstr

A ferramenta VSInstr é usada para instrumentar binários. Ele é chamado usando a seguinte sintaxe:

VSInstr [/U] filename [/options]

A tabela a seguir descreve as opções da ferramenta VSInstr:

Opções

Descrição

Helpou?

Exibe ajuda.

U

Grava a saída redirecionada do console como Unicode. Ele deve ser a primeira opção especificada.

@filename

Especifica o nome de um arquivo de resposta que contém uma opção por linha de comando. Não use aspas.

OutputPath:path

Especifica um diretório de destino para a imagem instrumentada. Se o caminho de saída não for especificado, o binário original é renomeado acrescentando "orig" o arquivo de nome no mesmo diretório e uma cópia do binário é instrumentado.

Exclude:funcspec

Especifica uma especificação de função exclude from instrumentation por testes. Ela é útil quando a inserção de investigação no profiling em uma função causa resultados imprevisíveis ou indesejados.

Não use Exclude e Include opções que se referem às funções no mesmo binário.

Você pode especificar múltiplas especificações de função com separada Exclude Opções.

funcspecé definida como:

[namespace <separator1>] função de [class <separator2>]

<separator1> é :: para código nativo, e . para código gerenciado.

<separator2> é sempre::

Excludeé compatível com a cobertura de código.

O caractere curinga * é suportada. Por exemplo, para excluir todas as funções em um namespace, use:

MyNamespace:: *

Você pode usar VSInstr /DumpFuncs para listar os nomes completos das funções no binário especificado.

Include:funcspec

Especifica uma especificação de função em um binário para instrumentar com testes. Todas as outras funções nos binários não são instrumentadas.

Você pode especificar várias especificações de função com separada Include Opções.

Não use Include e Exclude opções que se referem às funções no mesmo binário.

Includenão é suportada com cobertura de código.

funcspecé definida como:

[namespace <separator1>] função de [class <separator2>]

<separator1> é :: para código nativo, e . para código gerenciado.

<separator2> é sempre::

O caractere curinga * é suportada. Por exemplo, para incluir todas as funções em um uso de namespace:

MyNamespace:: *

Você pode usar VSInstr /DumpFuncs para listar os nomes completos das funções no binário especificado.

DumpFuncs

Lista as funções dentro da imagem especificada. Nenhuma instrumentação é executada.

ExcludeSmallFuncs

Exclui as funções de pequenas, que são funções curtas que não faça quaisquer chamadas de função de instrumentação. O ExcludeSmallFuncs opção fornece menos sobrecarga de instrumentação de uma velocidade de instrumentação, portanto, melhor.

A exclusão de pequenas funções também reduz o tamanho do arquivo. vsp e o tempo necessário para análise.

Mark:{Before|After|Top|Bottom},funcname,markid

Insere uma marca de perfil (um identificador usado para delimitar os dados em relatórios) que você pode usar para identificar o início ou fim de um intervalo de dados no arquivo de relatório. vsp.

Before-Imediatamente antes da entrada da função de destino.

After-Imediatamente após a saída de função de destino.

Top-Imediatamente após a entrada de função de destino.

Bottom-Imediatamente antes de cada retorno na função de destino.

funcname-Nome da função de destino

Markid-Um inteiro positivo (long) para usar como o identificador do perfil da marca.

Coverage

Executa a instrumentação de cobertura. Ele pode ser que pode ser usado somente com as seguintes opções: Verbose, OutputPath, Excluir, e arquivo de log..

Verbose

O Verboseopção é usada para exibir informações detalhadas sobre o processo de instrumentação.

NoWarn[:[Message Number[;Message Number]]]

Suprimir todos ou avisos específicos.

Message Number-o número de aviso. Se Message Number é omitido, todos os avisos são suprimidos.

Para obter mais informações, consulte Avisos VSInstr.

Control:{Thread|Process|Global}

Especifica o nível de profiling da coleta de dados VSInstr seguinte opções de controle:

Start

StartOnly

Suspend

StopOnly

SuspendOnly

ResumeOnly

Thread-Especifica as funções de controle de coleta de dados de nível de thread. O profiling é iniciado ou interrompido somente para o segmento atual. O estado do profiling de outros segmentos não é afetado. O padrão é o segmento.

Process-Especifica o nível de processo da função de controle da coleta de dados. O profiling inicia ou para para todos os segmentos no processo atual. O estado do profiling de outros processos não é afetado.

Global-Especifica as funções de controle de coleta de dados de nível global (processo cruzada).

Um erro ocorrerá se você não especificar o nível do profiling.

Start:{Inside|Outside},funcname

Limita a coleta de dados para a função de destino e funções filho chamadas por essa função.

Inside-Insere a função StartProfile imediatamente após a entrada para a função de destino. Insere a função StopProfile imediatamente antes de cada retorno na função de destino.

Outside-Insere a função StartProfile imediatamente antes de cada chamada para a função de destino. Insere a função StopProfile imediatamente após cada chamada para a função de destino.

funcname-o nome da função destino.

Suspend:{Inside|Outside},funcname

Exclui a coleta de dados para a função de destino e funções filho chamadas pela função.

Inside-Insere a função SuspendProfile imediatamente após a entrada para a função de destino. Insere a função ResumeProfile imediatamente antes de cada retorno na função de destino.

Outside-Insere a função SuspendProfile imediatamente antes da entrada para a função de destino. Insere a função ResumeProfile imediatamente após a saída da função de destino.

funcname-nome da função destino.

Se a função destino contém uma função StartProfile, a função SuspendProfile será inserida antes desta. Se a função destino contém uma função StopProfile, a função ResumeProfile será inserida depois desta.

StartOnly:{Before|After|Top|Bottom},funcname

Começa a coleta de dados durante a execução de profiling. Ela insere a função API StartProfile no local especificado.

Before-imediatamente antes da entrada da função de destino.

After-imediatamente após a saída da função de destino.

Top-imediatamente após a entrada da função de destino.

Bottom-imediatamente antes de cada retorno na função de destino.

funcname-nome da função destino.

StopOnly:{Before|After|Top|Bottom},funcname

Interrompe a coleta de dados durante a execução de profiling. Ela insere a função StopProfile no local especificado.

Before-imediatamente antes da entrada da função de destino.

After-imediatamente após a saída da função de destino.

Top-imediatamente após a entrada da função de destino.

Bottom-imediatamente antes de cada retorno na função de destino.

funcname-nome da função destino.

SuspendOnly:{Before|After|Top|Bottom},funcname

Interrompe a coleta de dados durante a execução de profiling. Ele insere a API SuspendProfile no local especificado.

Before-imediatamente antes da entrada da função de destino.

After-imediatamente após a saída da função de destino.

Top-imediatamente após a entrada da função de destino.

Bottom-imediatamente antes de cada retorno na função de destino.

funcname-nome da função destino.

Se a função destino contém uma função StartProfile, a função SuspendProfile será inserida antes desta.

ResumeOnly:{Before|After|Top|Bottom},funcname

Inicia ou reinicia a coleta de dados durante a execução de profiling.

Ele é normalmente usado para iniciar um profiling após um SuspendOnly opção interromper o profiling. Ela insere uma API ResumeProfile no local especificado.

Before-imediatamente antes da entrada da função de destino.

After-imediatamente após a saída da função de destino.

Top-imediatamente após a entrada da função de destino.

Bottom-imediatamente antes de cada retorno na função de destino.

funcname-nome da função destino.

Se a função destino contém uma função StopProfile, a função ResumeProfile será inserida depois desta.

Consulte também

Referência

VSPerfMon

VSPerfCmd

VSPerfReport

Avisos VSInstr

Outros recursos

Exibições de relatório de ferramentas de criação de perfil