From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Tue, 24 Sep 2002 18:17:42 +0400 From: "Dmitry V. Levin" To: ALT Linux Sisyphus mailing list Subject: Re: [sisyphus] C++ & gdb Message-ID: <20020924141742.GA17516@basalt.office.altlinux.ru> Mail-Followup-To: ALT Linux Sisyphus mailing list 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> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="+HP7ph2BbKc20aGI" Content-Disposition: inline In-Reply-To: <20020924180041.78932562.vsu@altlinux.ru> X-fingerprint: 9658 398D 181B 1200 8FC5 26B8 F6F8 846B C1E2 3429 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: --+HP7ph2BbKc20aGI Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit On Tue, Sep 24, 2002 at 06:00:41PM +0400, Sergey Vlasov wrote: > > > > Workaround: > > > > 1. установить пакет glibc-core-debug и > > > > 2. запускать gdb/ddd с LD_LIBRARY_PATH=/usr/lib/debug > > > > > > _ОГРОМНОЕ_ спасибо! это действительно помогло (осталось только подумать как > > > это пристроить удобнее - но это уже детали) > > > > Честно говоря, мне пока что не ясно, почему эту нужно делать для > > многопоточных программ (для обычных - не нужно). > > Возможно, в по'strip'анном libpthread удалена какая-то важная для gdb > > информация. Если кто-нибудь в курсе, напишите. > > Я, кажется, понял, в чем дело. В 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? -- ldv --+HP7ph2BbKc20aGI Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQE9kHQG9viEa8HiNCkRAgXbAJ0eedib4klVPODippIBC1KjCcQ4CgCeImXS piUjybLwuplBdNHnmnn/oIE= =b053 -----END PGP SIGNATURE----- --+HP7ph2BbKc20aGI--