mirror of git://sourceware.org/git/glibc.git
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> |
||
|---|---|---|
| .. | ||
| Makefile | ||
| Versions | ||
| abi-note.c | ||
| check_fds.c | ||
| dso_handle.c | ||
| errno-loc.c | ||
| errno.c | ||
| gmon-start.c | ||
| init-first.c | ||
| init.c | ||
| libc-start.c | ||
| libc-tls.c | ||
| rtld-sizes.sym | ||
| start.c | ||
| static-reloc.c | ||
| sysdep.c | ||
| version.c | ||