studio/studio

First heap visualization

Opened this issue · 0 comments

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.