We should handle crashes very gracefully, doing everything we can to make debugging the issue easier. This culminates into:
- Dumping registers
- Dumping callstack, including Lua
- Dumping global state, specifically how memory is allocated
- Producing a crash dump, allowing postmortem debugging