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