Поделиться через


VSInstr

Средство VSInstr используется для инструментирования двоичных файлов.При вызове этого средства используется следующий синтаксис:

VSInstr [/U] filename [/options]

Возможные параметры описываются параметры средства VSInstr.

Параметры

Описание

Help или ?

Выводит справку.

U

Запись перенаправленного вывода на консоль в кодировке Юникода.Этот параметр необходимо указывать первым.

@filename

Указание имени файла ответов, который содержит один параметр команды на строку. Не используйте кавычки.

OutputPath:path

Указание целевого каталога для инструментированного образа.Если путь целевого каталога не указывается, исходный двоичный файл переименовывается посредством добавления расширения "ORIG" к имени файла и сохраняется в том же каталоге. Инструментирование выполняется для копии двоичного файла.

Exclude:funcspec

Указание спецификации функции, которую требуется исключить из инструментирования посредством зондов.Этот параметр оказывается очень удобным, если вставка зондов профилирования в функцию приводит к непредсказуемым или нежелательным результатам.

Не используйте Exclude и Include, относящиеся к функциям в одном двоичном файле.

С помощью отдельных параметров Exclude можно указать несколько спецификаций функций.

funcspec определяется следующим образом:

[пространство_имен<разделитель1>] [класс<разделитель2>]функция

<разделитель1> — это :: для машинного кода и . для управляемого кода.

<разделитель2> — это всегда ::

Параметр Exclude поддерживается с покрытием кода.

Поддерживается подстановочный знак *.Например, чтобы исключить все функции в пространстве имен, используйте следующий синтаксис:

MyNamespace::*

С помощью команды VSInstr /DumpFuncs можно составить список функций в заданном двоичном файле.

Include:funcspec

Задание спецификации функции в двоичном файле, которую требуется инструментировать посредством зондов.Для всех других функций в двоичных файлах инструментирование не выполняется.

С помощью отдельных параметров Include можно указать несколько спецификаций функций.

Не используйте параметры Include и Exclude, относящиеся к функциям в одном двоичном файле.

Параметр Include не поддерживается с покрытием кода.

funcspec определяется следующим образом:

[пространство_имен<разделитель1>] [класс<разделитель2>]функция

<разделитель1> — это :: для машинного кода и . для управляемого кода.

<разделитель2> — это всегда ::

Поддерживается подстановочный знак *.Например, чтобы включить все функции в пространстве имен, используйте следующий синтаксис:

MyNamespace::*

С помощью команды VSInstr /DumpFuncs можно составить список функций в заданном двоичном файле.

DumpFuncs

Создает список функций в указанном образе.Инструментирование не выполняется.

ExcludeSmallFuncs

Исключает из инструментирования малые функции, то есть функции, которые не вызывают других функций.Параметр ExcludeSmallFuncs позволяет сократить временные затраты инструментирования и таким образом повысить скорость профилирования с инструментированием.

При исключении малых функции также уменьшается размер VSP-файла и время, необходимое для анализа данных.

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

Вставляет метку профилирования (идентификатор, используемый для разделения данных в отчете), которую можно использовать для определения начала и конца диапазона данных в VSP-файле отчета.

Before — непосредственно перед точкой входа целевой функции.

After— непосредственно после точки выхода целевой функции..

Top — непосредственно после точки входа целевой функции.

Bottom — непосредственно перед каждой точкой возврата из целевой функции.

funcname — имя целевой функции.

Markid — положительное целое число (типа long), используемое в качестве идентификатора метки профилирования.

Coverage

Выполняет инструментирование покрытия кода.Возможно, он может использоваться только со следующими параметрами: VerboseOutputPath, Exclude и Logfile.

Verbose

Параметр Verbose используется для просмотра подробных сведений о процессе инструментирования.

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

Не выводить все или указанные предупреждения.

Message Number — номер предупреждения.Если значение Message Number не указано, запрещается вывод всех предупреждений.

Для получения дополнительной информации см. Предупреждения средства VSInstr.

