[lldb-dev] Adding breakpad "symbol" file support

Leonard Mosescu via lldb-dev lldb-dev at lists.llvm.org
Mon Dec 3 14:54:41 PST 2018


Yay!

In case anyone is interested in the details, the Breakpad symbol format is
documented here:
https://chromium.googlesource.com/breakpad/breakpad/+/master/docs/symbol_files.md

On Mon, Dec 3, 2018 at 5:39 AM Pavel Labath via lldb-dev <
lldb-dev at lists.llvm.org> wrote:

> Hello all,
>
> I'd like to propose adding support for reading breakpad symbol files to
> LLDB.
>
> The breakpad files are textual files, which contain just enough
> information to produce a backtrace from a crash
> dump. This information includes:
>
> - UUID, architecture and name of the module
> - line tables
> - list of symbols
> - unwind information
>
> They are meant to complement the "minidump" files (already supported by
> lldb), which are the "core" files produced by breakpad when an
> application crashes.
>
> A minimal breakpad file could look like this:
> MODULE Linux x86_64 0000000024B5D199F0F766FFFFFF5DC30 a.out
> INFO CODE_ID 00000000B52499D1F0F766FFFFFF5DC3
> FILE 0 /tmp/a.c
> FUNC 1010 10 0 _start
> 1010 4 4 0
> 1014 5 5 0
> 1019 5 6 0
> 101e 2 7 0
> PUBLIC 1010 0 _start
> STACK CFI INIT 1010 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^
> STACK CFI 1011 $rbp: .cfa -16 + ^ .cfa: $rsp 16 +
> STACK CFI 1014 .cfa: $rbp 16 +
>
> Even though this data would normally be considered "symbol" information,
> in the current lldb infrastructure it is assumed every SymbolFile object
> is backed by an ObjectFile instance. So, in order to better interoperate
> with the rest of the code (particularly symbol vendors). I propose to
> also add an ObjectFileBreakpad class to access the breakpad file at a
> lower level. My plan tentative plan is to present the individual chunks
> of the breakpad file as ObjectFile , which can then be used by
> other parts of the codebase (SymbolFileBreakpad ?) to vend the necessary
> information.
>
> I have a preliminary patch (D55214), which adds the scaffolding
> necessary to recognise breakpad files as on object format, and parses
> the information in the breakpad header (i.e., it's UUID and
> architecture). The other parts are to be added later.
>
> Please let me know if you have any questions or concerns about this,
> pavel
> _______________________________________________
> lldb-dev mailing list
> lldb-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20181203/2f778fc7/attachment.html>


More information about the lldb-dev mailing list