Split-dwarf debug info for WebAssembly

Hi all (especially debug info experts!),

You may know that WebAssembly has its own (standardized) executable format (from which we have also derived an object file format) and linking support, which are supported alongside ELF et al. upstream. We also have basic support for DWARF debug info, which shares most of its implementation with the other object formats.

Because wasm binaries must be downloaded over the wire to a browser, because loading a wasm module is more expensive than e.g. ELF, and because want to minimize the amount of data the debugger has to load (since it runs in the sandbox where we don’t have mmap yet), we want to support split-dwarf for wasm.

My understanding is that there are a couple of different flavors of this, e.g. the original gcc debug fission scheme and the DWARF5 version. I have a couple of questions for the debug-info experts. Namely, are there any references or docs aside from the above link and the DWARF5 spec that I should know of that would help in working on this (either spec-type docs, or anything about the status of support for this use case in LLVM and/or LLDB), and do you have any recommendations about what we should target? e.g. pitfalls, readiness of DWARF5, areas where we could help, etc.