Служба предназначена для профилирования и сбора покрытия кода, а также для получения значений счетчиков производительности.
Сведения о методах службы приведены в таблице ниже.
Метод
|
Назначение и параметры метода
|
Потенциальная опасность метода
|
GetCoverageData
|
Назначение
Позволяет получить сведения о покрытии кода.
Параметры
- [in]
index – индекс для перечисления объектных файлов, содержащих инструментированный код для получения сведений о покрытии. Нумерация начинается с нуля. - [out]
buf – последовательность, содержащая сведения о покрытии кода объектного файла (в формате gcda ). - [out]
size – размер данных, содержащих сведения о покрытии кода объектного файла, в байтах. - [out]
name – имя файла *.gcda , назначенное при компиляции. - [out]
rc – код возврата.
|
Нет.
|
FlushGcov
|
Назначение
Выводит сведения о покрытии кода в формате gcda через UART.
Параметры
|
Нет.
|
FlushGcovFile
|
Назначение
Выводит сведения о покрытии кода в формате gcda через UART.
Параметры
- [in]
name – имя файла *.gcda , назначенное при компиляции. - [in]
buf – указатель на буфер, содержащий сведения о покрытии кода в формате gcda . - [in]
size – размер данных, содержащих сведения о покрытии кода. - [out]
rc – код возврата.
|
Нет.
|
GetCounters
|
Назначение
Позволяет получить значения счетчиков производительности.
Параметры
- [in]
prefix – префикс для имен счетчиков производительности. - [in]
names – последовательность, содержащая имена счетчиков производительности. - [out]
values – последовательность, содержащая значения счетчиков производительности. - [out]
rc – код возврата.
|
Нет.
|
ObjectGetStat
|
Назначение
Позволяет получить значения счетчиков производительности для системного ресурса (процесса или потока исполнения).
Параметры
- [in]
handle – значение, двоичное представление которого состоит из нескольких полей, включая поле дескриптора и поле маски прав дескриптора. Дескриптор идентифицирует системный ресурс. - [in]
names – последовательность, содержащая имена счетчиков производительности. - [out]
values – последовательность, содержащая значения счетчиков производительности. - [out]
rc – код возврата.
|
Нет.
|
SamplingStart
|
Назначение
Запускает семплирующее профилирование кода.
Результатом семплирующего профилирования является статистика исполнения кода, которая отражает длительность исполнения участков кода.
Параметры
- [in]
conf – флаги, задающие параметры профилирования. - [in]
cpus – значение, задающее процессоры (вычислительные ядра) для профилирования. - [in]
contSize – размер контейнера для сохранения данных, содержащих статистику исполнения кода, полученную в результате профилирования, в байтах. Контейнер создается в памяти ядра автоматически. - [in]
interval – фиктивный параметр. - [out]
rc – код возврата.
|
Нет.
|
SamplingStop
|
Назначение
Останавливает семплирующее профилирование кода.
Параметры
|
Нет.
|
SamplingRead
|
Назначение
Позволяет получить данные, содержащие статистику исполнения кода, полученную в результате семплирующего профилирования.
Параметры
- [in]
unsafeBuffer – указатель на буфер для сохранения контейнера, содержащего статистику исполнения кода, полученную в результате профилирования. - [in]
size – размер буфера, указатель на который задан через параметр unsafeBuffer . - [out]
realSize – размер сохраненного контейнера. - [in]
timeout – время ожидания заполнения контейнера в миллисекундах. - [out]
rc – код возврата.
|
Позволяет получить адреса и имена функций других процессов.
|
SamplingAddPidToList
|
Назначение
Добавляет процесс в список профилируемых.
Параметры
- [in]
pid – идентификатор процесса (PID). - [out]
rc – код возврата.
|
Нет.
|
SamplingClearPidList
|
Назначение
Очищает список профилируемых процессов.
Параметры
|
Нет.
|
LoadSegInfo
|
Назначение
Сохраняет в ядре сведения о загружаемом сегменте ELF-образа. (Это требуется, чтобы статистика исполнения кода, полученная в результате семплирующего профилирования, содержала дополнительную информацию, которая позволяет ассоциировать эту статистику с исходным кодом.)
Параметры
- [in]
task – значение, двоичное представление которого состоит из нескольких полей, включая поле дескриптора и поле маски прав дескриптора. Дескриптор идентифицирует процесс. - [in]
addr – адрес сегмента в памяти процесса. - [in]
size – размер сегмента в байтах. - [in]
offset – смещение сегмента в файле ELF в байтах. - [in]
flags – флаги, задающие права доступа к сегменту. - [in]
buildId – идентификатор сборки. Компоновщик записывает этот идентификатор в файл ELF. - [out]
rc – код возврата.
|
Позволяет исчерпать память ядра, создавая в ней множество объектов.
|
UnloadSegInfo
|
Назначение
Удаляет сведения о загружаемом сегменте ELF-образа, сохраненные в ядре методом LoadSegInfo .
Параметры
- [in]
task – значение, двоичное представление которого состоит из нескольких полей, включая поле дескриптора и поле маски прав дескриптора. Дескриптор идентифицирует процесс. - [in]
addr – адрес сегмента в памяти процесса. - [in]
size – размер сегмента в байтах. - [out]
rc – код возврата.
|
Нет.
|
KcovAlloc
|
Назначение
Выделяет ресурсы, требуемые для сбора покрытия кода ядра, который осуществляется при обработке системных вызовов, выполняемых вызывающим процессом.
Параметры
- [in]
numThreads – максимальное число потоков исполнения, для которых будет выполняться сбор покрытия. - [in]
maxPoints – максимальное число точек покрытия для одного потока исполнения. - [out]
rc – код возврата.
|
Позволяет исчерпать оперативную память.
|
KcovFree
|
Назначение
Освобождает ресурсы, требуемые для сбора покрытия кода ядра, который осуществляется при обработке системных вызовов, выполняемых вызывающим процессом.
Параметры
|
Нет.
|
KcovStart
|
Назначение
Запускает сбор покрытия кода ядра, который осуществляется при обработке системных вызовов, выполняемых вызывающим потоком исполнения.
Параметры
|
Нет.
|
KcovStop
|
Назначение
Останавливает сбор покрытия кода ядра, который осуществляется при обработке системных вызовов, выполняемых вызывающим потоком исполнения. Также позволяет получить сведения о покрытии кода ядра.
Параметры
- [in]
points – указатель на буфер для сохранения сведений о покрытии кода ядра. - [in]
maxPoints – максимальное число точек покрытия, которые можно сохранить в буфере, заданном через параметр points . - [out]
numPoints – фактическое число точек покрытия, сохраненных в буфере, заданном через параметр points . - [out]
rc – код возврата.
|
Нет.
|