KasperskyOS Community Edition 1.3

Служба профилирования

Служба предназначена для профилирования и сбора покрытия кода, а также для получения значений счетчиков производительности.

Сведения о методах службы приведены в таблице ниже.

Методы службы profiler.Profiler (интерфейс kl.core.Profiler)

Метод

Назначение и параметры метода

Потенциальная опасность метода

GetCoverageData

Назначение

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

Параметры

  • [in] index – индекс для перечисления объектных файлов, содержащих инструментальный код для получения сведений о покрытии. Нумерация начинается с нуля.
  • [out] buf – последовательность, содержащая сведения о покрытии кода объектного файла (в формате gcda).
  • [out] size – размер данных, содержащих сведения о покрытии кода объектного файла, в байтах.
  • [out] name – имя файла *.gcda, назначенное при компиляции.
  • [out] rc – код возврата.

Нет.

FlushGcov

Назначение

Выводит сведения о покрытии кода ядра в формате gcda через интерфейс ввода-вывода (например, COM, USB).

Параметры

  • [out] rc – код возврата.

Нет.

FlushGcovFile

Назначение

Выводит сведения о покрытии пользовательского кода в формате gcda через интерфейс ввода-вывода (например, COM, USB).

Параметры

  • [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

Назначение

Останавливает семплирующее профилирование кода.

Параметры

  • [out] rc – код возврата.

Нет.

SamplingRead

Назначение

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

Параметры

  • [in] unsafeBuffer – указатель на буфер для сохранения данных, содержащих статистику исполнения кода, полученную в результате профилирования.
  • [in] size – размер буфера, указатель на который задан через параметр unsafeBuffer, в байтах.
  • [out] realSize – размер сохраненных данных в байтах.
  • [in] timeout – время ожидания заполнения контейнеров в миллисекундах.
  • [out] rc – код возврата.

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

SamplingAddPidToList

Назначение

Добавляет процесс в набор процессов, в контекстах которых исполняются программы, подлежащие семплирующему профилированию.

Параметры

  • [in] pid – идентификатор процесса (PID).
  • [out] rc – код возврата.

Нет.

SamplingClearPidList

Назначение

Очищает набор процессов, в контекстах которых исполняются программы, подлежащие семплирующему профилированию.

Параметры

  • [out] rc – код возврата.

Нет.

LoadSegInfo

Назначение

Сохраняет в ядре сведения о загружаемом сегменте ELF-образа.

Параметры

  • [in] task – значение, двоичное представление которого состоит из нескольких полей, включая поле дескриптора и поле маски прав дескриптора. Дескриптор идентифицирует процесс.
  • [in] addr – адрес сегмента в памяти процесса.
  • [in] size – размер сегмента в байтах.
  • [in] offset – смещение сегмента в файле ELF в байтах.
  • [in] flags – флаги, задающие права доступа к сегменту.
  • [in] buildId – идентификатор сборки.
  • [out] rc – код возврата.

Позволяет исчерпать память ядра, создавая в ней множество объектов.

UnloadSegInfo

Назначение

Удаляет сведения о загружаемом сегменте ELF-образа, сохраненные в ядре методом LoadSegInfo.

Параметры

  • [in] task – значение, двоичное представление которого состоит из нескольких полей, включая поле дескриптора и поле маски прав дескриптора. Дескриптор идентифицирует процесс.
  • [in] addr – адрес сегмента в памяти процесса.
  • [in] size – размер сегмента в байтах.
  • [out] rc – код возврата.

Нет.

KcovAlloc

Назначение

Выделяет ресурсы, требуемые для сбора покрытия кода ядра, который осуществляется при обработке системных вызовов, выполняемых вызывающим процессом.

Параметры

  • [in] numThreads – максимальное число потоков, при исполнении которых будет осуществляться сбор покрытия кода ядра.
  • [in] maxPoints – максимальное число точек покрытия для одного потока исполнения.
  • [out] rc – код возврата.

Позволяет исчерпать оперативную память.

KcovFree

Назначение

Освобождает ресурсы, требуемые для сбора покрытия кода ядра, который осуществляется при обработке системных вызовов, выполняемых вызывающим процессом.

Параметры

  • [out] rc – код возврата.

Нет.

KcovStart

Назначение

Запускает сбор покрытия кода ядра, который осуществляется при обработке системных вызовов, выполняемых вызывающим потоком исполнения.

Параметры

  • [out] rc – код возврата.

Нет.

KcovStop

Назначение

Останавливает сбор покрытия кода ядра, который осуществляется при обработке системных вызовов, выполняемых вызывающим потоком исполнения. Также позволяет получить сведения о покрытии кода ядра.

Параметры

  • [in] points – указатель на буфер для сохранения идентификаторов точек покрытия.
  • [in] maxPoints – максимальное число идентификаторов точек покрытия, которые можно сохранить в буфере, заданном через параметр points.
  • [out] numPoints – фактическое число идентификаторов точек покрытия, сохраненных в буфере, заданном через параметр points.
  • [out] rc – код возврата.

Нет.