[llvm-dev] RFC: Move parts of llvm-symbolizer tool implementation to LLVMSymbolize library

Rafael EspĂ­ndola via llvm-dev llvm-dev at lists.llvm.org
Wed Oct 21 07:35:35 PDT 2015

I would say it is worth it if someone is actually planning on using
the library in something else.

Moving the code "just in case" or to create unit tests is not a good
reason IMHO.

On 20 October 2015 at 16:54, Alexey Samsonov <vonosmas at gmail.com> wrote:
> Hi,
> We have a lot of non-trivial logic accumulated in the
> implementation of llvm-symbolizer tool
> (tools/llvm-symbolizer/LLVMSymbolize.{h,cpp}), for instance:
> * dynamic dispatch between DWARF and PDB debug info;
> * building address->symbol_name mapping from object file (with special cases
> for PowerPC function descriptor section, and COFF export tables);
> * finding debug info stored in separate files (.dSYM files on Darwin, ELF
> .gnu_debuglink section, etc.);
> * demangling (with platform-specific implementations for Windows and Unix).
> I propose to move this code into a separate library LLVMSymbolize (stored
> under lib/DebugInfo/Symbolize), and make llvm-symbolizer a short and simple
> tool using it. This would allow to:
> * implement in-process symbolized stack trace printers (for the cases when
> it's possible to link in a bunch of LLVM libraries into the executable).
> * easily write more tools that can make use of symbolized code locations,
> such as coverage data visualizers.
> * (at least sometimes) write unit tests instead of testing functionality by
> running "llvm-symbolizer" executable on pre-built executables checked in
> repository.
> Any comments/objections?
> --
> Alexey Samsonov
> vonosmas at gmail.com

More information about the llvm-dev mailing list