The Pedigree Project
0.1
|
#include <instrument.h>
Public Types | |
typedef uintptr_t | lite |
For SFINAE expansion in data processing. | |
Public Attributes | |
struct { | |
uint32_t function | |
} | data |
uint8_t | buffer [sizeof(data)] |
LiteInstrumentationRecord only writes each entered function's address to the instrumentation stream, which can be a relatively significant improvement in performance.
This is done at the cost of flexibility (because there's no flags), and at the cost of integrity (because there's no magic number for verification).
Definition at line 60 of file instrument.h.
uint32_t LiteInstrumentationRecord::function |
The kernel is always going to have 32 one bits as the first part of the code addresses it works with, including module code. So, we can write even less data (improving performance) for lite records by simply writing the lower 32 bits of the address.
Definition at line 70 of file instrument.h.