1670b05a4a415dbfd75b1a120713b4a206bb719e |
|
15-Aug-2014 |
philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
fix 338160: Implement QGetTlsAddr query so that GDB+V gdbsrv can print __thread variables. To implement QGetTlsAddr, gdbsrv has to know how to get the glibc dtv address and the module id from the link_map. These 2 things are dependent on the internals of glibc. The dependency is mostly isolated in a few lines of arch dependent code or in an external utility that used a hack + -ldl lib to find the offset of the modid in the link_map structure. Tested on x86/amd64/ppc64/s390x. Somewhat tested on ppc32 and arm64. Untested/a few #ifdef-ed lines not compiled on arm/mips32/mips64 and darwin. For more background info about thread local storage handling, see 'ELF Handling For Thread-Local Storage' http://www.akkadia.org/drepper/tls.pdf Changes: * auxprogs/getoff.c new auxilliary program to get platform specific offsets (currently only the offset for the module id in struct link_map). * configure.ac : check for dlinfo(RTLD_DI_TLS_MODID) needed for getoff.c * new gdbserver_tests/hgtls, testing various types of __thread variables * various m_gdbserver files: - implement decoding of the QGetTlsAddr query - for each platform: platform specific code to get the dtv - call to external program getoff-<platform> the first time an __thread variable is printed. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14283 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/none/tests/tls.c
|
bcc95cfa30412ef9afa11005e365db3b043c9f6b |
|
10-Sep-2011 |
florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Sensitivity fix. On slow machines (s390x z900) need to sleep longer. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12027 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/none/tests/tls.c
|
b5f6f51ebcac183818061bf53427a3e7808ef10d |
|
11-Mar-2005 |
sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
Merge in changes from the 2.4.0 line. This basically brings in the overhaul of the thread support. Many things are now probably broken, but at least with --tool=none, simple and not-so-simple threaded and non-thread programs work. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3265 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/none/tests/tls.c
|
47735af6c44b5f206d5e418aac87a1dbdf9df185 |
|
21-Jan-2004 |
fitzhardinge <fitzhardinge@a5019735-40e9-0310-863c-91ae7b9d1cf9> |
This change implements the TLS extension to the x86 ABI. This allows threads to have thread-private data which is quickly accessible via a segment in the GDT, stored in %gs. The patch implements the relevent syscalls (setthreadarea), and also manages switching the VCPU's segment information at thread context-switch time. Mostly Tom Hughes' work. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2215 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/none/tests/tls.c
|