Date: Thu, 10 Feb 2022 12:23:31 +0100 From: Florian Weimer <fweimer@...hat.com> To: Rich Felker <dalias@...c.org> Cc: Yehuda Yitchak <yehuda80@...il.com>, musl@...ts.openwall.com Subject: Re: Accessing Thread-Local-Storage in GDB * Rich Felker: > Indeed, I was just offering a quick workaround that might help, not > suggesting gdb should do that. __tls_get_addr can be used for > non-dynamic symbols with information already available to the > debugger. For core files you could probably simulate execution and > abort if anything is reached that would need to change process state > (lazy allocation) although that doesn't happen with musl anyway. But I > wonder if the core file even records the x86 segment information > needed to preserve thread pointer and simulate the %fs/%gs based > loads on x86[_64]..? The register is available as $fs_base on x86-64: (gdb) print (void *)$fs_base $1 = (void *) 0x7f2d12981740 (gdb) print *(void **)$fs_base $2 = (void *) 0x7f2d12981740 It probably does not work on i386 (even as $gs_base). I do not think it depends on FSGSBASE support in the kernel, but maybe I'm mistaken. I think I looked at this three years ago and couldn't make it work. Thanks, Florian
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.