mirror of
https://github.com/RGBCube/serenity
synced 2025-10-24 06:02:31 +00:00
This change introduces a very basic GC graph dumper. The `dump_graph()`
function outputs JSON data that contains information about all nodes in
the graph, including their class types and edges.
Root nodes will have a property indicating their root type or source
location if the root is captured by a SafeFunction. It would be useful
to add source location for other types of roots in the future.
Output JSON dump have following format:
```json
"4908721208": {
"class_name": "Accessor",
"edges": [
"4909298232",
"4909297976"
]
},
"4907520440": {
"root": "SafeFunction Optional Optional.h:137",
"class_name": "Realm",
"edges": [
"4908269624",
"4924821560",
"4908409240",
"4908483960",
"4924527672"
]
},
"4908251320": {
"class_name": "CSSStyleRule",
"edges": [
"4908302648",
"4925101656",
"4908251192"
]
},
```
|
||
|---|---|---|
| .. | ||
| BlockAllocator.cpp | ||
| BlockAllocator.h | ||
| Cell.cpp | ||
| Cell.h | ||
| CellAllocator.cpp | ||
| CellAllocator.h | ||
| DeferGC.h | ||
| GCPtr.h | ||
| Handle.cpp | ||
| Handle.h | ||
| Heap.cpp | ||
| Heap.h | ||
| HeapBlock.cpp | ||
| HeapBlock.h | ||
| HeapRootTypeOrLocation.h | ||
| Internals.h | ||
| MarkedVector.cpp | ||
| MarkedVector.h | ||