Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
Impala 4.2.0
-
None
-
ghx-label-14
Description
For builds with debug information, the debug information is often a large portion of the binary size. There is a feature that compresses the debug info using ZLIB via the "-gz" compilation flag. It makes a very large difference to the size of our binaries:
GCC 7.5: debug: 726767520 debug with -gz: 325970776 release: 707911496 with with -gz: 301671026 GCC 10.4: debug: 870378832 debug with -gz: 351442253 release: 974600536 release with -gz: 367938487
The size reduction would be useful for developers, but support in other tools is mixed. gdb has support and seems to work fine. breakpad does not have support. However, it is easy to convert a binary with compressed debug symbols to one with normal debug symbols using objcopy:
objcopy --decompress-debug-sections [in_binary] [out_binary]
Given a minidump, it is possible to run objcopy to decompress the debug symbols for the original binary, dump the breakpad symbols, and then process the minidump successfully. So, it should be possible to modify bin/dump_breakpad_symbols.py to do this automatically.