mirror of
git://sourceware.org/git/glibc.git
synced 2024-12-21 04:31:04 +08:00
a93d9e03a3
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>
7 lines
174 B
Plaintext
7 lines
174 B
Plaintext
#include <link.h>
|
|
|
|
--
|
|
R_DEBUG_SIZE sizeof (struct r_debug)
|
|
R_DEBUG_EXTENDED_SIZE sizeof (struct r_debug_extended)
|
|
R_DEBUG_EXTENDED_ALIGN __alignof (struct r_debug_extended)
|