VSInstr
Средство VSInstr используется для инструментирования двоичных файлов. Для его вызова используется следующий синтаксис:
VSInstr [/U] filename [/options]
В приведенной ниже таблице описываются параметры средства VSInstr.
Параметры | Description |
---|---|
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), используемое в качестве идентификатора метки профилирования. |
Покрытие | Выполняет инструментирование покрытия кода. Его можно использовать только с помощью следующих параметров: Verbose, OutputPath, Exclude и Logfile. |
Подробный | Параметр Verbose используется для просмотра подробных сведений о процессе инструментирования. |
NoWarn [:[Message Number[;Message Number]]] |
Не выводить все или указанные предупреждения.Message Number — номер предупреждения. Если значение Message Number не указано, запрещается вывод всех предупреждений.Дополнительные сведения см. в разделе Предупреждения средства VSInstr. |
Элемент управления: { глобальный процесс потоков | | } |
Задает уровень профилирования для следующих параметров управления сбором данных VSInstr: Начало StartOnly Приостановить StopOnly SuspendOnly ResumeOnly Thread — указывает для функций управления сбором данных уровень потока. Профилирование запускается и останавливается только для текущего потока. Состояние профилирования других потоков не изменяется. THREAD является значением по умолчанию. Process — указывает для функций управления сбором данных уровень процесса. Профилирование запускается и останавливается для всех потоков в текущем процессе. Состояние профилирования других процессов не изменяется. Global — указывает для функций управления сбором данных глобальный уровень (межпроцессный). Если уровень профилирования не задан, возникает ошибка. |
Начало: внутри | { },funcname |
Ограничивает собираемые данные целевой функцией и дочерними функциями, вызываемыми этой функцией. Inside — функция StartProfile вставляется непосредственно после точки входа в целевую функцию. Функция StopProfile вставляется непосредственно перед каждой точкой передачи управления из целевой функции. Outside — функция StartProfile вставляется непосредственно перед каждым вызовом целевой функции. Функция StopProfile вставляется непосредственно после каждого вызова целевой функции. funcname — имя целевой функции. |
Приостановка: внутри | { },funcname |
Исключает сбор данных для целевой функции и дочерних функций, вызываемых этой функцией. Inside — функция SuspendProfile вставляется непосредственно после точки входа в целевую функцию. Функция ResumeProfile вставляется непосредственно перед каждой точкой передачи управления из целевой функции. Outside — функция SuspendProfile вставляется непосредственно перед точкой входа в целевую функцию. Функция ResumeProfile вставляется непосредственно после точки выхода из целевой функции. funcname — имя целевой функции.Если целевая функция содержит функцию StartProfile, функция SuspendProfile вставляется перед ней. Если целевая функция содержит функцию StopProfile, функция ResumeProfile вставляется после нее. |
StartOnly: { До после | | верхней нижней части | },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 вставляется после нее. |