Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Thu, 10 Feb 2022 20:05:15 +0200
From: Yehuda Yitchak <>
To: Florian Weimer <>
Cc: Rich Felker <>,
Subject: Re: Accessing Thread-Local-Storage in GDB

I forgot to mention I work on arm64
I guess there isn't much I can do at the moment, right ?

On Thu, Feb 10, 2022, 13:23 Florian Weimer <> wrote:

> * 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

Content of type "text/html" skipped

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.