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


VSInstr

Обновлен: Ноябрь 2007

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

VSInstr [/U] filename [/options]

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

Параметры

Описание

HELP или ?

Отображение справки.

U

С помощью параметра "U" перенаправленный вывод на консоль записывается в кодировке Юникода. Этот параметр необходимо указывать первым.

@filename

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

OUTPUTPATH:path

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

CONTROL:{THREAD|PROCESS|GLOBAL}

Параметр CONTROL используется для указания уровня профилирования для следующих функций управления сбором данных:

StartProfile

StopProfile

SuspendProfile

ResumeProfile

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

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

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

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

START:{INSIDE|OUTSIDE},funcname

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

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

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

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

SUSPEND:{INSIDE|OUTSIDE},funcname

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Параметр RESUMEONLY используется для начала или возобновления сбора данных во время сеанса профилирования.

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

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

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

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

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

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

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

EXCLUDE:funcspec

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

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

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

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

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

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

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

Для параметра EXCLUDE можно использовать покрытие кода.

Чтобы исключить все функции в пространстве имен, используйте подстановочный знак:

MyNamespace::*

INCLUDE:funcspec

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

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

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

Для параметра INCLUDE покрытие кода не поддерживается.

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

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

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

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

EXCLUDESMALLFUNCS

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

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

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

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

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

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

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

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

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

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

COVERAGE

С помощью параметра COVERAGE выполняется инструментирование покрытия кода. Его можно использовать в сочетании с параметром OUTPUTPATH.

VERBOSE

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

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

Параметр NOWARN используется для запрета вывода всех или некоторых предупреждений.

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

Дополнительные сведения см. в разделе Предупреждения средства VSInstr.

DUMPFUNCS

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

См. также

Ссылки

VSPerfMon

VSPerfCmd

VSPerfReport

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

Определения столбцов отчета средств профилирования