From: x x <bapluda@yahoo.com.br>
To: Paul Pluzhnikov <ppluzhnikov@google.com>
Cc: gdb@sourceware.org
Subject: Re: gdb stack trace unreadable for a pthreads application
Date: Thu, 30 Apr 2009 16:30:00 -0000 [thread overview]
Message-ID: <481435.21529.qm@web38104.mail.mud.yahoo.com> (raw)
Paul,
Thank you for your reply.
I am building and running mfsrv exactly from the same machine and same directory. And I am analyzing the core also from the same machine and same user account. I am running on a chrooted system. Could this be the cause of the path mismatch? How can I view which libraries it is using when running, and make sure that gdb uses the same?
Ian
> De: Paul Pluzhnikov <ppluzhnikov@google.com>
> Assunto: Re: gdb stack trace unreadable for a pthreads application
> Para: "x x" <bapluda@yahoo.com.br>
> Cc: gdb@sourceware.org
> Data: Segunda-feira, 27 de Abril de 2009, 1:25
> On Sat, Apr 25, 2009 at 6:56 AM, x x
> <bapluda@yahoo.com.br>
> wrote:
>
> > I have this server app that creates a pool of 24
> threads. I had a core dump the other day and tried to
> investigate the cause.
>
> You didn't say whether SIGSEGV happened on the same host on
> which you
> are trying to analyze the core, but all clues indicate that
> it didn't.
>
> > I can view the stack trace of the thread that caused
> the segmentation fault, but I cannot view the stack trace of
> the other threads.
>
> This is a typical symptom of libc.so.6 mismatch between
> when core was
> produced (on target?) and when it is being analyzed (on
> host).
>
> > The stack trace of the other threads is important for
> me to determine the cause of the crash. Except for thread 2
> these other threads are blocked inside a pthread_mutex_lock
> call. But the stack trace doesn't make any sense.
> > Please view the gdb output in the bottom.
> > Should I upgrade my gdb version? Can you help?
> >
> > Thanks
> >
> > Ian
> >
> >
> >
> > $ uname -a
> > Linux ds5632 2.6.22-8-server #1 SMP Thu Jul 12
> 16:28:57 GMT 2007 i686 GNU/Linux
> >
> > $lsb_release -a
> > No LSB modules are available.
> > Distributor ID: Ubuntu
> > Description: Ubuntu 6.06 LTS
> > Release: 6.06
> > Codename: dapper
> >
> > $gdb mfsrv core.31589
> >
> > GNU gdb 6.4-debian
> > Copyright 2005 Free Software Foundation, Inc.
> > GDB is free software, covered by the GNU General
> Public License, and you are
> > welcome to change it and/or distribute copies of it
> under certain conditions.
> > Type "show copying" to see the conditions.
> > There is absolutely no warranty for GDB. Type "show
> warranty" for details.
> > This GDB was configured as "i486-linux-gnu"...Using
> host libthread_db library
> "/lib/tls/i686/cmov/libthread_db.so.1".
> >
>
> So is this:
>
> > Failed to read a valid object file image from memory.
> > Core was generated by `./mfsrv mf MundialFoot 1'.
> > Program terminated with signal 11, Segmentation
> fault.
> >
>
> And this:
>
> > warning: Can't read pathname for load map:
> Input/output error.
> > Reading symbols from /usr/lib/libstdc++.so.6...done.
> > Loaded symbols for /usr/lib/libstdc++.so.6
> > Reading symbols from
> /lib/tls/i686/cmov/libpthread.so.0...done.
> > Loaded symbols for /lib/tls/i686/cmov/libpthread.so.0
> > Reading symbols from
> /usr/lib/libmysqlclient_r.so.15...done.
> > Loaded symbols for /usr/lib/libmysqlclient_r.so.15
> > Reading symbols from /usr/lib/libz.so.1...done.
> > Loaded symbols for /usr/lib/libz.so.1
> > Reading symbols from
> /lib/tls/i686/cmov/libcrypt.so.1...done.
> > Loaded symbols for /lib/tls/i686/cmov/libcrypt.so.1
> > Reading symbols from
> /lib/tls/i686/cmov/libnsl.so.1...done.
> > Loaded symbols for /lib/tls/i686/cmov/libnsl.so.1
> > Reading symbols from
> /lib/tls/i686/cmov/libm.so.6...done.
> > Loaded symbols for /lib/tls/i686/cmov/libm.so.6
> > Reading symbols from /lib/libgcc_s.so.1...done.
> > Loaded symbols for /lib/libgcc_s.so.1
> > Reading symbols from
> /lib/tls/i686/cmov/libc.so.6...done.
> > Loaded symbols for /lib/tls/i686/cmov/libc.so.6
> > Reading symbols from /lib/ld-linux.so.2...done.
> > Loaded symbols for /lib/ld-linux.so.2
> > #0 0xb7b9c443 in memmove () from
> /lib/tls/i686/cmov/libc.so.6
> > (gdb) info threads
>
> Threads 2 through 24 are blocked in a system call (in
> kernel VDSO page):
>
> > 24 process 31589 0xffffe410 in ?? ()
> > 23 process 31591 0xffffe410 in ?? ()
> > 22 process 31592 0xffffe410 in ?? ()
> > 21 process 31593 0xffffe410 in ?? ()
> > 20 process 31594 0xffffe410 in ?? ()
> > 19 process 31595 0xffffe410 in ?? ()
> > 18 process 31600 0xffffe410 in ?? ()
> > 17 process 31601 0xffffe410 in ?? ()
> > 16 process 31602 0xffffe410 in ?? ()
> > 15 process 31603 0xffffe410 in ?? ()
> > 14 process 31608 0xffffe410 in ?? ()
> > 13 process 31609 0xffffe410 in ?? ()
> > 12 process 31610 0xffffe410 in ?? ()
> > 11 process 31611 0xffffe410 in ?? ()
> > 10 process 31616 0xffffe410 in ?? ()
> > 9 process 31617 0xffffe410 in ?? ()
> > 8 process 31618 0xffffe410 in ?? ()
> > 7 process 31619 0xffffe410 in ?? ()
> > 6 process 31624 0xffffe410 in ?? ()
> > 5 process 31625 0xffffe410 in ?? ()
> > 4 process 31626 0xffffe410 in ?? ()
> > 3 process 31632 0xffffe410 in ?? ()
> > 2 process 31633 0xffffe410 in ?? ()
> > * 1 process 31627 0xb7b9c443 in memmove () from
> /lib/tls/i686/cmov/libc.so.6
> > (gdb) bt 12
> > #0 0xb7b9c443 in memmove () from
> /lib/tls/i686/cmov/libc.so.6
> > #1 0x08066b62 in IE_Sock::Recv (this=0x8098268,
> pch=0x8098264 "", cbToRecv=4, iSecs=-1) at IE_Sock.cc:284
> > #2 0x08066d51 in IE_Sock::RecvInt (this=0x8098268,
> pi=0x8098264, iSecs=-1) at IE_Sock.cc:257
> > #3 0x08070b3f in Thread::InitConnection
> (this=0x8097dfc) at commands.cc:45
> > #4 0x08062d73 in Thread::Start (this=0x8097dfc) at
> SMthreads.cc:195
> > #5 0x08062ec7 in Thread::Thread_Start (pv=0x8097dfc)
> at SMthreads.cc:37
> > #6 0xb7e3f341 in start_thread () from
> /lib/tls/i686/cmov/libpthread.so.0
> > #7 0xb7bfa4ee in clone () from
> /lib/tls/i686/cmov/libc.so.6
> > (gdb) thread 2
> > [Switching to thread 2 (process 31633)]#0 0xffffe410
> in ?? ()
> > (gdb) bt 12
>
> Typical stack trace when libc.so.6 and libpthread.so.0 are
> different
> at core dump and at analysis time:
>
> > #0 0xffffe410 in ?? ()
> > #1 0xacaf8258 in ?? ()
> > #2 0xb7e493b4 in ?? () from
> /lib/tls/i686/cmov/libpthread.so.0
> > #3 0xacaf8220 in ?? ()
> > #4 0xb7e44778 in accept () from
> /lib/tls/i686/cmov/libpthread.so.0
> > #5 0x080661fd in IE_SockSrv::Accept (this=0x8099530,
> psock=0x8099100, sz=0x0, sl=0) at IE_Sock.cc:74
> > #6 0x0808039c in admin_thread::thread_start (pv=0x0)
> at admin_thread.cc:44
> > #7 0xb7e3f341 in start_thread () from
> /lib/tls/i686/cmov/libpthread.so.0
> > #8 0xb7bfa4ee in clone () from
> /lib/tls/i686/cmov/libc.so.6
> > (gdb) thread 3
> > [Switching to thread 3 (process 31632)]#0 0xffffe410
> in ?? ()
> > (gdb) bt 12
> > #0 0xffffe410 in ?? ()
> > #1 0xad2f940c in ?? ()
> > #2 0x00000021 in ?? ()
> > #3 0x00000000 in ?? ()
> >
> > and all remaining the threads (4 to 24) have the same
> screwed up stack
> >
> >
> >
> > Veja quais são os assuntos do momento no
> Yahoo! +Buscados
> > http://br.maisbuscados.yahoo.com
> >
>
> Assuming my guess of host/target mismatch is correct, the
> solution is:
>
> gdb mfsrv
> (gdb) set solib-absolute-prefix /path/to/target/root
> # libc.so.6, libpthread.so.0 should be in
> /path/to/target/root/lib/tls/i686/cmov
> (gdb) core core.31589
>
> Cheers,
> --
> Paul Pluzhnikov
>
Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com
next reply other threads:[~2009-04-30 16:20 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-30 16:30 x x [this message]
2009-04-30 19:03 ` Paul Pluzhnikov
-- strict thread matches above, loose matches on Subject: below --
2009-04-25 14:43 x x
2009-04-27 0:43 ` Paul Pluzhnikov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=481435.21529.qm@web38104.mail.mud.yahoo.com \
--to=bapluda@yahoo.com.br \
--cc=gdb@sourceware.org \
--cc=ppluzhnikov@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox