Date: Thu, 3 Jun 2010 16:09:31 -0400 (EDT) From: Daniel Eischen <deischen@freebsd.org> To: =?UTF-8?B?VsOhY2xhdiBIYWlzbWFu?= <v.haisman@sh.cvut.cz> Cc: freebsd-hackers@freebsd.org Subject: Re: How to get a thread ID? Message-ID: <Pine.GSO.4.64.1006031607210.29332@sea.ntplx.net> In-Reply-To: <4C07FF45.5070703@sh.cvut.cz> References: <6e716c850fa84621482b71826dae55d5@shell.sh.cvut.cz> <Pine.GSO.4.64.1006031045330.28157@sea.ntplx.net> <4C07FF45.5070703@sh.cvut.cz>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 3 Jun 2010, Václav Haisman wrote: > Daniel Eischen wrote, On 3.6.2010 16:51: >> On Thu, 3 Jun 2010, Václav Haisman wrote: >> >>> >>> Hi, >>> is it possible to obtain some sort of a thread ID that identifies a thread >>> within a process other than pthread_self()? Something like gettid() on >>> Linux? Apparently, on FreeBSD the pthread_t is a pointer type and does not >>> identify the thread well enough. GDB on FreeBSD seems to know about threads >>> and does not seem to use the same ID as is pthread_t. >> >> "identifies a thread" well enough for what? pthread_t is suppose >> to be opaque. Whether it is an int, pointer, or whatever, it is >> implementation-defined and not suppose provide any more information >> than available through the standard pthread interfaces. There are >> some non-portable interfaces in <pthread_np.h> though. > Exactly, pthread_t is opaque and it thus it is only by a chance that I can > print its value, it is a pointer on FreeBSD. It could as well be a struct and > then I could not possibly do anything to print the thread identity on screen. > > * 4 Thread 28426ec0 (LWP 100172) 0x0804b9f6 in TestThread::run () > > As shown above, GDB can show some sort of ID, the LWP bit. How does it get > it? Is it possible to get the LWP ID from inside the process without > debugging it? I think the value that it is showing (28426ec0) is the hex value of the pthread_t (pointer). You can also use pthread_[gs]etname_np() from <pthread_np.h> if you want to associate an string identifier with a thread. -- DE
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.4.64.1006031607210.29332>
