diff options
author | Florian Weimer <fweimer@redhat.com> | 2021-04-21 11:50:43 +0200 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2021-04-21 11:50:43 +0200 |
commit | a64afc225240b2b27129ccfb0516d7c958b98040 (patch) | |
tree | 02bdfc42d7b25fd2f537e6aad77be75f33af44ba /nptl_db/thread_dbP.h | |
parent | aaa23c35071537e2dcf5807e956802ed215210aa (diff) | |
download | glibc-a64afc225240b2b27129ccfb0516d7c958b98040.tar glibc-a64afc225240b2b27129ccfb0516d7c958b98040.tar.gz glibc-a64afc225240b2b27129ccfb0516d7c958b98040.tar.bz2 glibc-a64afc225240b2b27129ccfb0516d7c958b98040.zip |
nptl_db: Support different libpthread/ld.so load orders (bug 27744)
libthread_db is loaded once GDB encounters libpthread, and at this
point, ld.so may not have been processed by GDB yet. As a result,
_rtld_global cannot be accessed by regular means from libthread_db.
To make this work until GDB can be fixed, acess _rtld_global through
a pointer stored in libpthread.
The new test does not reproduce bug 27744 with
--disable-hardcoded-path-in-tests, but is still a valid smoke test.
With --enable-hardcoded-path-in-tests, it is necessary to avoid
add-symbol-file because this can tickle a GDB bug.
Fixes commit 1daccf403b1bd86370eb94edca794dc106d02039 ("nptl: Move
stack list variables into _rtld_global").
Tested-by: Emil Velikov <emil.velikov@collabora.com>
Diffstat (limited to 'nptl_db/thread_dbP.h')
-rw-r--r-- | nptl_db/thread_dbP.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/nptl_db/thread_dbP.h b/nptl_db/thread_dbP.h index 580a70c471..712fa3aeb6 100644 --- a/nptl_db/thread_dbP.h +++ b/nptl_db/thread_dbP.h @@ -108,6 +108,8 @@ struct td_thragent # undef DB_SYMBOL # undef DB_VARIABLE + psaddr_t ta_addr__rtld_global; + /* The method of locating a thread's th_unique value. */ enum { |