Compartilhar via


VSInstr

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

VSInstr [/U] filename [/options]

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

Opções Descrição
Ajuda ou ? Exibe a ajuda.
U Grava a saída redirecionada do console como Unicode. Deve ser a primeira opção especificada.
@filename Especifica o nome de um arquivo de resposta que contém uma opção de comando por linha. Não use aspas.
Caminho de saída :path Especifica um diretório de destino para a imagem instrumentada. Se um caminho de saída não for especificado, o binário original será renomeado acrescentando "Orig" ao nome do arquivo no mesmo diretório e uma cópia do binário será instrumentada.
Excluir: funcspec Determina uma especificação de função a ser excluída da instrumentação por testes. É útil quando a entrada de teste de criação de perfil em uma função causa resultados imprevisíveis ou indesejados.

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

Você pode determinar várias especificações de função com opções Exclude separadas.

funcspec é definida como:

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

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

<separator2> é sempre ::

Exclude tem suporte com a cobertura de código.

Há suporte para o caractere curinga *. Por exemplo, para excluir todas as funções em um namespace, use:

MyNamespace::*

Você pode usar VSInstr /DumpFuncs para listar os nomes completos de funções no binário especificado.
Incluir: funcspec Determina 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 determinar várias especificações de função com opções Include separadas.

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

Não há suporte para Include com cobertura de código.

funcspec é definida como:

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

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

<separator2> é sempre ::

Há suporte para o caractere curinga *. Por exemplo, para incluir todas as funções em um namespace, use:

MyNamespace::*

Você pode usar VSInstr /DumpFuncs para listar os nomes completos de funções no binário especificado.
DumpFuncs Lista as funções dentro da imagem especificada. Nenhuma instrumentação é executada.
ExcludeSmallFuncs Exclui funções pequenas, que são funções curtas que não fazem chamadas de função, da instrumentação. A opção ExcludeSmallFuncs oferece menos sobrecarga devido à instrumentação, portanto, uma velocidade de instrumentação aprimorada.

A exclusão de funções pequenas também reduz o tamanho do arquivo .vsp e o tempo necessário para análise.
Marca:{Antes|Depois|Superior|Inferior},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 término de um intervalo de dados no arquivo de relatório. vsp.

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

After – Imediatamente depois da saída da função de destino.

Top – Imediatamente depois da entrada da 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 (longo) para usar como o identificador da marca de perfil.
Cobertura Executa a instrumentação de cobertura. Ele pode ser usado apenas com as seguintes opções: Verbose, OutputPath, Exclude e Logfile.
Detalhado A opção Verbose é usada para exibir informações detalhadas sobre o processo de instrumentação.
NãoAvisar [:[Message Number[;Message Number]]] Suprime todos os avisos ou avisos específicos.

Message Number – o número o aviso. Se Message Number for omitido, todos os avisos serão suprimidos.

Para obter mais informações, consulte Avisos VSInstr.
Controle: { Processo | de thread global | } Especifica o nível de criação de perfil das seguintes opções de controle de coleta de dados VSInstr:

Iniciar

StartOnly

Suspend

StopOnly

SuspendOnly

ResumeOnly

Thread – Especifica as funções de controle da coleta de dados de nível de thread. A criação de perfil é iniciada ou interrompida somente para o thread atual. O estado da criação de perfil de outros threads não é afetado. O padrão é thread.

Process – Especifica as funções de controle da coleta de dados da criação de perfil em nível de processo. A criação de perfil é iniciada ou interrompida para todos os threads no processo atual. O estado da criação de perfil de outros processos não é afetado.

Global – Especifica as funções de controle de coleta de dados em nível global (processo cruzado).

Se você não especificar o nível de criação de perfil, ocorrerá um erro.
Início: { Dentro Fora | },funcname Limita a coleta de dados à função de destino e a funções filho chamadas por essa função.

Inside – Insere a função StartProfile imediatamente após a entrada na 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 à função de destino. Insere a função StopProfile imediatamente depois de cada chamada à função de destino.

funcname – o nome da função de destino.
Suspender: { Dentro | Fora },funcname Exclui a coleta de dados da função de destino e das funções filho chamadas por essa função.

Inside – Insere a função SuspendProfile imediatamente após a entrada na 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 na função de destino. Insere a função ResumeProfile imediatamente antes da entrada da função de destino.

funcname – nome da função de destino.

Se a função de destino contiver uma função StartProfile, a função SuspendProfile será inserida antes dela. Se a função de destino contiver uma função StopProfile, a função ResumeProfile será inserida depois dela.
StartOnly: { Antes | Depois | de Superior Inferior | },funcname Inicia a coleta de dados durante uma execução de criação de perfil. Insere a função API StartProfile no local especificado.

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

After – imediatamente depois da saída da função de destino.

Top – imediatamente depois da entrada da função de destino.

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

funcname – nome da função de destino.
StopOnly:{Before|After|Top|Bottom},funcname Para a coleta de dados durante uma execução de criação de perfil. Insere a função StopProfile no local especificado.

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

After – imediatamente depois da saída da função de destino.

Top – imediatamente depois da entrada da função de destino.

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

funcname – nome da função de destino.
SuspendOnly:{Before|After|Top|Bottom},funcname Para a coleta de dados durante uma execução de criação de perfil. Insere a API SuspendProfile no local especificado.

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

After – imediatamente depois da saída da função de destino.

Top – imediatamente depois da entrada da função de destino.

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

funcname – nome da função de destino.

Se a função de destino contiver uma função StartProfile, a função SuspendProfile será inserida antes dela.
ResumeOnly:{Before|After|Top|Bottom},funcname Inicia ou retoma a coleta de dados durante uma execução de criação de perfil.

Geralmente é usado para iniciar a criação de perfil depois que uma opção SuspendOnly interrompe a criação de perfil. Insere a API ResumeProfile no local especificado.

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

After – imediatamente depois da saída da função de destino.

Top – imediatamente depois da entrada da função de destino.

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

funcname – nome da função de destino.

Se a função de destino contiver uma função StopProfile, a função ResumeProfile será inserida depois dela.

Confira também