[LLVMdev] RFC: Using zlib to decompress debug info sections.
Alexey Samsonov
samsonov at google.com
Tue Apr 16 02:37:23 PDT 2013
Hi!
TL;DR WDYT of adding zlib decompression capabilities to LLVMObject library?
ld.gold from GNU binutils has --compress-debug-sections=zlib option,
which uses zlib to compress .debug_xxx sections and renames them to
.zdebug_xxx.
binutils (and GDB) support this properly, while LLVM command line tools
don't:
$ ld --version
GNU gold (GNU Binutils for Ubuntu 2.22) 1.11
$ ./bin/clang++ -g a.cc -Wl,--compress-debug-sections=zlib
$ objdump -h a.out | grep debug
26 .debug_info 00000066 0000000000000000 0000000000000000 00002010
2**0
27 .debug_abbrev 00000048 0000000000000000 0000000000000000 00002068
2**0
28 .debug_aranges 00000000 0000000000000000 0000000000000000 000020bb
2**0
29 .debug_macinfo 00000000 0000000000000000 0000000000000000 000020cf
2**0
30 .debug_line 00000053 0000000000000000 0000000000000000 000020e3
2**0
31 .debug_loc 00000000 0000000000000000 0000000000000000 0000213e
2**0
32 .debug_pubtypes 00000000 0000000000000000 0000000000000000 00002152
2**0
33 .debug_str 00000069 0000000000000000 0000000000000000 00002166
2**0
34 .debug_ranges 00000000 0000000000000000 0000000000000000 000021d9
2**0
$ ./bin/llvm-objdump -h a.out | grep debug
27 .zdebug_info 00000058 0000000000000000
28 .zdebug_abbrev 00000053 0000000000000000
29 .zdebug_aranges 00000014 0000000000000000
30 .zdebug_macinfo 00000014 0000000000000000
31 .zdebug_line 0000005b 0000000000000000
32 .zdebug_loc 00000014 0000000000000000
33 .zdebug_pubtypes 00000014 0000000000000000
34 .zdebug_str 00000073 0000000000000000
35 .zdebug_ranges 00000014 0000000000000000
Decompression and proper handling of debug info sections may be needed
in llvm-dwarfdump and llvm-symbolizer tools. We can implement this by:
1) Checking if zlib is present in the system during configuration.
2) Adding zlib decompression to llvm::MemoryBuffer, and section
decompression to LLVMObject (this would require optional linking with -lz).
3) Using the methods in LLVM tools where needed.
Does this make sense to you?
--
Alexey Samsonov, MSK
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130416/28638099/attachment.html>
More information about the llvm-dev
mailing list