Re: debuginfod vs libthread_db.so

Florian Weimer via Gdb <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <[email protected]>
* Mark Wielaard:

> Hi Avi,
>
> On Thu, 2022-11-24 at 14:02 +0200, Avi Kivity via Gdb wrote:
>> (tangent: is it possible to express libthread_db.so code as DWARF
>> expressions? if so it will be possible to get rid of libthread_db.so,
>> by having libc encode accessors to thread information as some DWARF
>> expressions, and teaching gdb to use those expressions instead of
>> calling libthread_db.so)
>
> There used to be an effort to define a kind of extended DWARF
> expressions, infinity notes, to describe things like the
> libthread_db.so code. Although the website can only be found in
> archive.org now, the code is still out there:
> https://web.archive.org/web/20190126111943/https://infinitynotes.org/wiki/Infinity
>
> Mailing list: [email protected], 
> https://sourceware.org/ml/infinity/
> Source code: https://gitlab.com/gbenson/i8c/, 
> https://gitlab.com/gbenson/libi8x/

These days, I would recommend to teach GDB to poke at the internal ld.so
data structures to glean the necessary data.  The offsets vary a lot and
would have to come from DWARF, but the structures themselves are fairly
stable (relative to other changes in GDB that glibc updates impose—sorry
about that).

To enable experimentation with this approach, we have stopped removing
debuginfo from ld.so in our distributions.

I kind of want to ship a header-only library in glibc which provides
this capability across multiple glibc versions, while outsourcing the
DWARF parsing etc. to GDB.

libthread_db also had code to compensate for limitations in the original
Linux ptrace interface, but that isn't needed anymore.

Thanks,
Florian
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.