libpthread and gdbserver

Dixit, Amol dixit at netapp.com
Mon Aug 4 19:39:39 UTC 2008


Hi,
I am now linking my sample application with libthr instead of 
libpthread, as libthr is the default going forward and it got me past 
issues in my previous mail (below).
I had a question regarding FreeBsd libthread_db.
In libthr_db_ops vector (libthr_db.c), we have pt_ta_map_id2thr() and 
pt_ta_map_lwp2thr(). The former maps tid to thread_handle and latter 
maps pid to tid.
But pt_ta_map_lwp2thr() internally calls pt_ta_map_id2thr() in 
libthr_db.c so 'pid to tid' conversion is missing.
If FreeBsd intends to keep it this way, I will have to modify gdbserver 
to not use 'pid' to find threads as Linux does.
Can someone shed some light on this? Am I mailing the correct 
mailing-list with these queries?
Thanks,
Amol

Dixit, Amol wrote:
> Hi,
> I am attempting to port gdbserver to freebsd (initially only for x86 & 
> libpthread) and I need some assistance with libpthread and libthread-db.
> (i) From the code looks like libpthread does not provide any 'thread 
> creation event' symbol/address to be looked up by thread-db. I got 
> around this by adding a dummy function call before _thread_create 
> returned, and that new symbol can be used by thread-db to set 
> thread-creation breakpoint (analogous to _thread_bp_create in libthr).
> (ii) Next hurdle is the race between thread-db and libpthread. 
> Thread-db tries to access '_thread_list' which is maintained in 
> libpthread and will eventually contain the 'initial thread' but this 
> list is NULL when thread-db tries to access it early. There is a 
> comment before _pthread_create() "It'd be nice to automatically have 
> _libpthread_init called on program execution..." which will be helpful 
> for thread-db. Currently I am stuck here as thread-db cannot enable 
> threading early enough since libpthread is assigning 'initial thread' 
> to '_thread_list' lazily.
>
> Am I on the right track on above issues? Any work going on in this area?
> Really appreciate any help on this project.
>
> Thanks,
> Amol
>
>
> _______________________________________________
> freebsd-threads at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-threads
> To unsubscribe, send any mail to 
> "freebsd-threads-unsubscribe at freebsd.org"


More information about the freebsd-threads mailing list