Philippe Waroquiers
bc353dfe97
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
2014-08-15 10:27:52 +00:00
..
2011-06-26 09:13:27 +00:00
2014-04-26 20:40:41 +00:00
2014-05-14 20:39:27 +00:00
2011-05-06 21:02:55 +00:00
2011-10-03 23:39:54 +00:00
2014-07-27 12:24:46 +00:00
2011-10-08 12:41:12 +00:00
2011-07-04 22:00:41 +00:00
2012-10-17 21:32:03 +00:00
2014-05-14 20:39:27 +00:00
2014-07-18 00:03:58 +00:00
2014-05-14 20:39:27 +00:00
2014-05-14 20:39:27 +00:00
2014-05-14 20:39:27 +00:00
2014-08-15 10:27:52 +00:00
2014-08-15 10:27:52 +00:00
2014-08-15 10:27:52 +00:00
2014-08-15 10:27:52 +00:00
2014-08-15 10:27:52 +00:00
2011-06-28 08:20:39 +00:00
2011-06-26 09:26:48 +00:00
2013-12-01 14:56:28 +00:00
2014-08-15 10:27:52 +00:00
2012-01-26 23:13:52 +00:00
2012-01-26 23:13:52 +00:00
2012-01-26 23:13:52 +00:00
2012-01-26 23:13:52 +00:00
2011-05-06 21:02:55 +00:00
2013-09-04 21:42:43 +00:00
2013-09-04 21:42:43 +00:00
2011-05-06 21:02:55 +00:00
2011-05-10 11:01:07 +00:00
2011-05-27 13:23:44 +00:00
2011-06-26 09:13:27 +00:00
2011-05-06 21:02:55 +00:00
2011-06-28 08:20:39 +00:00
2011-06-26 09:13:27 +00:00
2011-05-15 06:07:57 +00:00
2011-05-06 21:02:55 +00:00
2011-06-28 08:20:39 +00:00
2014-07-21 19:55:11 +00:00
2011-06-28 08:20:39 +00:00
2011-05-10 11:01:07 +00:00
2011-05-06 21:02:55 +00:00
2011-06-28 08:20:39 +00:00
2011-05-17 17:15:07 +00:00
2011-05-10 11:01:07 +00:00
2011-05-27 13:23:44 +00:00
2011-06-28 08:20:39 +00:00
2011-05-27 13:23:44 +00:00
2011-05-06 21:02:55 +00:00
2011-06-28 08:20:39 +00:00
2011-05-06 21:02:55 +00:00
2013-12-01 14:56:28 +00:00
2011-05-06 21:02:55 +00:00
2011-06-28 08:20:39 +00:00
2011-05-06 21:02:55 +00:00
2013-12-01 14:56:28 +00:00
2011-06-26 12:41:33 +00:00
2012-10-17 21:32:03 +00:00
2012-01-14 13:53:13 +00:00
2012-10-17 21:32:03 +00:00
2011-10-03 23:39:54 +00:00
2011-06-26 09:26:48 +00:00
2012-10-17 21:32:03 +00:00
2011-07-04 22:00:41 +00:00
2011-07-04 22:00:41 +00:00
2012-10-17 21:32:03 +00:00
2011-07-04 22:00:41 +00:00
2011-06-18 08:28:04 +00:00
2011-05-06 21:02:55 +00:00
2011-06-28 08:20:39 +00:00
2011-05-31 07:09:06 +00:00
2012-08-01 22:03:12 +00:00
2011-06-18 08:28:04 +00:00
2011-05-06 21:02:55 +00:00
2011-06-28 08:20:39 +00:00
2011-05-31 07:09:06 +00:00
2012-08-01 22:03:12 +00:00
2011-05-06 21:02:55 +00:00
2011-05-06 21:02:55 +00:00
2013-07-17 09:56:24 +00:00
2011-05-10 11:01:07 +00:00
2011-07-04 22:00:41 +00:00
2013-07-30 20:26:06 +00:00
2011-05-06 21:02:55 +00:00
2013-07-30 20:26:06 +00:00
2013-07-30 20:26:06 +00:00
2011-05-27 13:23:44 +00:00
2011-05-06 21:02:55 +00:00
2014-05-14 20:39:27 +00:00
2011-06-28 08:20:39 +00:00
2011-05-10 11:01:07 +00:00
2014-05-14 20:39:27 +00:00
2011-06-18 08:28:04 +00:00
2011-05-06 21:02:55 +00:00
2011-06-28 08:20:39 +00:00
2012-10-17 21:32:03 +00:00
2013-12-01 14:56:28 +00:00
2011-07-04 22:00:41 +00:00
2011-07-04 22:00:41 +00:00
2011-06-15 21:30:55 +00:00
2012-10-17 21:32:03 +00:00
2012-10-17 21:32:03 +00:00
2014-04-23 21:27:07 +00:00
2014-04-23 21:27:07 +00:00
2012-10-17 21:32:03 +00:00
2014-04-29 19:04:50 +00:00
2012-10-17 21:32:03 +00:00
2014-04-24 21:52:02 +00:00
2014-04-24 21:52:02 +00:00
2014-04-23 21:27:07 +00:00
2012-10-17 21:32:03 +00:00
2012-10-17 21:32:03 +00:00
2014-04-23 21:27:07 +00:00
2014-04-23 21:27:07 +00:00
2012-10-17 21:32:03 +00:00
2012-03-30 20:25:26 +00:00
2012-10-17 21:32:03 +00:00
2012-05-29 17:04:13 +00:00
2012-10-17 21:32:03 +00:00
2011-06-26 09:36:38 +00:00
2013-02-24 23:16:58 +00:00
2013-02-24 23:16:58 +00:00
2013-02-24 23:16:58 +00:00
2013-02-24 23:16:58 +00:00
2011-06-26 09:36:38 +00:00
2011-06-26 09:36:38 +00:00
2011-06-28 08:20:39 +00:00
2013-12-01 14:56:28 +00:00
2014-04-15 22:35:23 +00:00
2014-04-15 22:35:23 +00:00
2014-04-27 08:23:17 +00:00
2014-04-26 20:23:47 +00:00
2014-04-15 22:35:23 +00:00
2012-05-29 17:04:13 +00:00
2012-07-28 13:06:45 +00:00
2013-02-24 23:16:58 +00:00
2014-04-26 20:23:47 +00:00
2012-08-15 13:27:23 +00:00
2014-04-15 22:35:23 +00:00
2011-05-15 05:44:59 +00:00
2013-07-30 20:26:06 +00:00