From 1af55b59fdc3e873a9cd8681805920d90e25ee4f Mon Sep 17 00:00:00 2001 From: Jan Kratochvil Date: Sat, 3 Apr 2010 10:24:58 +0000 Subject: [PATCH] - Fix dangling displays in separate debuginfo (BZ 574483). --- gdb-bz574483-display-sepdebug.patch | 73 +++++++++++++++++++++++++++++ gdb.spec | 9 +++- 2 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 gdb-bz574483-display-sepdebug.patch diff --git a/gdb-bz574483-display-sepdebug.patch b/gdb-bz574483-display-sepdebug.patch new file mode 100644 index 0000000..64ddfa7 --- /dev/null +++ b/gdb-bz574483-display-sepdebug.patch @@ -0,0 +1,73 @@ +http://sourceware.org/ml/gdb-patches/2010-04/msg00055.html +Subject: [patch] Fix dangling displays in separate debug + +[ Backported. ] + +Hi, + +gdb.base/solib-display.exp using _separate_ debug info: +3: c_global = gdbtypes.c:1369: internal-error: check_typedef: Assertion `type' failed. +A problem internal to GDB has been detected, + +This problem was fixed before by: + [patch 1/8] Types GC [unloading observer] + http://sourceware.org/ml/gdb-patches/2009-05/msg00544.html + Re: [patch 3/8] Types GC [display_uses_solib_p to exp_iterate] + http://sourceware.org/ml/gdb-patches/2009-07/msg00054.html + +but as that patchset is still not in providing this temporary fixup instead. + +One may only address that gdb.base/solib-display.exp was testing symbol +in-objfile while now it tests only symbol in-sepdebug-objfile and no longer +the in-objfile case. I find the in-sepdebug-objfile as a superset of +in-objfile test but I can rework it if anyones addresses this test change. + +No regressions on {x86_64,x86_64-m32,i686}-fedora12-linux-gnu. + + +Thanks, +Jan + + +gdb/ +2010-04-03 Jan Kratochvil + + * printcmd.c (display_uses_solib_p): Check also + SEPARATE_DEBUG_OBJFILE. + +gdb/testsuite/ +2010-04-03 Jan Kratochvil + + * gdb.base/solib-display.exp (split solib): New. + +--- a/gdb/printcmd.c ++++ b/gdb/printcmd.c +@@ -1845,7 +1845,10 @@ clear_dangling_display_expressions (stru + + for (d = display_chain; d != NULL; d = d->next) + if (block_objfile (d->block) == objfile +- || (d->exp && exp_uses_objfile (d->exp, objfile))) ++ || (d->exp && exp_uses_objfile (d->exp, objfile)) ++ || (objfile->separate_debug_objfile ++ && (block_objfile (d->block) == objfile->separate_debug_objfile ++ || (d->exp && exp_uses_objfile (d->exp, objfile->separate_debug_objfile))))) + { + xfree (d->exp); + d->exp = NULL; +--- a/gdb/testsuite/gdb.base/solib-display.exp ++++ b/gdb/testsuite/gdb.base/solib-display.exp +@@ -53,6 +53,13 @@ if { [gdb_compile_shlib ${srcfile_lib} ${binfile_lib} $lib_flags] != "" + return -1 + } + ++set test "split solib" ++if {[gdb_gnu_strip_debug $binfile_lib] != 0} { ++ fail $test ++} else { ++ pass $test ++} ++ + gdb_exit + gdb_start + gdb_reinitialize_dir $srcdir/$subdir + diff --git a/gdb.spec b/gdb.spec index 978cb55..b6d3949 100644 --- a/gdb.spec +++ b/gdb.spec @@ -36,7 +36,7 @@ Version: 7.0.1 # The release always contains a leading reserved number, start it at 1. # `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing. -Release: 38%{?_with_upstream:.upstream}%{dist} +Release: 39%{?_with_upstream:.upstream}%{dist} License: GPLv3+ Group: Development/Debuggers @@ -495,6 +495,9 @@ Patch431: gdb-bz575737-pie-duplicate-section-name.patch # [expr-cumulative] Fix using-directive memory leak (Sami Wagiaalla, BZ 578351). Patch437: gdb-using-directive-leak.patch +# Fix dangling displays in separate debuginfo (BZ 574483). +Patch438: gdb-bz574483-display-sepdebug.patch + BuildRequires: ncurses-devel%{?_isa} texinfo gettext flex bison expat-devel%{?_isa} Requires: readline%{?_isa} BuildRequires: readline-devel%{?_isa} @@ -764,6 +767,7 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc-exp.c gdb/p-exp.c %patch429 -p1 %patch431 -p1 %patch437 -p1 +%patch438 -p1 # Always verify their applicability. %patch393 -p1 %patch335 -p1 @@ -1089,6 +1093,9 @@ fi %endif %changelog +* Sat Apr 3 2010 Jan Kratochvil - 7.0.1-39.fc12 +- Fix dangling displays in separate debuginfo (BZ 574483). + * Fri Apr 2 2010 Jan Kratochvil - 7.0.1-38.fc12 - [expr-cumulative] Fix using-directive memory leak (Sami Wagiaalla, BZ 578351).