public inbox for glibc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug dynamic-link/15971] New: No interface for debugger access to libraries loaded with dlmopen
@ 2013-09-19 15:00 gbenson at redhat dot com
  2013-09-19 15:13 ` [Bug dynamic-link/15971] " carlos at redhat dot com
                   ` (13 more replies)
  0 siblings, 14 replies; 15+ messages in thread
From: gbenson at redhat dot com @ 2013-09-19 15:00 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=15971

            Bug ID: 15971
           Summary: No interface for debugger access to libraries loaded
                    with dlmopen
           Product: glibc
           Version: unspecified
            Status: NEW
          Severity: normal
          Priority: P2
         Component: dynamic-link
          Assignee: unassigned at sourceware dot org
          Reporter: gbenson at redhat dot com

glibc has no interface for debuggers to access libraries loaded using dlmopen
(LM_ID_NEWLM).  This issue was originally filed as GDB bug 11839.

The current rtld-debugger interface is described in the file
elf/rtld-debugger-interface.txt under the "Standard debugger interface"
heading.  This interface only provides access to the first link map
(LM_ID_BASE).  This interface is not obviously extendable for the reasons
described here: http://gbenson.net/?p=407.

The probes-based rtld-debugger interface allows debuggers to see libraries
loaded using dlmopen as they appear.  This is enough to debug applications
started in the debugger, but not enough to attach to a running process or to
debug using a core file.

There was some discussion of this subject on the libc-alpha mailing list
between November 2012 and January 2013.  The archives are not easily navigable,
but the various messages can be found here:

  https://sourceware.org/ml/libc-alpha/2012-11/subjects.html#00656
  https://sourceware.org/ml/libc-alpha/2012-12/subjects.html#00078
  https://sourceware.org/ml/libc-alpha/2013-01/subjects.html#00358

I don't know in detail what the interface should look like, but some points:

1) A Solaris-style librtld_db.so would be undesirable as it would suffer much
the same issues as libthread_db.so.

2) The interface must be usable by gdbserver, so it must be fairly lightweight.
 An interface that required eg a Python interpreter would exclude users running
gdbserver in constrained environments.

3) There are people using GDB to debug applications with 5,000 shared libraries
and more, so performance is an issue.

4) The interface should work without debugging symbols to be useful for tools
such as ABRT.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug dynamic-link/15971] No interface for debugger access to libraries loaded with dlmopen
  2013-09-19 15:00 [Bug dynamic-link/15971] New: No interface for debugger access to libraries loaded with dlmopen gbenson at redhat dot com
  2013-09-19 15:13 ` [Bug dynamic-link/15971] " carlos at redhat dot com
@ 2013-09-19 15:13 ` carlos at redhat dot com
  2013-09-27 12:19 ` jan.kratochvil at redhat dot com
                   ` (11 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: carlos at redhat dot com @ 2013-09-19 15:13 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=15971

Carlos O'Donell <carlos at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |carlos at redhat dot com,
                   |                            |codonell at redhat dot com

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug dynamic-link/15971] No interface for debugger access to libraries loaded with dlmopen
  2013-09-19 15:00 [Bug dynamic-link/15971] New: No interface for debugger access to libraries loaded with dlmopen gbenson at redhat dot com
