Efficient On-Device Core Dump Processing for IoT: A Rusty Implementation
summary
Memfault ships a Rust core-handler that parses ELF cores, extracts PRSTATUS registers and proc maps, copies only program headers and build ID notes, and captures the top N bytes of each stack to produce a JSON of frame PCs. It uses Goblin, Gimly and Clap, parses .eh_frame to perform on-device unwinding, and then resolves addresses with debug infod. Resulting artifacts are ~35× smaller than a trimmed core and >1000× smaller than full cores, and retain symbol resolution without sending heap or locals (stacks only core dumps, PC-only traces).
AI-written summary · about
chapters (7)
- 0:00On-device core dump intro
- 2:07ELF core dumps explained
- 8:22C approach to core dumps
- 10:29Switching to Rust
- 14:40Shrinking core dumps
- 24:15Privacy and stack unwinding
- 36:56Conclusion trade-offs
related talks
42mUsing Yocto to Debug Embedded Device Crashes
42mUsing Yocto to Debug Embedded Device Crashes
31mRunning Linux on Constrained IOT Device
43mTools and Techniques to Debug an Embedded Linux System
31mReally Small Rust
26mAllocating Less: Really Thin Rust Cloud Apps
28mMinidump to debug end user device crashes
46mTools and Techniques to Debug an Embedded Linux System
