Expand description
Relation Inference - Memory relationship graph construction.
Infers relationships between heap allocations by analyzing pointer patterns, content similarity, and allocation metadata.
§Supported Relations
| Relation | Meaning | Signal |
|---|---|---|
| Owner | A holds a pointer into B | Pointer scan + RangeMap |
| Slice | A is a sub-region of B | Pointer falls inside B (not at start) |
| Clone | A is a copy of B | Same type/size/stack + content match |
§Architecture
ActiveAllocation + MemoryView
│
▼
UTI Engine (TypeGuess)
│
▼
RangeMap (address → alloc index)
│
▼
Relation Engine (Owner / Slice / Clone)
│
▼
RelationGraphStructs§
- Clone
Config - Configuration for clone detection.
- Container
Config - Configuration for container relation detection.
- Graph
Builder Config - Configuration for the relation graph builder.
- Inference
Record - Inference record combining allocation metadata with memory content.
- Range
Map - An index structure that maps memory addresses to allocation indices.
- Relation
Edge - An edge in the relation graph.
- Relation
Graph - A relation graph connecting allocations.
- Relation
Graph Builder - Builds a relation graph from active allocations.
Enums§
- Relation
- A relationship between two allocations in the graph.
Functions§
- detect_
clones - Detect Clone relationships among all inference records.
- detect_
containers - Detect
Containsrelationships between Container and HeapOwner allocations. - detect_
owner - Detect Owner relationships by scanning an allocation’s memory for pointers.
- detect_
shared - detect_
slice - Detect Slice relationships for all allocations.