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 используется для отображения функций в указанном образе. Инструментирование не выполняется. |