@ 2013-09-19 15:13 ` carlos at redhat dot com
  2013-09-19 15:13 ` carlos at redhat dot com
                   ` (12 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: carlos at redhat dot com @ 2013-09-19 15:13 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=15971

--- Comment #1 from Carlos O'Donell <carlos at redhat dot com> ---
I acknowledge that glibc needs to do something about this.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug dynamic-link/15971] No interface for debugger access to libraries loaded with dlmopen
  2013-09-19 15:00 [Bug dynamic-link/15971] New: No interface for debugger access to libraries loaded with dlmopen gbenson at redhat dot com
  2013-09-19 15:13 ` [Bug dynamic-link/15971] " carlos at redhat dot com
  2013-09-19 15:13 ` carlos at redhat dot com
@ 2013-09-27 12:19 ` jan.kratochvil at redhat dot com
  2013-10-03 17:51 ` tromey at redhat dot com
                   ` (10 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: jan.kratochvil at redhat dot com @ 2013-09-27 12:19 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=15971

Jan Kratochvil <jan.kratochvil at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jan.kratochvil at redhat dot com

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug dynamic-link/15971] No interface for debugger access to libraries loaded with dlmopen
  2013-09-19 15:00 [Bug dynamic-link/15971] New: No interface for debugger access to libraries loaded with dlmopen gbenson at redhat dot com
                   ` (2 preceding siblings ...)
  2013-09-27 12:19 ` jan.kratochvil at redhat dot com
@ 2013-10-03 17:51 ` tromey at redhat dot com
  2014-06-13 12:49 ` fweimer at redhat dot com
                   ` (9 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: tromey at redhat dot com @ 2013-10-03 17:51 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=15971

Tom Tromey <tromey at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |tromey at redhat dot com

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug dynamic-link/15971] No interface for debugger access to libraries loaded with dlmopen
  2013-09-19 15:00 [Bug dynamic-link/15971] New: No interface for debugger access to libraries loaded with dlmopen gbenson at redhat dot com
                   ` (3 preceding siblings ...)
  2013-10-03 17:51 ` tromey at redhat dot com
@ 2014-06-13 12:49 ` fweimer at redhat dot com
  2015-02-12 11:27 ` stsp at users dot sourceforge.net
                   ` (8 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: fweimer at redhat dot com @ 2014-06-13 12:49 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=15971

Florian Weimer <fweimer at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
              Flags|                            |security-

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug dynamic-link/15971] No interface for debugger access to libraries loaded with dlmopen
  2013-09-19 15:00 [Bug dynamic-link/15971] New: No interface for debugger access to libraries loaded with dlmopen gbenson at redhat dot com
                   ` (4 preceding siblings ...)
  2014-06-13 12:49 ` fweimer at redhat dot com
@ 2015-02-12 11:27 ` stsp at users dot sourceforge.net
  2015-02-12 12:30 ` mathieu.lacage at gmail dot com
                   ` (7 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: stsp at users dot sourceforge.net @ 2015-02-12 11:27 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=15971

Stas Sergeev <stsp at users dot sourceforge.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |stsp at users dot sourceforge.net

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug dynamic-link/15971] No interface for debugger access to libraries loaded with dlmopen
  2013-09-19 15:00 [Bug dynamic-link/15971] New: No interface for debugger access to libraries loaded with dlmopen gbenson at redhat dot com
                   ` (5 preceding siblings ...)
  2015-02-12 11:27 ` stsp at users dot sourceforge.net
@ 2015-02-12 12:30 ` mathieu.lacage at gmail dot com
  2015-02-12 12:38 ` mathieu.lacage at gmail dot com
                   ` (6 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: mathieu.lacage at gmail dot com @ 2015-02-12 12:30 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=15971

mathieu lacage <mathieu.lacage at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mathieu.lacage at gmail dot com

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug dynamic-link/15971] No interface for debugger access to libraries loaded with dlmopen
  2013-09-19 15:00 [Bug dynamic-link/15971] New: No interface for debugger access to libraries loaded with dlmopen gbenson at redhat dot com
                   ` (6 preceding siblings ...)
  2015-02-12 12:30 ` mathieu.lacage at gmail dot com
