First heap visualization
Opened this issue · 0 comments
lukego commented
Goal: run a Snabb process and explore the LuaJIT heap while it is running.
- Snapshot the Snabb process (coredump.)
- Import Snabb executable and coredump into Nix store.
- Extract LuaJIT heap format (C structs) with
dwarf2xml ./snabb
. - Load XML into Pharo and use to decode the coredump.
- Present visually with the Pharo inspector.
This could start simple, e.g. in the style of GDB clicking through C structs, and be extended ad infinitum by decoding more information from the core dump: dump JIT trace bytecode/IR/mcode, locate and present interesting Snabb objects like the engine / config objects / apps / latency histogram / timeline log / etc. Pharo would do the presentation and the actual decoding could be done however is most convenient -- directly in Pharo or with a Nix expression that builds the decoded representation using tools.