PROTOCOLS
Sampler
Defined in fuchsia.memory.sampler/sampler.fidl
Interface used to exfiltrate process allocation information.
RecordAllocation
Request
| Name | Type |
|---|---|
payload |
RecordAllocationEvent
|
RecordDeallocation
Request
| Name | Type |
|---|---|
payload |
RecordDeallocationEvent
|
SetProcessInfo
Communicate relevant process information to facilitate symbolization.
Request
| Name | Type |
|---|---|
payload |
SamplerSetProcessInfoRequest
|
SetSharedSocket
Provide a socket for sending allocation records.
Request
| Name | Type |
|---|---|
socket |
handle<socket>
|
TABLES
ExecutableSegment
Defined in fuchsia.memory.sampler/sampler.fidl
Address region that corresponds to an executable segment in an ELF module.
| Ordinal | Field | Type | Description |
|---|---|---|---|
1 |
start_address |
uint64
|
Start of the region as mapped in memory. |
2 |
size |
uint64
|
Size of the range of addresses that are part of the region. |
3 |
relative_address |
uint64
|
Offset of the region in the ELF binary before loading. |
ModuleMap
Defined in fuchsia.memory.sampler/sampler.fidl
Information necessary for the symbolization of a module. Represents the subset of an ELF module relevant for the purposes of the profiler. The main use case for this map is the symbolization of stack traces.
| Ordinal | Field | Type | Description |
|---|---|---|---|
1 |
build_id |
vector<uint8>:20
|
Build ID, a string which uniquely identifies a module build. |
2 |
executable_segments |
vector<ExecutableSegment>
|
Collection of executable segments. |
RecordAllocationEvent
Defined in fuchsia.memory.sampler/sampler.fidl
| Ordinal | Field | Type | Description |
|---|---|---|---|
1 |
address |
uint64
|
Address of the allocation, to uniquely identify it. |
2 |
stack_trace |
StackTrace
|
Stack frames collected at the allocation point. |
3 |
size |
uint64
|
Size (in bytes) of this allocation. |
RecordDeallocationEvent
Defined in fuchsia.memory.sampler/sampler.fidl
| Ordinal | Field | Type | Description |
|---|---|---|---|
1 |
address |
uint64
|
Address of the deallocation, to uniquely identify it. |
2 |
stack_trace |
StackTrace
|
Stack frames collected at the deallocation point. |
SamplerSetProcessInfoRequest
Defined in fuchsia.memory.sampler/sampler.fidl
| Ordinal | Field | Type | Description |
|---|---|---|---|
1 |
process_name |
string:32
|
|
2 |
module_map |
vector<ModuleMap>
|
StackTrace
Defined in fuchsia.memory.sampler/sampler.fidl
A stack trace, as a collection of stack frames.
| Ordinal | Field | Type | Description |
|---|---|---|---|
1 |
stack_frames |
vector<uint64>
|
Ordered vector of frame pointers, from the narrower to the wider location. |
UNIONS
SamplerDatagram flexible
Defined in fuchsia.memory.sampler/sampler.fidl
| Ordinal | Variant | Type | Description |
|---|---|---|---|
1 |
record_allocation |
RecordAllocationEvent
|
|
2 |
record_deallocation |
RecordDeallocationEvent
|
CONSTANTS
| Name | Value | Type | Description |
|---|---|---|---|
| BUILD_ID_BYTES |
20
|
uint32 |
A build ID is a 20 bytes long sequence. |