Control:{Thread|Process|Global}

Задает уровень профилирования для следующих параметров управления сбором данных VSInstr:

Start

StartOnly

Suspend

StopOnly

SuspendOnly

ResumeOnly

Thread — указывает для функций управления сбором данных уровень потока.Профилирование запускается и останавливается только для текущего потока.Состояние профилирования других потоков не изменяется."THREAD" является значением по умолчанию.

Process — указывает для функций управления сбором данных уровень процесса.Профилирование запускается и останавливается для всех потоков в текущем процессе.Состояние профилирования других процессов не изменяется.

Global — указывает для функций управления сбором данных глобальный уровень (межпроцессный).

Если уровень профилирования не задан, возникает ошибка.

Start:{Inside|Outside},funcname

Ограничивает собираемые данные целевой функцией и дочерними функциями, вызываемыми этой функцией.

Inside — функция StartProfile вставляется непосредственно после точки входа в целевую функцию.Функция StopProfile вставляется непосредственно перед каждой точкой передачи управления из целевой функции.

Outside — функция StartProfile вставляется непосредственно перед каждым вызовом целевой функции.Функция StopProfile вставляется непосредственно после каждого вызова целевой функции.

funcname — имя целевой функции.

Suspend:{Inside|Outside},funcname

Исключает сбор данных для целевой функции и дочерних функций, вызываемых этой функцией.

Inside — функция SuspendProfile вставляется непосредственно после точки входа в целевую функцию.Функция ResumeProfile вставляется непосредственно перед каждой точкой передачи управления из целевой функции.

Outside — функция SuspendProfile вставляется непосредственно перед точкой входа в целевую функцию.Функция ResumeProfile вставляется непосредственно после точки выхода из целевой функции.

funcname — имя целевой функции.

Если целевая функция содержит функцию StartProfile, функция SuspendProfile вставляется перед ней.Если целевая функция содержит функцию StopProfile, функция ResumeProfile вставляется после нее.

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

Начинает сбор данных в ходе сеанса профилирования.При этом в указанном расположении вставляется API-функция StartProfile.

Before — непосредственно перед точкой входа целевой функции.

After — непосредственно после точки выхода целевой функции.

Top— непосредственно после точки входа целевой функции.

Bottom — непосредственно перед каждой точкой возврата из целевой функции.

funcname — имя целевой функции.

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

Прекращает сбор данных в ходе сеанса профилирования.При этом в указанном расположении вставляется функция StopProfile.

Before — непосредственно перед точкой входа целевой функции.

After — непосредственно после точки выхода целевой функции.

Top— непосредственно после точки входа целевой функции.

Bottom — непосредственно перед каждой точкой возврата из целевой функции.

funcname — имя целевой функции.

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

Прекращает сбор данных в ходе сеанса профилирования.При этом в указанном расположении вставляется API-функция SuspendProfile.

Before — непосредственно перед точкой входа целевой функции.

After — непосредственно после точки выхода целевой функции.

Top— непосредственно после точки входа целевой функции.

Bottom — непосредственно перед каждой точкой возврата из целевой функции.

funcname — имя целевой функции.

Если целевая функция содержит функцию StartProfile, функция SuspendProfile вставляется перед ней.

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

Начинает или возобновляет сбор данных в ходе сеанса профилирования.

Обычно используется для возобновления профилирования после его приостановки с помощью параметра SuspendOnly.При этом в указанном расположении вставляется API-функция ResumeProfile.

Before — непосредственно перед точкой входа целевой функции.

After — непосредственно после точки выхода целевой функции.

Top— непосредственно после точки входа целевой функции.

Bottom — непосредственно перед каждой точкой возврата из целевой функции.

funcname — имя целевой функции.

Если целевая функция содержит функцию StopProfile, функция ResumeProfile вставляется после нее.

См. также

Ссылки

VSPerfMon

VSPerfCmd

VSPerfReport

Предупреждения средства VSInstr

Другие ресурсы

Представления отчетов средств профилирования