Re: gdb show thread names

Jonny Grant <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <[email protected]>

On 13/06/2020 13:47, Philippe Waroquiers wrote:
> One year ago, I started a patch to add Ada task names and thread names.
> At the end, the patch for Ada task name went in, but for the thread
> names, there were still some work to do e.g. it was unclear how to
> properly give the thread name in some cases and/or 
> have a consistent presentation of the thread name.
> 
> The (partial) patch was giving a behaviour so that we e.g. get:
>       [New Thread 0x7ffff701b700 (LWP 13891) "sleepers"]
>       [Switching to thread 2 (Thread 0x7ffff781c700 (LWP 13890) "sleepers")]
>     instead of:
>       [New Thread 0x7ffff701b700 (LWP 13918)]
>       [Switching to thread 2 (Thread 0x7ffff781c700 (LWP 13917))]
> 
> Philippe
> 
> On Sat, 2020-06-13 at 01:16 +0100, Jonny Grant wrote:
>> Hello
>> Just wondering if gdb could show the thread names as they are created and deleted?
>>
>>
>> [Thread 0x7fff695e9700 (LWP 3580240) exited]
>> [New Thread 0x7fff98ff9700 (LWP 3580609)]
>>
>> $ cat /proc/3580609/comm
>> ThreadPoolForeg
>>
>> Could be a race condition, if GDB showed the name, before it was renamed by the application, but still pretty useful to see the names.
>>
>> If I break, and type "info thread" I can see those still created.
>>
>> Jonny
> 

Hi Philippe

That looks useful. Is "sleepers" the entrypoint symbol name?

I can see it is tricky because a thread may not have been named by something like pthread_setname_np() if /proc/3580609/comm is read immediately by gdb before the name could be set.

Jonny
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.