Support for compressed debuginfo sections was added in bug 303877. Although this works, it uses huge amounts of space, for example more than 15GB memory for reading from a 580MB libxul.so created with "gcc7 -Og -gz". Given that the equivalent non-"-gz" size of the file is about 1.4GB this seems quite unreasonable. Furthermore, examination of the bug 303877 fix shows that the changes to get_slowcase() introduces a tricky invariant which is not documented, which makes the code hard to understand and hard to reason about.
Created attachment 104607 [details] Fix A fix. Largely rewrites get_slowcase, documents abovementioned invariant, and adds a bunch of sanity checking for CEnts.
Fixed, r16279.