Shipping core libraries with debug symbols
Peter Wortmann
scpmw at leeds.ac.uk
Sat Jan 3 18:33:42 UTC 2015
The debian package seems to simply put un-stripped libraries into a
special path (/usr/lib/debug/...). This should be relatively
straight-forward to implement. Note though that from a look at the RPM
infrastructure, they have a tool in there (dwarfread) which actually
parses through DWARF information and updates paths, so there is possibly
more going on here.
On the other hand, supporting -gsplit-dwarf seems to be a different
mechanism, called Fission[1]. I haven't looked too much at the
implementation yet, but to me it looks like it means generating copies
of debug sections (such as .debug-line.dwo) which will then be extracted
using "objcopy --extract-dwo". This might take a bit more work to
implement, both on DWARF generation code as well as infrastructure.
Interestingly enough, doing this kind of splitting will actually buy us
next to nothing - with Fission both .debug_line and .debug_frame would
remain in the binary unchanged, so all we'd export would be some fairly
inconsequential data from .debug_info. In contrast to other programming
languages, we just don't have that much debug information in the first
place. Well, at least not yet.
Greetings,
Peter
[1] https://gcc.gnu.org/wiki/DebugFission
On 03/01/2015 00:18, Johan Tibell wrote:
> Hi!
>
> We are now able to generate DWARF debug info, by passing -g to GHC. This
> will allow for better debugging (e.g. using GDB) and profiling (e.g.
> using Linux perf events). To make this feature more user accessible we
> need to ship debug info for the core libraries (and perhaps the RTS).
> The reason we need to ship debug info is that it's difficult, or
> impossible in the case of base, for the user to rebuild these
> libraries.The question is, how do we do this well? I don't think our
> "way" solution works very well. It causes us to recompile too much and
> GHC doesn't know which "ways" have been built or not.
>
> I believe other compilers, e.g. GCC, ship debug symbols in separate
> files (https://packages.debian.org/sid/libc-dbg) that e.g. GDB can then
> look up.
>
> -- Johan
>
>
>
> _______________________________________________
> ghc-devs mailing list
> ghc-devs at haskell.org
> http://www.haskell.org/mailman/listinfo/ghc-devs
>
More information about the ghc-devs
mailing list