@ 2015-02-12 12:38 ` mathieu.lacage at gmail dot com
  2015-03-27 13:54 ` fche at redhat dot com
                   ` (5 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: mathieu.lacage at gmail dot com @ 2015-02-12 12:38 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=15971

--- Comment #2 from mathieu lacage <mathieu.lacage at gmail dot com> ---
(In reply to Gary Benson from comment #0)
> glibc has no interface for debuggers to access libraries loaded using
> dlmopen (LM_ID_NEWLM).  This issue was originally filed as GDB bug 11839.

I filed that gdb bug 4 years ago and I just discovered this glibc bug because
you added a comment to the gdb bug about this one.

> 3) There are people using GDB to debug applications with 5,000 shared
> libraries and more, so performance is an issue.

Yes, I am one of these people. I also wrote my own loader because I needed more
than the 32 namespaces provided by glibc so, it would be really helpful if the
solution you choose to implement can be made to work with a dynamic number of
namespaces that is potentially larger than 32.

I have not looked at the glibc loader in a long time but if there was progress
on this (gdb/glibc interface for namespaces) front, I would probably try to
work on a patch for glibc to support dynamically-allocated namespaces.

Regardless of the status of this feature, I would be happy to provide testing
help and/or debugging/implementation time once a decision on how to add this
feature is made (I read the ML discussions and I would personally favor the
dwarf or r_debug solution).

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug dynamic-link/15971] No interface for debugger access to libraries loaded with dlmopen
  2013-09-19 15:00 [Bug dynamic-link/15971] New: No interface for debugger access to libraries loaded with dlmopen gbenson at redhat dot com
                   ` (7 preceding siblings ...)
  2015-02-12 12:38 ` mathieu.lacage at gmail dot com
@ 2015-03-27 13:54 ` fche at redhat dot com
  2015-09-23 21:06 ` woodard at redhat dot com
                   ` (4 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: fche at redhat dot com @ 2015-03-27 13:54 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=15971

Frank Ch. Eigler <fche at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |fche at redhat dot com

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug dynamic-link/15971] No interface for debugger access to libraries loaded with dlmopen
  2013-09-19 15:00 [Bug dynamic-link/15971] New: No interface for debugger access to libraries loaded with dlmopen gbenson at redhat dot com
                   ` (8 preceding siblings ...)
  2015-03-27 13:54 ` fche at redhat dot com
@ 2015-09-23 21:06 ` woodard at redhat dot com
  2015-10-16 21:40 ` orion at cora dot nwra.com
                   ` (3 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: woodard at redhat dot com @ 2015-09-23 21:06 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=15971

Ben Woodard <woodard at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |woodard at redhat dot com

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug dynamic-link/15971] No interface for debugger access to libraries loaded with dlmopen
  2013-09-19 15:00 [Bug dynamic-link/15971] New: No interface for debugger access to libraries loaded with dlmopen gbenson at redhat dot com
                   ` (9 preceding siblings ...)
  2015-09-23 21:06 ` woodard at redhat dot com
@ 2015-10-16 21:40 ` orion at cora dot nwra.com
  2021-07-23  0:35 ` carlos at redhat dot com
                   ` (2 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: orion at cora dot nwra.com @ 2015-10-16 21:40 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=15971

Orion Poplawski <orion at cora dot nwra.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |orion at cora dot nwra.com

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug dynamic-link/15971] No interface for debugger access to libraries loaded with dlmopen
  2013-09-19 15:00 [Bug dynamic-link/15971] New: No interface for debugger access to libraries loaded with dlmopen gbenson at redhat dot com
                   ` (10 preceding siblings ...)
  2015-10-16 21:40 ` orion at cora dot nwra.com
