From 3f974e043760fe83ec735271d7413dd7333bc772 Mon Sep 17 00:00:00 2001 From: Jan Kratochvil Date: Aug 01 2008 06:37:43 +0000 Subject: - Fix register assignments with no GDB stack frames, Denys Vlasenko (BZ 436037). --- diff --git a/gdb-6.8-bz436037-reg-no-longer-active.patch b/gdb-6.8-bz436037-reg-no-longer-active.patch new file mode 100644 index 0000000..e03d45b --- /dev/null +++ b/gdb-6.8-bz436037-reg-no-longer-active.patch @@ -0,0 +1,24 @@ +diff -d -urpN src.0/gdb/valops.c src.1/gdb/valops.c +--- src.0/gdb/valops.c 2008-07-27 04:00:03.000000000 +0200 ++++ src.1/gdb/valops.c 2008-07-31 15:17:42.000000000 +0200 +@@ -813,10 +813,18 @@ value_assign (struct value *toval, struc + struct frame_info *frame; + int value_reg; + +- /* Figure out which frame this is in currently. */ +- frame = frame_find_by_id (VALUE_FRAME_ID (toval)); + value_reg = VALUE_REGNUM (toval); + ++ /* Figure out which frame this is in currently. */ ++ frame = frame_find_by_id (VALUE_FRAME_ID (toval)); ++ /* "set $reg+=1" should work on programs with no debug info, ++ but frame_find_by_id returns NULL here (RH bug 436037). ++ Use current frame, it represents CPU state in this case. ++ If frame_find_by_id is changed to do it internally ++ (it is contemplated there), remove this. */ ++ if (!frame) ++ frame = get_current_frame (); ++ /* Probably never happens. */ + if (!frame) + error (_("Value being assigned to is no longer active.")); + diff --git a/gdb-6.8-upstream.patch b/gdb-6.8-upstream.patch index 2d3d010..db95e60 100644 --- a/gdb-6.8-upstream.patch +++ b/gdb-6.8-upstream.patch @@ -1638,3 +1638,83 @@ gdb/ /* Shared library handling. */ set_gdbarch_skip_trampoline_code (gdbarch, ppc64_skip_trampoline_code); set_solib_svr4_fetch_link_map_offsets + + + +http://sourceware.org/ml/gdb-cvs/2008-04/msg00100.html + +2008-04-17 Joel Brobecker + + * breakpoint.c (print_one_breakpoint_location): Make sure to print + the breakpoint address only once. + +=================================================================== +RCS file: /cvs/src/src/gdb/breakpoint.c,v +retrieving revision 1.308 +retrieving revision 1.309 +diff -u -r1.308 -r1.309 +--- src/gdb/breakpoint.c 2008/04/15 14:32:12 1.308 ++++ src/gdb/breakpoint.c 2008/04/17 22:43:17 1.309 +@@ -3607,7 +3607,7 @@ + annotate_field (4); + if (header_of_multiple) + ui_out_field_string (uiout, "addr", ""); +- if (b->loc == NULL || loc->shlib_disabled) ++ else if (b->loc == NULL || loc->shlib_disabled) + ui_out_field_string (uiout, "addr", ""); + else + ui_out_field_core_addr (uiout, "addr", loc->address); + +http://sourceware.org/ml/gdb-cvs/2008-04/msg00148.html + +gdb/ +2008-04-24 Vladimir Prus + + * breakpoint.c (print_one_breakpoint_location): In MI + mode, report the location string the breakpoint was + originally created with. + +gdb/testsuite/ +2008-04-24 Vladimir Prus + + * lib/mi-support.exp (mi_runto_helper): Adjust + for the original-location field. + (mi_create_breakpoint, mi_list_breakpoints): New. + * gdb.mi/mi-break.exp: Adjust. + * gdb.mi/mi2-break.exp: Adjust. + * gdb.mi/mi-pending.exp: Adjust. + * gdb.mi/mi-simplerun.exp: Adjust. + * gdb.mi/mi2-simplerun.exp: Adjust. + * gdb.mi/mi-syn-frame.exp: Adjust. + * gdb.mi/mi2-syn-frame.exp: Adjust. + * gdb.mi/mi-until.exp: Adjust. + * gdb.mi/mi2-until.exp: Adjust. + * gdb.mi/mi-var-display.exp: Adjust. + * gdb.mi/mi2-var-display.exp: Adjust. + * gdb.mi/mi-watch.exp: Adjust. + * gdb.mi/mi2-watch.exp: Adjust. +[ REMOVED ] + +=================================================================== +RCS file: /cvs/src/src/gdb/breakpoint.c,v +retrieving revision 1.310 +retrieving revision 1.311 +diff -u -r1.310 -r1.311 +--- src/gdb/breakpoint.c 2008/04/18 00:41:28 1.310 ++++ src/gdb/breakpoint.c 2008/04/24 08:46:18 1.311 +@@ -3696,6 +3696,15 @@ + print_command_lines (uiout, l, 4); + do_cleanups (script_chain); + } ++ ++ if (ui_out_is_mi_like_p (uiout) && !part_of_multiple) ++ { ++ if (b->addr_string) ++ ui_out_field_string (uiout, "original-location", b->addr_string); ++ else if (b->exp_string) ++ ui_out_field_string (uiout, "original-location", b->exp_string); ++ } ++ + do_cleanups (bkpt_chain); + do_cleanups (old_chain); + } diff --git a/gdb.spec b/gdb.spec index 4d945ec..eda22a3 100644 --- a/gdb.spec +++ b/gdb.spec @@ -6,6 +6,9 @@ Summary: A GNU source-level debugger for C, C++, Java and other languages Name: gdb%{?_with_debug:-debug} +# Compatibility with F-10 rpmbuild: +%define _default_patch_fuzz 2 + # Set version to contents of gdb/version.in. # NOTE: the FSF gdb versions are numbered N.M for official releases, like 6.3 # and, since January 2005, X.Y.Z.date for daily snapshots, like 6.3.50.20050112 # (daily snapshot from mailine), or 6.3.0.20040112 (head of the release branch). @@ -13,7 +16,7 @@ Version: 6.8 # 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: 13%{?_with_upstream:.upstream}%{?dist} +Release: 15%{?_with_upstream:.upstream}%{?dist} License: GPLv3+ Group: Development/Debuggers @@ -358,6 +361,9 @@ Patch317: gdb-6.8-sparc64-silence-memcpy-check.patch # Fix memory trashing on binaries from GCC Ada (workaround GCC PR 35998). Patch318: gdb-6.8-gcc35998-ada-memory-trash.patch +# Fix register assignments with no GDB stack frames (BZ 436037). +Patch330: gdb-6.8-bz436037-reg-no-longer-active.patch + BuildRequires: ncurses-devel glibc-devel gcc make gzip texinfo dejagnu gettext BuildRequires: flex bison sharutils expat-devel Requires: readline @@ -536,6 +542,7 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc-exp.c gdb/p-exp.c %patch316 -p1 %patch317 -p1 %patch318 -p1 +%patch330 -p1 %patch124 -p1 find -name "*.orig" | xargs rm -f @@ -788,6 +795,13 @@ fi %endif %changelog +* Fri Aug 1 2008 Jan Kratochvil - 6.8-15 +- Fix register assignments with no GDB stack frames, Denys Vlasenko (BZ 436037). + +* Fri Jul 25 2008 Jan Kratochvil - 6.8-14 +- Backpoint `original-location' for multi-PC breakpoints (for Nemiver). +- Include _default_patch_fuzz for builds on F-10. + * Fri Jul 25 2008 Jan Kratochvil - 6.8-13 - Fix powerpc recent secure PLTs handling (shared library calls) (BZ 452960). - Fix the testsuite .spec runner to run biarch also on ppc.