Open
Description
In investigating some issues on rack2, I found that the propolis-server binary did not have useful DWARF information in it (oxidecomputer/propolis#477). While we have a lot of ways we can improve post-mortem debugging of our services written in rust, as our support there evolves, it is possible we will want to debug old core files, and it seems important to figure this out now, even if debugging cores from our services is more challenging than we hope now.
This is a non-trivial effort, I think, as there a lot of questions here to go figure out. Some wrinkles:
- It's possible we don't want to do this for all binaries shipped in the product
- Shipping DWARF information in the binary makes the binary bigger, which is a consideration for things in the ramdisk (like propolis-server and sled-agent)
- We could also ship DWARF information separately. Where would that be stored?
There's a bigger question of how we get corefiles in a pipeline out for support etc, but those are orthogonal pieces of work to what I am imagining here.