This endpoint is intended for profiling and collecting code coverage, and for receiving the values of performance counters.
Information about methods of the endpoint is provided in the table below.
Method
|
Method purpose and parameters
|
Potential danger of the method
|
GetCoverageData
|
Purpose
Gets information about code coverage.
Parameters
- [in]
index – index for enumerating object files containing instrumented code for receiving coverage data. Enumeration starts with zero. - [out]
buf – sequence containing information about the code coverage of an object file (in gcda format). - [out]
size – size (in bytes) of data containing information about the code coverage of an object file. - [out]
name – name of the *.gcda file that was assigned during compilation. - [out]
rc – return code.
|
N/A
|
FlushGcov
|
Purpose
Output of data on code coverage in gcda format via UART.
Parameters
|
N/A
|
FlushGcovFile
|
Purpose
Output of data on code coverage in gcda format via UART.
Parameters
- [in]
name – name of the *.gcda file that was assigned during compilation. - [in]
buf – pointer to the buffer containing information about code coverage in gcda format. - [in]
size – size of data containing code coverage information. - [out]
rc – return code.
|
N/A
|
GetCounters
|
Purpose
Gets the values of performance counters.
Parameters
- [in]
prefix – prefix for names of performance counters. - [in]
names – sequence containing the names of performance counters. - [out]
values – sequence containing the values of performance counters. - [out]
rc – return code.
|
N/A
|
ObjectGetStat
|
Purpose
Gets the values of performance counters for a system resource (process or thread).
Parameters
- [in]
handle – value whose binary representation consists of multiple fields, including a handle field and a handle permissions mask field. The handle identifies the system resource. - [in]
names – sequence containing the names of performance counters. - [out]
values – sequence containing the values of performance counters. - [out]
rc – return code.
|
N/A
|
SamplingStart
|
Purpose
Starts sample code profiling.
Sample profiling results in code execution statistics that reflect the duration of code section execution.
Parameters
- [in]
conf —flags that define the profiling settings. - [in]
cpus – value defining the CPUs (processor cores) for profiling. - [in]
contSize – size (in bytes) of the container used to store data containing the code execution statistics obtained from profiling. The container is automatically created in the kernel memory. - [in]
interval – fictitious parameter. - [out]
rc – return code.
|
N/A
|
SamplingStop
|
Purpose
Stops sample code profiling.
Parameters
|
N/A
|
SamplingRead
|
Purpose
Gets data containing the code execution statistics received from sample profiling.
Parameters
- [in]
unsafeBuffer – pointer to the buffer used to save the container storing the code execution statistics obtained from profiling. - [in]
size – size of the buffer whose pointer is defined through the unsafeBuffer parameter. - [out]
realSize – size of the saved container. - [in]
timeout – container filling timeout (in milliseconds). - [out]
rc – return code.
|
Gets the addresses and names of functions of other processes.
|
SamplingAddPidToList
|
Purpose
Adds a process to the list of profiled processes.
Parameters
- [in]
pid – process ID (PID). - [out]
rc – return code.
|
N/A
|
SamplingClearPidList
|
Purpose
Clears the list of profiled processes.
Parameters
|
N/A
|
LoadSegInfo
|
Purpose
Saves information about the loaded ELF image segment in the kernel. (This is necessary so that the code execution statistics received from sample profiling can contain additional information that lets you associate these statistics with the source code.)
Parameters
- [in]
task – value whose binary representation consists of multiple fields, including a handle field and a handle permissions mask field. The handle identifies the process. - [in]
addr – segment address in process memory. - [in]
size – segment size (in bytes). - [in]
offset – offset of the segment in the ELF file (in bytes). - [in]
flags – flags defining the access rights to the segment. - [in]
buildId – build ID. The linker writes this ID to the ELF file. - [out]
rc – return code.
|
Allows the kernel memory to be used up by creating a multitude of objects within it.
|
UnloadSegInfo
|
Purpose
Deletes information about the loaded ELF image segment that was saved in the kernel using the LoadSegInfo method.
Parameters
- [in]
task – value whose binary representation consists of multiple fields, including a handle field and a handle permissions mask field. The handle identifies the process. - [in]
addr – segment address in process memory. - [in]
size – segment size (in bytes). - [out]
rc – return code.
|
N/A
|
KcovAlloc
|
Purpose
Allocates the resources required for collecting kernel code coverage data when handling system calls executed by the calling process.
Parameters
- [in]
numThreads —maximum number of threads for which code coverage data will be collected. - [in]
maxPoints —maximum number of coverage points for one thread. - [out]
rc – return code.
|
Exhausts RAM.
|
KcovFree
|
Purpose
Frees the resources required for collecting kernel code coverage data when handling system calls executed by the calling process.
Parameters
|
N/A
|
KcovStart
|
Purpose
Starts the collection of kernel code coverage data when handling system calls executed by the calling thread.
Parameters
|
N/A
|
KcovStop
|
Purpose
Stops the collection of kernel code coverage data when handling system calls executed by the calling thread. Also gets information about kernel code coverage.
Parameters
- [in]
points —pointer to the buffer used to store kernel code coverage data. - [in]
maxPoints —maximum number of coverage points that can be stored in the buffer defined via the points parameter. - [out]
numPoints —actual number of coverage points stored in the buffer defined via the points parameter. - [out]
rc – return code.
|
N/A
|