@ 2021-07-23  0:35 ` carlos at redhat dot com
  2021-09-19 21:49 ` cvs-commit at gcc dot gnu.org
  2021-09-19 22:04 ` hjl.tools at gmail dot com
  13 siblings, 0 replies; 15+ messages in thread
From: carlos at redhat dot com @ 2021-07-23  0:35 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=15971

--- Comment #6 from Carlos O'Donell <carlos at redhat dot com> ---
The most sensible way forward here is probably the suggestion Cicso has which
is to create a _r_debug_dlmopen with the appropriate data to access the
namespaces:
https://sourceware.org/pipermail/libc-alpha/2020-June/115445.html

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug dynamic-link/15971] No interface for debugger access to libraries loaded with dlmopen
  2013-09-19 15:00 [Bug dynamic-link/15971] New: No interface for debugger access to libraries loaded with dlmopen gbenson at redhat dot com
                   ` (11 preceding siblings ...)
  2021-07-23  0:35 ` carlos at redhat dot com
@ 2021-09-19 21:49 ` cvs-commit at gcc dot gnu.org
  2021-09-19 22:04 ` hjl.tools at gmail dot com
  13 siblings, 0 replies; 15+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-09-19 21:49 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=15971

--- Comment #7 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by H.J. Lu <hjl@sourceware.org>:

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a93d9e03a31ec14405cb3a09aa95413b67067380

commit a93d9e03a31ec14405cb3a09aa95413b67067380
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Aug 17 19:35:48 2021 -0700

    Extend struct r_debug to support multiple namespaces [BZ #15971]

    Glibc does not provide an interface for debugger to access libraries
    loaded in multiple namespaces via dlmopen.

    The current rtld-debugger interface is described in the file:

    elf/rtld-debugger-interface.txt

    under the "Standard debugger interface" heading.  This interface only
    provides access to the first link-map (LM_ID_BASE).

    1. Bump r_version to 2 when multiple namespaces are used.  This triggers
    the GDB bug:

    https://sourceware.org/bugzilla/show_bug.cgi?id=28236

    2. Add struct r_debug_extended to extend struct r_debug into a linked-list,
    where each element correlates to an unique namespace.
    3. Initialize the r_debug_extended structure.  Bump r_version to 2 for
    the new namespace and add the new namespace to the namespace linked list.
    4. Add _dl_debug_update to return the address of struct r_debug' of a
    namespace.
    5. Add a hidden symbol, _r_debug_extended, for struct r_debug_extended.
    6. Provide the symbol, _r_debug, with size of struct r_debug, as an alias
    of _r_debug_extended, for programs which reference _r_debug.

    This fixes BZ #15971.

    Reviewed-by: Florian Weimer <fweimer@redhat.com>

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug dynamic-link/15971] No interface for debugger access to libraries loaded with dlmopen
  2013-09-19 15:00 [Bug dynamic-link/15971] New: No interface for debugger access to libraries loaded with dlmopen gbenson at redhat dot com
                   ` (12 preceding siblings ...)
  2021-09-19 21:49 ` cvs-commit at gcc dot gnu.org
@ 2021-09-19 22:04 ` hjl.tools at gmail dot com
  13 siblings, 0 replies; 15+ messages in thread
From: hjl.tools at gmail dot com @ 2021-09-19 22:04 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=15971

H.J. Lu <hjl.tools at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
            Version|unspecified                 |2.34
   Target Milestone|---                         |2.35
         Resolution|---                         |FIXED

--- Comment #8 from H.J. Lu <hjl.tools at gmail dot com> ---
Fixed for 2.35.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2021-09-19 22:04 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-09-19 15:00 [Bug dynamic-link/15971] New: No interface for debugger access to libraries loaded with dlmopen gbenson at redhat dot com
2013-09-19 15:13 ` [Bug dynamic-link/15971] " carlos at redhat dot com
2013-09-19 15:13 ` carlos at redhat dot com
2013-09-27 12:19 ` jan.kratochvil at redhat dot com
2013-10-03 17:51 ` tromey at redhat dot com
2014-06-13 12:49 ` fweimer at redhat dot com
2015-02-12 11:27 ` stsp at users dot sourceforge.net
2015-02-12 12:30 ` mathieu.lacage at gmail dot com
2015-02-12 12:38 ` mathieu.lacage at gmail dot com
2015-03-27 13:54 ` fche at redhat dot com
2015-09-23 21:06 ` woodard at redhat dot com
2015-10-16 21:40 ` orion at cora dot nwra.com
2021-07-23  0:35 ` carlos at redhat dot com
2021-09-19 21:49 ` cvs-commit at gcc dot gnu.org
2021-09-19 22:04 ` hjl.tools at gmail dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).