diff --git a/gdb.changes b/gdb.changes index 76e5f85..24db00e 100644 --- a/gdb.changes +++ b/gdb.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Wed May 21 10:39:41 CEST 2008 - schwab@suse.de + +- Fix assertion failure. + ------------------------------------------------------------------- Fri May 9 14:05:00 CEST 2008 - schwab@suse.de diff --git a/gdb.spec b/gdb.spec index aca0855..9f121ee 100644 --- a/gdb.spec +++ b/gdb.spec @@ -30,7 +30,7 @@ AutoReqProv: on PreReq: %{install_info_prereq} Summary: The GNU Debugger Version: 6.8 -Release: 14 +Release: 19 %define sss %{nil} Source: gdb-%{version}%{sss}.tar.bz2 Patch1: find-pc-sect-line.diff @@ -43,6 +43,7 @@ Patch7: pie-relocate.diff Patch8: infcall.diff Patch9: examine-prologue.diff Patch10: watchpoints.diff +Patch11: get-prev-frame-1.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -76,7 +77,7 @@ Group: Development/Tools/Debuggers AutoReqProv: on Provides: gdb:/usr/bin/gdbserver Version: 6.8 -Release: 1 +Release: 6 %description -n gdbserver GDBSERVER is a program that allows you to run GDB on a different @@ -114,6 +115,7 @@ Authors: %patch8 -p1 %patch9 %patch10 +%patch11 -p1 %build CFLAGS="$RPM_OPT_FLAGS" \ @@ -175,6 +177,8 @@ rm -rf $RPM_BUILD_ROOT %endif %changelog +* Wed May 21 2008 schwab@suse.de +- Fix assertion failure. * Fri May 09 2008 schwab@suse.de - Split off gdbserver. - Fix watchpoints. diff --git a/get-prev-frame-1.diff b/get-prev-frame-1.diff new file mode 100644 index 0000000..07b7622 --- /dev/null +++ b/get-prev-frame-1.diff @@ -0,0 +1,32 @@ +2008-05-20 Pedro Alves + + * frame.c (get_prev_frame_1): Build frame id before setting + this_frame->prev_p, not after. + +--- + gdb/frame.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +Index: src/gdb/frame.c +=================================================================== +--- src.orig/gdb/frame.c 2008-05-20 22:41:07.000000000 +0100 ++++ src/gdb/frame.c 2008-05-20 22:49:59.000000000 +0100 +@@ -1179,13 +1179,17 @@ get_prev_frame_1 (struct frame_info *thi + } + return this_frame->prev; + } ++ ++ /* If the frame id hasn't been built yet, it must be done before ++ setting a stop reason. */ ++ this_id = get_frame_id (this_frame); ++ + this_frame->prev_p = 1; + this_frame->stop_reason = UNWIND_NO_REASON; + + /* Check that this frame's ID was valid. If it wasn't, don't try to + unwind to the prev frame. Be careful to not apply this test to + the sentinel frame. */ +- this_id = get_frame_id (this_frame); + if (this_frame->level >= 0 && !frame_id_p (this_id)) + { + if (frame_debug)