This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: pthread_t ids of threads not showed by "thread info"
- From: Pedro Alves <pedro at codesourcery dot com>
- To: gdb at sourceware dot org
- Cc: Stefano Sabatini <stefano dot sabatini-lala at poste dot it>
- Date: Wed, 18 Aug 2010 15:17:35 +0100
- Subject: Re: pthread_t ids of threads not showed by "thread info"
- References: <20100422151855.GA3128@geppetto>
Hi,
On Thursday 22 April 2010 16:18:55, Stefano Sabatini wrote:
> Hi all,
>
> $ gdb --version
> GNU gdb (GDB) 7.1
>
> (gdb) info threads
> * 9 Thread 25919 0x0040cc7d in PSafeObject::LockReadOnly (this=0xb6d3d1d8)
> at ../common/safecoll.cxx:144
> 8 Thread 25920 0x00885402 in __kernel_vsyscall ()
> 7 Thread 25921 0x00885402 in __kernel_vsyscall ()
> 6 Thread 25922 0x00885402 in __kernel_vsyscall ()
> 5 Thread 25927 0x00885402 in __kernel_vsyscall ()
> 4 Thread 25928 0x00885402 in __kernel_vsyscall ()
> 3 Thread 16215 0x00885402 in __kernel_vsyscall ()
> 2 Thread 16216 0x00885402 in __kernel_vsyscall ()
> 1 Thread 25917 0x00885402 in __kernel_vsyscall ()
> (gdb) help info thread
> IDs of currently known threads.
>
> This shows the gdb thread number, the process ID and I don't know
> what's contained in the fourth column, but that's for sure cannot be
> the same as the pthread_t id as it is the same for all the threads.
>
> On another machine I get this output:
> 3 Thread 0xb7642b70 (LWP 3334) (running)
> 2 Thread 0xb7e43b70 (LWP 3333) (running)
> * 1 Thread 0xb7e446c0 (LWP 3327) 0xb7fe1424 in __kernel_vsyscall ()
>
> Can you explain the differences, and why are there in the first place?
>
> Also in the first scenario I cannot get the pthread_t information, which
> is shown in the third column of the second scenario.
>
> To me this sounds like a real puzzle, I'll be grateful to whom will
> help me to figure it out, also a pointer to the location in the gdb
> sources where the "info thread" command is executed would be welcome.
Just to put closure on this thread: this is now fixed on
CVS mainline (future 7.3). "info threads" when debugging a core file now
has the same output as when debugging the process when it was live,
and, you can now inspect TLS variables when debugging a core file.
This should Just Work when debugging core files generated on the
same machine you are debugging. When moving cores between machines, you
may need to point gdb at the correct libthread_db.so with
"(gdb) set libthread-db-search-path". See the manual for more details on
that command.
--
Pedro Alves