On Tue, 14 May 2019 13:38:57 +0200, Florian Weimer via lldb-dev wrote: > The target process has loaded libpthread.so.0, so it's not the usual > problem of libthread_db not working without libpthread. > > On the other hand, I realize now that the lldb command cannot access TLS > variables, either. Is this expected to work at all?
TLS is implemented only for FreeBSD as there is FreeBSDThread::GetThreadPointer() but on Linux it falls back to unimplemented: lldb::addr_t Thread::GetThreadPointer() { return LLDB_INVALID_ADDRESS; } On Linux it uses DynamicLoaderPOSIXDYLD::GetThreadLocalData() which may work without libthread_db as it is reading "_thread_db_*" symbols in DYLDRendezvous::GetThreadInfo(). But it needs that GetThreadPointer() which could get implemented (for x86_64) by reading %fs_base. LLDB currently does not know anything about %fs_base+%gs_base. Is it a good idea to implement %fs_base+%gs_base to make TLS working on Linux? Jan _______________________________________________ lldb-dev mailing list lldb-dev@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev