From: Paul Pluzhnikov <ppluzhnikov@google.com>
To: Joel Brobecker <brobecker@adacore.com>
Cc: gdb@sourceware.org, Tom Tromey <tromey@redhat.com>,
Doug Evans <dje@google.com>
Subject: Re: [gdb-7.0 release] 2009-09-02 status and proposed plan
Date: Fri, 04 Sep 2009 15:25:00 -0000 [thread overview]
Message-ID: <8ac60eac0909040825u25ce064co34550210ec2e5f11@mail.gmail.com> (raw)
In-Reply-To: <8ac60eac0909030854j21d514f9h5047a099a3eb3d80@mail.gmail.com>
On Thu, Sep 3, 2009 at 8:54 AM, Paul Pluzhnikov<ppluzhnikov@google.com> wrote:
> I think elimination of failing asserts:
> http://sourceware.org/ml/gdb-patches/2009-09/msg00062.html
> should be considered release blocking.
I think there is another release blocker:
For the last two weeks we've been running with a beta release built on
20090824 from CVS Head, and have several (more than 20) reports of
SIGSGV in GDB, when restarting the inferior.
Yesterday I got a repro and analyzed it. AFAICT, the problem is that
in (recently added) clean_up_objfile_types, we make copies of types
from unloaded solibs.
Names of these types come from the .debug_info of the corresponding solib.
If solib is small, its .debug_info is obstack_alloc()ed and still
valid at the time of clean_up_objfile_types call.
If it is large, it gets bfd_mmap()ed in dwarf2_read_section(), and is
munmapped in dwarf2_per_objfile_cleanup, which executes *before*
clean_up_objfile_types. By the time we come to strdup in
copy_type_recursive (called from clean_up_objfile_types), the name of
the type has been munmapped.
Here is the crash stack (sorry about gmail line wrapping):
#0 0x00007f0c16a60a30 in strlen () from /usr/lib64/libc.so.6
#1 0x000000000062f896 in xstrdup (s=0x7f0c0ef9ce64 <Address
0x7f0c0ef9ce64 out of bounds>) at
../../../depot2/gcctools/google_vendor_src_branch/gdb/gdb-7.0.x-beta/libiberty/xstrdup.c:33
#2 0x00000000004e5769 in copy_type_recursive (objfile=<value
optimized out>, type=0x17f2a3b8, copied_types=0x17ec8f60)
at ../../../depot2/gcctools/google_vendor_src_branch/gdb/gdb-7.0.x-beta/gdb/gdbtypes.c:2877
#3 0x000000000047200b in clean_up_objfile_types (objfile=0x8903b80,
datum=<value optimized out>)
at ../../../depot2/gcctools/google_vendor_src_branch/gdb/gdb-7.0.x-beta/gdb/python/python-type.c:548
#4 0x000000000040300b in clear_objfile_data (objfile=0x8903b80) at
../../../depot2/gcctools/google_vendor_src_branch/gdb/gdb-7.0.x-beta/gdb/objfiles.c:1036
#5 0x0000000000403a56 in objfile_free_data (objfile=0x8903b80) at
../../../depot2/gcctools/google_vendor_src_branch/gdb/gdb-7.0.x-beta/gdb/objfiles.c:1019
#6 free_objfile (objfile=0x8903b80) at
../../../depot2/gcctools/google_vendor_src_branch/gdb/gdb-7.0.x-beta/gdb/objfiles.c:453
#7 0x0000000000403bec in objfile_purge_solibs () at
../../../depot2/gcctools/google_vendor_src_branch/gdb/gdb-7.0.x-beta/gdb/objfiles.c:758
#8 0x00000000004f0545 in target_pre_inferior (from_tty=0) at
../../../depot2/gcctools/google_vendor_src_branch/gdb/gdb-7.0.x-beta/gdb/target.c:1897
#9 0x00000000004c1b4c in run_command_1 (args=0x0, from_tty=0,
tbreak_at_main=0) at
../../../depot2/gcctools/google_vendor_src_branch/gdb/gdb-7.0.x-beta/gdb/infcmd.c:482
The 0x7f0c0ef9ce64 used to point to "int32" in a DWARF2 section which
has since been removed/unmapped.
I am still working on a stand-alone repro case.
--
Paul Pluzhnikov
next prev parent reply other threads:[~2009-09-04 15:25 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-02 16:44 Joel Brobecker
2009-09-02 17:09 ` Jack Howarth
2009-09-02 17:18 ` Joel Brobecker
2009-09-03 8:58 ` Tristan Gingold
2009-09-02 19:28 ` Tom Tromey
2009-09-03 3:18 ` Eli Zaretskii
2009-09-03 3:30 ` Hui Zhu
2009-09-04 15:48 ` Sérgio Durigan Júnior
2009-09-03 19:28 ` Joel Brobecker
2009-09-03 19:53 ` Tom Tromey
2009-09-03 21:35 ` Joel Brobecker
2009-09-04 15:44 ` Tom Tromey
2009-09-04 21:34 ` Sérgio Durigan Júnior
2009-09-04 21:37 ` Sérgio Durigan Júnior
2009-09-04 21:37 ` Sérgio Durigan Júnior
2009-09-03 19:26 ` Joel Brobecker
2009-09-03 20:12 ` Tom Tromey
2009-09-03 20:39 ` Matt Rice
2009-09-03 21:43 ` Joel Brobecker
2009-09-04 15:36 ` Doug Evans
2009-09-03 2:05 ` Hui Zhu
2009-09-03 19:31 ` Joel Brobecker
2009-09-05 0:25 ` Joel Brobecker
2009-09-05 8:13 ` Mark Kettenis
2009-09-05 8:24 ` Jonas Maebe
2009-09-05 15:58 ` Eli Zaretskii
2009-09-03 4:06 ` Doug Evans
2009-09-03 15:54 ` Paul Pluzhnikov
2009-09-03 16:00 ` Pierre Muller
2009-09-03 16:11 ` Paul Pluzhnikov
2009-09-04 10:20 ` Pierre Muller
2009-09-04 15:07 ` Paul Pluzhnikov
2009-09-07 14:58 ` Pierre Muller
[not found] ` <8ac60eac0909072137g41f7b1f8q2e9e1e6d6d161fc5@mail.gmail.com>
[not found] ` <000301ca309f$35d475d0$a17d6170$@u-strasbg.fr>
2009-09-08 20:41 ` Paul Pluzhnikov
2009-09-03 19:33 ` Joel Brobecker
2009-09-04 15:25 ` Paul Pluzhnikov [this message]
2009-09-04 17:59 ` Paul Pluzhnikov
2009-09-04 18:03 ` Doug Evans
2009-09-05 0:29 ` Joel Brobecker
2009-09-14 17:43 ` Paul Pluzhnikov
2009-09-14 17:52 ` Joel Brobecker
2009-09-14 18:20 ` Paul Pluzhnikov
2009-09-15 20:28 ` Paul Pluzhnikov
2009-09-03 18:34 ` Anirban Sinha
2009-09-04 23:07 ` Joel Brobecker
2009-09-16 6:47 ` Hui Zhu
[not found] ` <F7CE05678329534C957159168FA70DEC5153684DC5@EUSAACMS0703.eamcs.ericsson.se>
2009-09-17 1:02 ` Joel Brobecker
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=8ac60eac0909040825u25ce064co34550210ec2e5f11@mail.gmail.com \
--to=ppluzhnikov@google.com \
--cc=brobecker@adacore.com \
--cc=dje@google.com \
--cc=gdb@sourceware.org \
--cc=tromey@redhat.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