From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Tue, 24 Sep 2002 19:32:27 +0400 From: Sergey Vlasov To: sisyphus@altlinux.ru Subject: Re: [sisyphus] C++ & gdb Message-Id: <20020924193227.2f90d51a.vsu@altlinux.ru> In-Reply-To: <20020924141742.GA17516@basalt.office.altlinux.ru> References: <20020923134241.GA11462@basalt.office.altlinux.ru> <20020923135336.GA8162@sanja.is.com.ua> <20020923140006.GA14046@basalt.office.altlinux.ru> <20020923141119.GA8263@sanja.is.com.ua> <20020923144526.GC14540@basalt.office.altlinux.ru> <20020923175953.GA9316@sanja.is.com.ua> <20020923182624.GA27164@basalt.office.altlinux.ru> <20020923195718.GA3061@sanja.is.com.ua> <20020924095231.GF10148@basalt.office.altlinux.ru> <20020924180041.78932562.vsu@altlinux.ru> <20020924141742.GA17516@basalt.office.altlinux.ru> X-Mailer: Sylpheed version 0.8.1 (GTK+ 1.2.10; i586-alt-linux) Mime-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="=.Yoltxn)nrzEh7/" Sender: sisyphus-admin@altlinux.ru Errors-To: sisyphus-admin@altlinux.ru X-BeenThere: sisyphus@altlinux.ru X-Mailman-Version: 2.0.13 Precedence: bulk Reply-To: sisyphus@altlinux.ru List-Unsubscribe: , List-Id: List-Post: List-Help: List-Subscribe: , List-Archive: Archived-At: List-Archive: --=.Yoltxn)nrzEh7/ Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: 8bit On Tue, 24 Sep 2002 18:17:42 +0400 "Dmitry V. Levin" wrote: > On Tue, Sep 24, 2002 at 06:00:41PM +0400, Sergey Vlasov wrote: > > Я, кажется, понял, в чем дело. В gdb поддержка потоков теперь сделана > > через libthread_db.so.1 (linuxthreads_db в glibc), а там в коде можно > > обнаружить, например, следующее: > > > > /* Get the global event mask. This is one of the variables which > > are new in the thread library to enable debugging. If it is > > not available we cannot debug. */ > > if (ps_pglobal_lookup (ps, LIBPTHREAD_SO, > > "__pthread_threads_events", &addr) != PS_OK) > > return TD_NOLIBTHREAD; > > > > Символ __pthread_threads_events встречается в libpthread.so.0 только в > > отладочной информации - он не экспортируется (и правильно - программам, > > кроме отладчика, нечего делать в этих внутренностях). Есть еще несколько > > аналогичных символов. Поэтому после отрезания отладочной информации > > libthread_db.so.1 просто не видит потоков. > > > > В сборке glibc-2.2.5-alt12 (Master updates) /lib/libpthread.so.0 > > содержит отладочную информацию, поэтому там эта проблема не возникает > > (если только не добавить к нему glibc-core-i686 из Сизифа - там > > /lib/i686/libpthread.so.0 обрезанный). > > Ok, будем документировать это как feature? > Или следует что-то сделать с /lib/libpthread.so.0? А что с ним можно сделать? Разве что не делать strip. Экспортировать так просто не получится - pthread_keys вообще static, да и имя неподходящее, корежить внутренности glibc лишний раз... бррр... Кстати, в glibc-2.3 все так же? Но сделать что-то надо - иначе, например, нельзя будет отловить ошибки, проявляющиеся только с /lib/i686/libpthread.so.0 (и там тоже надо отключить strip). --=.Yoltxn)nrzEh7/ Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQE9kIWNW82GfkQfsqIRAtAVAJ9c3iCzZaq+Da7RMKQH/K0bYxR24wCfVzM4 T0IFdDEcDCKhvK5pmTOMlVY= =7GaE -----END PGP SIGNATURE----- --=.Yoltxn)nrzEh7/--