Support TLS variables on FreeBSD/amd64.
authorJohn Baldwin <jhb@FreeBSD.org>
Tue, 12 Mar 2019 20:39:02 +0000 (13:39 -0700)
committerJohn Baldwin <jhb@FreeBSD.org>
Tue, 12 Mar 2019 20:45:48 +0000 (13:45 -0700)
commitf5424cfa7e9337a6cb02a1f83c9feea0995c5350
tree56e48f7e78cd5dd52b187aa3b4153e6a5480c15d
parent945f3901b5889e57edf5a2ee25acb51f0078a719
Support TLS variables on FreeBSD/amd64.

Use the fs_base register to fetch the address of a thread's tcb and
calculate the address of the DTV array.  This value is then passed to
fbsd_get_thread_local_address to compute the final variable address.

Note that fs_base is currently only available via the native target as
core dumps on FreeBSD do not store the value of fs_base.

gdb/ChangeLog:

* amd64-fbsd-tdep.c (amd64fbsd_get_thread_local_address): New.
(amd64fbsd_init_abi): Install gdbarch
"fetch_tls_load_module_address" and "get_thread_local_address"
methods.
gdb/ChangeLog
gdb/amd64-fbsd-tdep.c