Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 25 Jul 2008 14:53:51 -0400
From:      "Dixit, Amol" <dixit@netapp.com>
To:        freebsd-threads@freebsd.org
Subject:   libpthread and gdbserver
Message-ID:  <488A213F.70105@netapp.com>

index | next in thread | raw e-mail

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




home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?488A213F.70105>