- Rebase to FSF GDB 7.2.50.20110206 (which is a 7.3 pre-release).

This commit is contained in:
Jan Kratochvil 2011-02-06 22:46:57 +01:00
parent c00fd45a3e
commit cb641a7fa4
7 changed files with 158 additions and 213 deletions

2
.gitignore vendored
View File

@ -1,2 +1,2 @@
/libstdc++-v3-python-r155978.tar.bz2 /libstdc++-v3-python-r155978.tar.bz2
/gdb-7.2.50.20110125.tar.bz2 /gdb-7.2.50.20110206.tar.bz2

View File

@ -1,8 +1,8 @@
Index: gdb-7.2.50.20101116/gdb/breakpoint.c Index: gdb-7.2.50.20110206/gdb/breakpoint.c
=================================================================== ===================================================================
--- gdb-7.2.50.20101116.orig/gdb/breakpoint.c 2010-11-16 07:53:58.000000000 +0100 --- gdb-7.2.50.20110206.orig/gdb/breakpoint.c 2011-02-06 20:39:24.000000000 +0100
+++ gdb-7.2.50.20101116/gdb/breakpoint.c 2010-11-16 08:28:53.000000000 +0100 +++ gdb-7.2.50.20110206/gdb/breakpoint.c 2011-02-06 20:39:44.000000000 +0100
@@ -10249,6 +10249,50 @@ update_breakpoint_locations (struct brea @@ -10587,6 +10587,50 @@ update_breakpoint_locations (struct brea
update_global_location_list (1); update_global_location_list (1);
} }
@ -53,23 +53,23 @@ Index: gdb-7.2.50.20101116/gdb/breakpoint.c
/* Reset a breakpoint given it's struct breakpoint * BINT. /* Reset a breakpoint given it's struct breakpoint * BINT.
The value we return ends up being the return value from catch_errors. The value we return ends up being the return value from catch_errors.
Unused in this case. */ Unused in this case. */
Index: gdb-7.2.50.20101116/gdb/breakpoint.h Index: gdb-7.2.50.20110206/gdb/breakpoint.h
=================================================================== ===================================================================
--- gdb-7.2.50.20101116.orig/gdb/breakpoint.h 2010-11-16 07:53:58.000000000 +0100 --- gdb-7.2.50.20110206.orig/gdb/breakpoint.h 2011-02-06 20:39:24.000000000 +0100
+++ gdb-7.2.50.20101116/gdb/breakpoint.h 2010-11-16 08:29:06.000000000 +0100 +++ gdb-7.2.50.20110206/gdb/breakpoint.h 2011-02-06 20:40:00.000000000 +0100
@@ -1128,4 +1128,7 @@ extern void end_rbreak_breakpoints (void @@ -1194,4 +1194,7 @@ extern struct breakpoint *iterate_over_b
extern struct breakpoint *iterate_over_breakpoints (int (*) (struct breakpoint *,
void *), void *); extern int user_breakpoint_p (struct breakpoint *);
+extern void breakpoints_relocate (struct objfile *objfile, +extern void breakpoints_relocate (struct objfile *objfile,
+ struct section_offsets *delta); + struct section_offsets *delta);
+ +
#endif /* !defined (BREAKPOINT_H) */ #endif /* !defined (BREAKPOINT_H) */
Index: gdb-7.2.50.20101116/gdb/objfiles.c Index: gdb-7.2.50.20110206/gdb/objfiles.c
=================================================================== ===================================================================
--- gdb-7.2.50.20101116.orig/gdb/objfiles.c 2010-10-17 19:45:16.000000000 +0200 --- gdb-7.2.50.20110206.orig/gdb/objfiles.c 2011-01-10 21:38:49.000000000 +0100
+++ gdb-7.2.50.20101116/gdb/objfiles.c 2010-11-16 08:28:53.000000000 +0100 +++ gdb-7.2.50.20110206/gdb/objfiles.c 2011-02-06 20:39:44.000000000 +0100
@@ -844,6 +844,11 @@ objfile_relocate1 (struct objfile *objfi @@ -846,6 +846,11 @@ objfile_relocate1 (struct objfile *objfi
obj_section_addr (s)); obj_section_addr (s));
} }

View File

@ -2,7 +2,7 @@ http://sourceware.org/gdb/wiki/ProjectArcher
http://sourceware.org/gdb/wiki/ArcherBranchManagement http://sourceware.org/gdb/wiki/ArcherBranchManagement
GIT snapshot: GIT snapshot:
commit b3fa51e30637989ca4a8ee4763ba921322a1bd0d commit 8d1fce85d351ec7fec64ed392932fe59148b83fc
branch `archer' - the merge of branches: branch `archer' - the merge of branches:
archer-jankratochvil-vla archer-jankratochvil-vla
@ -14,10 +14,10 @@ archer-tromey-python
diff --git a/gdb/Makefile.in b/gdb/Makefile.in diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index 36cc734..977fe0c 100644 index 66521a2..66a6fc2 100644
--- a/gdb/Makefile.in --- a/gdb/Makefile.in
+++ b/gdb/Makefile.in +++ b/gdb/Makefile.in
@@ -783,7 +783,8 @@ annotate.h sim-regno.h dictionary.h dfp.h main.h frame-unwind.h \ @@ -807,7 +807,8 @@ annotate.h sim-regno.h dictionary.h dfp.h main.h frame-unwind.h \
remote-fileio.h i386-linux-tdep.h vax-tdep.h objc-lang.h \ remote-fileio.h i386-linux-tdep.h vax-tdep.h objc-lang.h \
sentinel-frame.h bcache.h symfile.h windows-tdep.h linux-tdep.h \ sentinel-frame.h bcache.h symfile.h windows-tdep.h linux-tdep.h \
gdb_usleep.h jit.h xml-syscall.h ada-operator.inc microblaze-tdep.h \ gdb_usleep.h jit.h xml-syscall.h ada-operator.inc microblaze-tdep.h \
@ -27,7 +27,7 @@ index 36cc734..977fe0c 100644
# Header files that already have srcdir in them, or which are in objdir. # Header files that already have srcdir in them, or which are in objdir.
@@ -1289,6 +1290,12 @@ stamp-h: $(srcdir)/config.in config.status @@ -1313,6 +1314,12 @@ stamp-h: $(srcdir)/config.in config.status
CONFIG_LINKS= \ CONFIG_LINKS= \
$(SHELL) config.status $(SHELL) config.status
@ -392,7 +392,7 @@ index b9aaf54..e1f3242 100644
/* Return the innermost stack frame executing inside of BLOCK, or NULL /* Return the innermost stack frame executing inside of BLOCK, or NULL
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index 8d0692b..373830f 100644 index 656dedd..2a5f761 100644
--- a/gdb/breakpoint.c --- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c +++ b/gdb/breakpoint.c
@@ -62,6 +62,7 @@ @@ -62,6 +62,7 @@
@ -424,7 +424,7 @@ index 8d0692b..373830f 100644
/* Assuming we're creating a static tracepoint, does S look like a /* Assuming we're creating a static tracepoint, does S look like a
static tracepoint marker spec ("-m MARKER_ID")? */ static tracepoint marker spec ("-m MARKER_ID")? */
#define is_marker_spec(s) \ #define is_marker_spec(s) \
@@ -1269,6 +1277,22 @@ watchpoint_in_thread_scope (struct breakpoint *b) @@ -1309,6 +1317,22 @@ watchpoint_in_thread_scope (struct breakpoint *b)
&& !is_executing (inferior_ptid))); && !is_executing (inferior_ptid)));
} }
@ -447,7 +447,7 @@ index 8d0692b..373830f 100644
/* Assuming that B is a watchpoint: /* Assuming that B is a watchpoint:
- Reparse watchpoint expression, if REPARSE is non-zero - Reparse watchpoint expression, if REPARSE is non-zero
- Evaluate expression and store the result in B->val - Evaluate expression and store the result in B->val
@@ -1328,12 +1352,17 @@ update_watchpoint (struct breakpoint *b, int reparse) @@ -1368,12 +1392,17 @@ update_watchpoint (struct breakpoint *b, int reparse)
struct frame_id saved_frame_id; struct frame_id saved_frame_id;
int frame_saved; int frame_saved;
@ -462,10 +462,10 @@ index 8d0692b..373830f 100644
+ if (b->pspace != current_program_space) + if (b->pspace != current_program_space)
+ return; + return;
+ +
/* We don't free locations. They are stored in bp_location array /* We don't free locations. They are stored in the bp_location array
and update_global_locations will eventually delete them and and update_global_location_list will eventually delete them and
remove breakpoints if needed. */ remove breakpoints if needed. */
@@ -1555,13 +1584,7 @@ update_watchpoint (struct breakpoint *b, int reparse) @@ -1595,13 +1624,7 @@ update_watchpoint (struct breakpoint *b, int reparse)
Watchpoint %d deleted because the program has left the block\n\ Watchpoint %d deleted because the program has left the block\n\
in which its expression is valid.\n"), in which its expression is valid.\n"),
b->number); b->number);
@ -480,7 +480,7 @@ index 8d0692b..373830f 100644
} }
/* Restore the selected frame. */ /* Restore the selected frame. */
@@ -1952,6 +1975,7 @@ insert_breakpoint_locations (void) @@ -1992,6 +2015,7 @@ insert_breakpoint_locations (void)
int val = 0; int val = 0;
int disabled_breaks = 0; int disabled_breaks = 0;
int hw_breakpoint_error = 0; int hw_breakpoint_error = 0;
@ -488,7 +488,7 @@ index 8d0692b..373830f 100644
struct ui_file *tmp_error_stream = mem_fileopen (); struct ui_file *tmp_error_stream = mem_fileopen ();
struct cleanup *cleanups = make_cleanup_ui_file_delete (tmp_error_stream); struct cleanup *cleanups = make_cleanup_ui_file_delete (tmp_error_stream);
@@ -1979,9 +2003,13 @@ insert_breakpoint_locations (void) @@ -2019,9 +2043,13 @@ insert_breakpoint_locations (void)
/* For targets that support global breakpoints, there's no need /* For targets that support global breakpoints, there's no need
to select an inferior to insert breakpoint to. In fact, even to select an inferior to insert breakpoint to. In fact, even
if we aren't attached to any process yet, we should still if we aren't attached to any process yet, we should still
@ -504,7 +504,7 @@ index 8d0692b..373830f 100644
continue; continue;
val = insert_bp_location (bl, tmp_error_stream, &disabled_breaks, val = insert_bp_location (bl, tmp_error_stream, &disabled_breaks,
@@ -2005,13 +2033,19 @@ insert_breakpoint_locations (void) @@ -2045,13 +2073,19 @@ insert_breakpoint_locations (void)
if (bpt->disposition == disp_del_at_next_stop) if (bpt->disposition == disp_del_at_next_stop)
continue; continue;
@ -530,7 +530,7 @@ index 8d0692b..373830f 100644
if (some_failed) if (some_failed)
{ {
for (loc = bpt->loc; loc; loc = loc->next) for (loc = bpt->loc; loc; loc = loc->next)
@@ -3461,6 +3495,8 @@ print_it_typical (bpstat bs) @@ -3501,6 +3535,8 @@ print_it_typical (bpstat bs)
case bp_tracepoint: case bp_tracepoint:
case bp_fast_tracepoint: case bp_fast_tracepoint:
case bp_jit_event: case bp_jit_event:
@ -539,7 +539,7 @@ index 8d0692b..373830f 100644
default: default:
result = PRINT_UNKNOWN; result = PRINT_UNKNOWN;
break; break;
@@ -3682,6 +3718,8 @@ watchpoint_check (void *p) @@ -3722,6 +3758,8 @@ watchpoint_check (void *p)
gdb_assert (bs->breakpoint_at != NULL); gdb_assert (bs->breakpoint_at != NULL);
b = bs->breakpoint_at; b = bs->breakpoint_at;
@ -548,7 +548,7 @@ index 8d0692b..373830f 100644
/* If this is a local watchpoint, we only want to check if the /* If this is a local watchpoint, we only want to check if the
watchpoint frame is in scope if the current thread is the thread watchpoint frame is in scope if the current thread is the thread
that was used to create the watchpoint. */ that was used to create the watchpoint. */
@@ -3791,13 +3829,7 @@ watchpoint_check (void *p) @@ -3831,13 +3869,7 @@ watchpoint_check (void *p)
" deleted because the program has left the block in\n\ " deleted because the program has left the block in\n\
which its expression is valid.\n"); which its expression is valid.\n");
@ -563,7 +563,7 @@ index 8d0692b..373830f 100644
return WP_DELETED; return WP_DELETED;
} }
@@ -4002,9 +4034,7 @@ bpstat_check_watchpoint (bpstat bs) @@ -4042,9 +4074,7 @@ bpstat_check_watchpoint (bpstat bs)
case 0: case 0:
/* Error from catch_errors. */ /* Error from catch_errors. */
printf_filtered (_("Watchpoint %d deleted.\n"), b->number); printf_filtered (_("Watchpoint %d deleted.\n"), b->number);
@ -574,7 +574,7 @@ index 8d0692b..373830f 100644
/* We've already printed what needs to be printed. */ /* We've already printed what needs to be printed. */
bs->print_it = print_it_done; bs->print_it = print_it_done;
break; break;
@@ -4210,7 +4240,7 @@ bpstat_stop_status (struct address_space *aspace, @@ -4250,7 +4280,7 @@ bpstat_stop_status (struct address_space *aspace,
watchpoint as triggered so that we will handle the watchpoint as triggered so that we will handle the
out-of-scope event. We'll get to the watchpoint next out-of-scope event. We'll get to the watchpoint next
iteration. */ iteration. */
@ -583,7 +583,7 @@ index 8d0692b..373830f 100644
b->related_breakpoint->watchpoint_triggered = watch_triggered_yes; b->related_breakpoint->watchpoint_triggered = watch_triggered_yes;
} }
} }
@@ -4332,7 +4362,7 @@ handle_jit_event (void) @@ -4372,7 +4402,7 @@ handle_jit_event (void)
/* Decide what infrun needs to do with this bpstat. */ /* Decide what infrun needs to do with this bpstat. */
struct bpstat_what struct bpstat_what
@ -592,7 +592,7 @@ index 8d0692b..373830f 100644
{ {
struct bpstat_what retval; struct bpstat_what retval;
/* We need to defer calling `solib_add', as adding new symbols /* We need to defer calling `solib_add', as adding new symbols
@@ -4340,12 +4370,13 @@ bpstat_what (bpstat bs) @@ -4380,12 +4410,13 @@ bpstat_what (bpstat bs)
and hence may clear unprocessed entries in the BS chain. */ and hence may clear unprocessed entries in the BS chain. */
int shlib_event = 0; int shlib_event = 0;
int jit_event = 0; int jit_event = 0;
@ -607,7 +607,7 @@ index 8d0692b..373830f 100644
{ {
/* Extract this BS's action. After processing each BS, we check /* Extract this BS's action. After processing each BS, we check
if its action overrides all we've seem so far. */ if its action overrides all we've seem so far. */
@@ -4475,6 +4506,20 @@ bpstat_what (bpstat bs) @@ -4515,6 +4546,20 @@ bpstat_what (bpstat bs)
out already. */ out already. */
internal_error (__FILE__, __LINE__, internal_error (__FILE__, __LINE__,
_("bpstat_what: tracepoint encountered")); _("bpstat_what: tracepoint encountered"));
@ -628,7 +628,7 @@ index 8d0692b..373830f 100644
default: default:
internal_error (__FILE__, __LINE__, internal_error (__FILE__, __LINE__,
_("bpstat_what: unhandled bptype %d"), (int) bptype); _("bpstat_what: unhandled bptype %d"), (int) bptype);
@@ -4512,6 +4557,21 @@ bpstat_what (bpstat bs) @@ -4552,6 +4597,21 @@ bpstat_what (bpstat bs)
handle_jit_event (); handle_jit_event ();
} }
@ -650,7 +650,7 @@ index 8d0692b..373830f 100644
return retval; return retval;
} }
@@ -4633,6 +4693,8 @@ bptype_string (enum bptype type) @@ -4673,6 +4733,8 @@ bptype_string (enum bptype type)
{bp_fast_tracepoint, "fast tracepoint"}, {bp_fast_tracepoint, "fast tracepoint"},
{bp_static_tracepoint, "static tracepoint"}, {bp_static_tracepoint, "static tracepoint"},
{bp_jit_event, "jit events"}, {bp_jit_event, "jit events"},
@ -659,7 +659,7 @@ index 8d0692b..373830f 100644
}; };
if (((int) type >= (sizeof (bptypes) / sizeof (bptypes[0]))) if (((int) type >= (sizeof (bptypes) / sizeof (bptypes[0])))
@@ -4780,6 +4842,8 @@ print_one_breakpoint_location (struct breakpoint *b, @@ -4820,6 +4882,8 @@ print_one_breakpoint_location (struct breakpoint *b,
case bp_fast_tracepoint: case bp_fast_tracepoint:
case bp_static_tracepoint: case bp_static_tracepoint:
case bp_jit_event: case bp_jit_event:
@ -668,7 +668,7 @@ index 8d0692b..373830f 100644
if (opts.addressprint) if (opts.addressprint)
{ {
annotate_field (4); annotate_field (4);
@@ -5061,7 +5125,8 @@ user_settable_breakpoint (const struct breakpoint *b) @@ -5101,7 +5165,8 @@ user_settable_breakpoint (const struct breakpoint *b)
|| b->type == bp_catchpoint || b->type == bp_catchpoint
|| b->type == bp_hardware_breakpoint || b->type == bp_hardware_breakpoint
|| is_tracepoint (b) || is_tracepoint (b)
@ -677,8 +677,8 @@ index 8d0692b..373830f 100644
+ || b->type == bp_gnu_ifunc_resolver); + || b->type == bp_gnu_ifunc_resolver);
} }
/* Print information on user settable breakpoint (watchpoint, etc) /* Return true if this breakpoint was set by the user, false if it is
@@ -5543,6 +5608,8 @@ allocate_bp_location (struct breakpoint *bpt) @@ -5590,6 +5655,8 @@ allocate_bp_location (struct breakpoint *bpt)
case bp_longjmp_master: case bp_longjmp_master:
case bp_std_terminate_master: case bp_std_terminate_master:
case bp_exception_master: case bp_exception_master:
@ -687,7 +687,7 @@ index 8d0692b..373830f 100644
loc->loc_type = bp_loc_software_breakpoint; loc->loc_type = bp_loc_software_breakpoint;
break; break;
case bp_hardware_breakpoint: case bp_hardware_breakpoint:
@@ -5632,6 +5699,7 @@ set_raw_breakpoint_without_location (struct gdbarch *gdbarch, @@ -5679,6 +5746,7 @@ set_raw_breakpoint_without_location (struct gdbarch *gdbarch,
b->ops = NULL; b->ops = NULL;
b->condition_not_parsed = 0; b->condition_not_parsed = 0;
b->py_bp_object = NULL; b->py_bp_object = NULL;
@ -695,7 +695,7 @@ index 8d0692b..373830f 100644
/* Add this breakpoint to the end of the chain so that a list of /* Add this breakpoint to the end of the chain so that a list of
breakpoints will come out in order of increasing numbers. */ breakpoints will come out in order of increasing numbers. */
@@ -5650,7 +5718,7 @@ set_raw_breakpoint_without_location (struct gdbarch *gdbarch, @@ -5697,7 +5765,7 @@ set_raw_breakpoint_without_location (struct gdbarch *gdbarch,
/* Initialize loc->function_name. */ /* Initialize loc->function_name. */
static void static void
@ -704,7 +704,7 @@ index 8d0692b..373830f 100644
{ {
gdb_assert (loc->owner != NULL); gdb_assert (loc->owner != NULL);
@@ -5658,8 +5726,29 @@ set_breakpoint_location_function (struct bp_location *loc) @@ -5705,8 +5773,29 @@ set_breakpoint_location_function (struct bp_location *loc)
|| loc->owner->type == bp_hardware_breakpoint || loc->owner->type == bp_hardware_breakpoint
|| is_tracepoint (loc->owner)) || is_tracepoint (loc->owner))
{ {
@ -736,7 +736,7 @@ index 8d0692b..373830f 100644
if (loc->function_name) if (loc->function_name)
loc->function_name = xstrdup (loc->function_name); loc->function_name = xstrdup (loc->function_name);
} }
@@ -5734,7 +5823,8 @@ set_raw_breakpoint (struct gdbarch *gdbarch, @@ -5781,7 +5870,8 @@ set_raw_breakpoint (struct gdbarch *gdbarch,
b->loc->section = sal.section; b->loc->section = sal.section;
b->line_number = sal.line; b->line_number = sal.line;
@ -746,7 +746,7 @@ index 8d0692b..373830f 100644
breakpoints_changed (); breakpoints_changed ();
@@ -6838,7 +6928,7 @@ clone_momentary_breakpoint (struct breakpoint *orig) @@ -6898,7 +6988,7 @@ clone_momentary_breakpoint (struct breakpoint *orig)
copy = set_raw_breakpoint_without_location (orig->gdbarch, orig->type); copy = set_raw_breakpoint_without_location (orig->gdbarch, orig->type);
copy->loc = allocate_bp_location (copy); copy->loc = allocate_bp_location (copy);
@ -755,7 +755,7 @@ index 8d0692b..373830f 100644
copy->loc->gdbarch = orig->loc->gdbarch; copy->loc->gdbarch = orig->loc->gdbarch;
copy->loc->requested_address = orig->loc->requested_address; copy->loc->requested_address = orig->loc->requested_address;
@@ -6938,6 +7028,7 @@ mention (struct breakpoint *b) @@ -6998,6 +7088,7 @@ mention (struct breakpoint *b)
do_cleanups (ui_out_chain); do_cleanups (ui_out_chain);
break; break;
case bp_breakpoint: case bp_breakpoint:
@ -763,7 +763,7 @@ index 8d0692b..373830f 100644
if (ui_out_is_mi_like_p (uiout)) if (ui_out_is_mi_like_p (uiout))
{ {
say_where = 0; say_where = 0;
@@ -6948,6 +7039,8 @@ mention (struct breakpoint *b) @@ -7008,6 +7099,8 @@ mention (struct breakpoint *b)
else else
printf_filtered (_("Breakpoint")); printf_filtered (_("Breakpoint"));
printf_filtered (_(" %d"), b->number); printf_filtered (_(" %d"), b->number);
@ -772,7 +772,7 @@ index 8d0692b..373830f 100644
say_where = 1; say_where = 1;
break; break;
case bp_hardware_breakpoint: case bp_hardware_breakpoint:
@@ -7007,6 +7100,7 @@ mention (struct breakpoint *b) @@ -7067,6 +7160,7 @@ mention (struct breakpoint *b)
case bp_longjmp_master: case bp_longjmp_master:
case bp_std_terminate_master: case bp_std_terminate_master:
case bp_exception_master: case bp_exception_master:
@ -780,7 +780,7 @@ index 8d0692b..373830f 100644
break; break;
} }
@@ -7067,7 +7161,8 @@ add_location_to_breakpoint (struct breakpoint *b, @@ -7127,7 +7221,8 @@ add_location_to_breakpoint (struct breakpoint *b,
gdb_assert (loc->pspace != NULL); gdb_assert (loc->pspace != NULL);
loc->section = sal->section; loc->section = sal->section;
@ -790,7 +790,7 @@ index 8d0692b..373830f 100644
return loc; return loc;
} }
@@ -8513,6 +8608,7 @@ watch_command_1 (char *arg, int accessflag, int from_tty, @@ -8573,6 +8668,7 @@ watch_command_1 (char *arg, int accessflag, int from_tty,
b = set_raw_breakpoint_without_location (NULL, bp_type); b = set_raw_breakpoint_without_location (NULL, bp_type);
set_breakpoint_number (internal, b); set_breakpoint_number (internal, b);
b->thread = thread; b->thread = thread;
@ -798,7 +798,7 @@ index 8d0692b..373830f 100644
b->disposition = disp_donttouch; b->disposition = disp_donttouch;
b->exp = exp; b->exp = exp;
b->exp_valid_block = exp_valid_block; b->exp_valid_block = exp_valid_block;
@@ -9684,6 +9780,9 @@ update_global_location_list (int should_insert) @@ -9744,6 +9840,9 @@ update_global_location_list (int should_insert)
int keep_in_target = 0; int keep_in_target = 0;
int removed = 0; int removed = 0;
@ -808,7 +808,7 @@ index 8d0692b..373830f 100644
/* Skip LOCP entries which will definitely never be needed. /* Skip LOCP entries which will definitely never be needed.
Stop either at or being the one matching OLD_LOC. */ Stop either at or being the one matching OLD_LOC. */
while (locp < bp_location + bp_location_count while (locp < bp_location + bp_location_count
@@ -10000,12 +10099,22 @@ delete_breakpoint (struct breakpoint *bpt) @@ -10060,12 +10159,20 @@ delete_breakpoint (struct breakpoint *bpt)
/* At least avoid this stale reference until the reference counting /* At least avoid this stale reference until the reference counting
of breakpoints gets resolved. */ of breakpoints gets resolved. */
@ -819,24 +819,22 @@ index 8d0692b..373830f 100644
- bpt->related_breakpoint->disposition = disp_del_at_next_stop; - bpt->related_breakpoint->disposition = disp_del_at_next_stop;
- bpt->related_breakpoint->related_breakpoint = NULL; - bpt->related_breakpoint->related_breakpoint = NULL;
- bpt->related_breakpoint = NULL; - bpt->related_breakpoint = NULL;
+ struct breakpoint *related;
+
+ if (bpt->type == bp_watchpoint_scope) + if (bpt->type == bp_watchpoint_scope)
+ watchpoint_del_at_next_stop (bpt->related_breakpoint); + watchpoint_del_at_next_stop (bpt->related_breakpoint);
+ else if (bpt->related_breakpoint->type == bp_watchpoint_scope) + else if (bpt->related_breakpoint->type == bp_watchpoint_scope)
+ watchpoint_del_at_next_stop (bpt); + watchpoint_del_at_next_stop (bpt);
+ else
+ {
+ struct breakpoint *related;
+ +
+ /* Unlink bpt from the bpt->related_breakpoint ring. */ + /* Unlink bpt from the bpt->related_breakpoint ring. */
+ for (related = bpt; related->related_breakpoint != bpt; + for (related = bpt; related->related_breakpoint != bpt;
+ related = related->related_breakpoint); + related = related->related_breakpoint);
+ related->related_breakpoint = bpt->related_breakpoint; + related->related_breakpoint = bpt->related_breakpoint;
+ bpt->related_breakpoint = bpt; + bpt->related_breakpoint = bpt;
+ }
} }
observer_notify_breakpoint_deleted (bpt->number); observer_notify_breakpoint_deleted (bpt->number);
@@ -10336,6 +10445,9 @@ update_breakpoint_locations (struct breakpoint *b, @@ -10396,6 +10503,9 @@ update_breakpoint_locations (struct breakpoint *b,
return; return;
b->loc = NULL; b->loc = NULL;
@ -846,7 +844,7 @@ index 8d0692b..373830f 100644
for (i = 0; i < sals.nelts; ++i) for (i = 0; i < sals.nelts; ++i)
{ {
@@ -10363,11 +10475,7 @@ update_breakpoint_locations (struct breakpoint *b, @@ -10423,11 +10533,7 @@ update_breakpoint_locations (struct breakpoint *b,
} }
} }
@ -859,7 +857,7 @@ index 8d0692b..373830f 100644
b->source_file = xstrdup (sals.sals[i].symtab->filename); b->source_file = xstrdup (sals.sals[i].symtab->filename);
if (b->line_number == 0) if (b->line_number == 0)
@@ -10450,6 +10558,7 @@ breakpoint_re_set_one (void *bint) @@ -10510,6 +10616,7 @@ breakpoint_re_set_one (void *bint)
case bp_tracepoint: case bp_tracepoint:
case bp_fast_tracepoint: case bp_fast_tracepoint:
case bp_static_tracepoint: case bp_static_tracepoint:
@ -867,7 +865,7 @@ index 8d0692b..373830f 100644
/* Do not attempt to re-set breakpoints disabled during startup. */ /* Do not attempt to re-set breakpoints disabled during startup. */
if (b->enable_state == bp_startup_disabled) if (b->enable_state == bp_startup_disabled)
return 0; return 0;
@@ -10620,6 +10729,7 @@ breakpoint_re_set_one (void *bint) @@ -10680,6 +10787,7 @@ breakpoint_re_set_one (void *bint)
case bp_exception: case bp_exception:
case bp_exception_resume: case bp_exception_resume:
case bp_jit_event: case bp_jit_event:
@ -875,7 +873,7 @@ index 8d0692b..373830f 100644
break; break;
} }
@@ -10794,11 +10904,25 @@ map_breakpoint_numbers (char *args, void (*function) (struct breakpoint *, @@ -10847,11 +10955,25 @@ map_breakpoint_numbers (char *args, void (*function) (struct breakpoint *,
ALL_BREAKPOINTS_SAFE (b, tmp) ALL_BREAKPOINTS_SAFE (b, tmp)
if (b->number == num) if (b->number == num)
{ {
@ -905,7 +903,7 @@ index 8d0692b..373830f 100644
break; break;
} }
if (match == 0) if (match == 0)
@@ -11913,6 +12037,22 @@ all_tracepoints () @@ -11966,6 +12088,22 @@ all_tracepoints ()
return tp_vec; return tp_vec;
} }
@ -928,7 +926,7 @@ index 8d0692b..373830f 100644
/* This help string is used for the break, hbreak, tbreak and thbreak /* This help string is used for the break, hbreak, tbreak and thbreak
commands. It is defined as a macro to prevent duplication. commands. It is defined as a macro to prevent duplication.
@@ -11998,6 +12138,107 @@ iterate_over_breakpoints (int (*callback) (struct breakpoint *, void *), @@ -12051,6 +12189,107 @@ iterate_over_breakpoints (int (*callback) (struct breakpoint *, void *),
return NULL; return NULL;
} }
@ -1036,14 +1034,14 @@ index 8d0692b..373830f 100644
void void
_initialize_breakpoint (void) _initialize_breakpoint (void)
{ {
@@ -12532,4 +12773,5 @@ inferior in all-stop mode, gdb behaves as if always-inserted mode is off."), @@ -12585,4 +12824,5 @@ inferior in all-stop mode, gdb behaves as if always-inserted mode is off."),
automatic_hardware_breakpoints = 1; automatic_hardware_breakpoints = 1;
observer_attach_about_to_proceed (breakpoint_about_to_proceed); observer_attach_about_to_proceed (breakpoint_about_to_proceed);
+ observer_attach_mark_used (breakpoint_types_mark_used); + observer_attach_mark_used (breakpoint_types_mark_used);
} }
diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h
index 69598a7..336faf7 100644 index 86fae66..ffef340 100644
--- a/gdb/breakpoint.h --- a/gdb/breakpoint.h
+++ b/gdb/breakpoint.h +++ b/gdb/breakpoint.h
@@ -148,6 +148,9 @@ enum bptype @@ -148,6 +148,9 @@ enum bptype
@ -1079,10 +1077,10 @@ index 9909e13..30c3dfe 100644
c_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, c_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream,
diff --git a/gdb/data-directory/Makefile.in b/gdb/data-directory/Makefile.in diff --git a/gdb/data-directory/Makefile.in b/gdb/data-directory/Makefile.in
index 565a837..c9ff0de 100644 index 11cf2e6..9a2a8f8 100644
--- a/gdb/data-directory/Makefile.in --- a/gdb/data-directory/Makefile.in
+++ b/gdb/data-directory/Makefile.in +++ b/gdb/data-directory/Makefile.in
@@ -51,11 +51,23 @@ SYSCALLS_FILES = \ @@ -52,11 +52,23 @@ SYSCALLS_FILES = \
PYTHON_DIR = python PYTHON_DIR = python
PYTHON_INSTALL_DIR = $(DESTDIR)$(GDB_DATADIR)/$(PYTHON_DIR) PYTHON_INSTALL_DIR = $(DESTDIR)$(GDB_DATADIR)/$(PYTHON_DIR)
PYTHON_FILES = \ PYTHON_FILES = \
@ -1123,7 +1121,7 @@ index 9409dde..f0fa4c7 100644
extern char *xfullpath (const char *); extern char *xfullpath (const char *);
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index cc2391b..161ac1f 100644 index 6a3c7de..b2165f8 100644
--- a/gdb/doc/gdb.texinfo --- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo
@@ -1177,6 +1177,16 @@ for remote debugging. @@ -1177,6 +1177,16 @@ for remote debugging.
@ -1183,7 +1181,7 @@ index cc2391b..161ac1f 100644
@cindex python pagination @cindex python pagination
At startup, @value{GDBN} overrides Python's @code{sys.stdout} and At startup, @value{GDBN} overrides Python's @code{sys.stdout} and
diff --git a/gdb/doc/gdbint.texinfo b/gdb/doc/gdbint.texinfo diff --git a/gdb/doc/gdbint.texinfo b/gdb/doc/gdbint.texinfo
index 8149cb9..4812558 100644 index a494707..d5b9cf8 100644
--- a/gdb/doc/gdbint.texinfo --- a/gdb/doc/gdbint.texinfo
+++ b/gdb/doc/gdbint.texinfo +++ b/gdb/doc/gdbint.texinfo
@@ -2104,6 +2104,18 @@ time, and so we attempt to handle symbols incrementally. For instance, @@ -2104,6 +2104,18 @@ time, and so we attempt to handle symbols incrementally. For instance,
@ -1712,7 +1710,7 @@ index ee52506..6a77c3f 100644
#endif /* dwarf2loc.h */ #endif /* dwarf2loc.h */
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index 03bd331..0d4d4f9 100644 index f269dee..284a22f 100644
--- a/gdb/dwarf2read.c --- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c
@@ -1211,6 +1211,9 @@ static void fill_in_loclist_baton (struct dwarf2_cu *cu, @@ -1211,6 +1211,9 @@ static void fill_in_loclist_baton (struct dwarf2_cu *cu,
@ -1745,7 +1743,7 @@ index 03bd331..0d4d4f9 100644
static void dwarf2_release_queue (void *dummy); static void dwarf2_release_queue (void *dummy);
static void queue_comp_unit (struct dwarf2_per_cu_data *per_cu, static void queue_comp_unit (struct dwarf2_per_cu_data *per_cu,
@@ -7263,6 +7272,29 @@ process_enumeration_scope (struct die_info *die, struct dwarf2_cu *cu) @@ -7312,6 +7321,29 @@ process_enumeration_scope (struct die_info *die, struct dwarf2_cu *cu)
new_symbol (die, this_type, cu); new_symbol (die, this_type, cu);
} }
@ -1775,7 +1773,7 @@ index 03bd331..0d4d4f9 100644
/* Extract all information from a DW_TAG_array_type DIE and put it in /* Extract all information from a DW_TAG_array_type DIE and put it in
the DIE's type field. For now, this only handles one dimensional the DIE's type field. For now, this only handles one dimensional
arrays. */ arrays. */
@@ -7276,7 +7308,7 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu) @@ -7325,7 +7357,7 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu)
struct type *element_type, *range_type, *index_type; struct type *element_type, *range_type, *index_type;
struct type **range_types = NULL; struct type **range_types = NULL;
struct attribute *attr; struct attribute *attr;
@ -1784,7 +1782,7 @@ index 03bd331..0d4d4f9 100644
struct cleanup *back_to; struct cleanup *back_to;
char *name; char *name;
@@ -7329,17 +7361,11 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu) @@ -7378,17 +7410,11 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu)
type = element_type; type = element_type;
if (read_array_order (die, cu) == DW_ORD_col_major) if (read_array_order (die, cu) == DW_ORD_col_major)
@ -1807,7 +1805,7 @@ index 03bd331..0d4d4f9 100644
/* Understand Dwarf2 support for vector types (like they occur on /* Understand Dwarf2 support for vector types (like they occur on
the PowerPC w/ AltiVec). Gcc just adds another attribute to the the PowerPC w/ AltiVec). Gcc just adds another attribute to the
@@ -7833,29 +7859,114 @@ read_tag_string_type (struct die_info *die, struct dwarf2_cu *cu) @@ -7882,29 +7908,114 @@ read_tag_string_type (struct die_info *die, struct dwarf2_cu *cu)
struct gdbarch *gdbarch = get_objfile_arch (objfile); struct gdbarch *gdbarch = get_objfile_arch (objfile);
struct type *type, *range_type, *index_type, *char_type; struct type *type, *range_type, *index_type, *char_type;
struct attribute *attr; struct attribute *attr;
@ -1936,7 +1934,7 @@ index 03bd331..0d4d4f9 100644
char_type = language_string_char_type (cu->language_defn, gdbarch); char_type = language_string_char_type (cu->language_defn, gdbarch);
type = create_string_type (NULL, char_type, range_type); type = create_string_type (NULL, char_type, range_type);
@@ -8136,8 +8247,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) @@ -8185,8 +8296,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
struct type *base_type; struct type *base_type;
struct type *range_type; struct type *range_type;
struct attribute *attr; struct attribute *attr;
@ -1946,7 +1944,7 @@ index 03bd331..0d4d4f9 100644
char *name; char *name;
LONGEST negative_mask; LONGEST negative_mask;
@@ -8150,53 +8260,126 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) @@ -8199,53 +8309,126 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
if (range_type) if (range_type)
return range_type; return range_type;
@ -2108,7 +2106,7 @@ index 03bd331..0d4d4f9 100644
} }
/* Dwarf-2 specifications explicitly allows to create subrange types /* Dwarf-2 specifications explicitly allows to create subrange types
@@ -8237,24 +8420,41 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) @@ -8286,24 +8469,41 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
} }
} }
@ -2166,7 +2164,7 @@ index 03bd331..0d4d4f9 100644
name = dwarf2_name (die, cu); name = dwarf2_name (die, cu);
if (name) if (name)
@@ -10731,10 +10931,12 @@ var_decode_location (struct attribute *attr, struct symbol *sym, @@ -10780,10 +10980,12 @@ var_decode_location (struct attribute *attr, struct symbol *sym,
(i.e. when the value of a register or memory location is (i.e. when the value of a register or memory location is
referenced, or a thread-local block, etc.). Then again, it might referenced, or a thread-local block, etc.). Then again, it might
not be worthwhile. I'm assuming that it isn't unless performance not be worthwhile. I'm assuming that it isn't unless performance
@ -2181,7 +2179,7 @@ index 03bd331..0d4d4f9 100644
} }
/* Given a pointer to a DWARF information entry, figure out if we need /* Given a pointer to a DWARF information entry, figure out if we need
@@ -10772,6 +10974,8 @@ new_symbol_full (struct die_info *die, struct type *type, struct dwarf2_cu *cu, @@ -10821,6 +11023,8 @@ new_symbol_full (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
else else
sym = OBSTACK_ZALLOC (&objfile->objfile_obstack, struct symbol); sym = OBSTACK_ZALLOC (&objfile->objfile_obstack, struct symbol);
OBJSTAT (objfile, n_syms++); OBJSTAT (objfile, n_syms++);
@ -2190,7 +2188,7 @@ index 03bd331..0d4d4f9 100644
/* Cache this symbol's name and the name's demangled form (if any). */ /* Cache this symbol's name and the name's demangled form (if any). */
SYMBOL_SET_LANGUAGE (sym, cu->language); SYMBOL_SET_LANGUAGE (sym, cu->language);
@@ -11544,6 +11748,9 @@ read_type_die_1 (struct die_info *die, struct dwarf2_cu *cu) @@ -11593,6 +11797,9 @@ read_type_die_1 (struct die_info *die, struct dwarf2_cu *cu)
break; break;
} }
@ -2200,7 +2198,7 @@ index 03bd331..0d4d4f9 100644
return this_type; return this_type;
} }
@@ -14356,60 +14563,98 @@ fill_in_loclist_baton (struct dwarf2_cu *cu, @@ -14405,61 +14612,99 @@ fill_in_loclist_baton (struct dwarf2_cu *cu,
baton->base_address = cu->base_address; baton->base_address = cu->base_address;
} }
@ -2217,7 +2215,8 @@ index 03bd331..0d4d4f9 100644
- /* ".debug_loc" may not exist at all, or the offset may be outside - /* ".debug_loc" may not exist at all, or the offset may be outside
- the section. If so, fall through to the complaint in the - the section. If so, fall through to the complaint in the
- other branch. */ - other branch. */
- && DW_UNSND (attr) < dwarf2_per_objfile->loc.size) - && DW_UNSND (attr) < dwarf2_section_size (dwarf2_per_objfile->objfile,
- &dwarf2_per_objfile->loc))
- { - {
- struct dwarf2_loclist_baton *baton; - struct dwarf2_loclist_baton *baton;
+ struct dwarf2_locexpr_baton *baton; + struct dwarf2_locexpr_baton *baton;
@ -2264,7 +2263,8 @@ index 03bd331..0d4d4f9 100644
+ /* ".debug_loc" may not exist at all, or the offset may be outside + /* ".debug_loc" may not exist at all, or the offset may be outside
+ the section. If so, fall through to the complaint in the + the section. If so, fall through to the complaint in the
+ other branch. */ + other branch. */
+ && DW_UNSND (attr) < dwarf2_per_objfile->loc.size)) + && DW_UNSND (attr) < dwarf2_section_size (dwarf2_per_objfile->objfile,
+ &dwarf2_per_objfile->loc)))
+ return NULL; + return NULL;
+ +
+ baton = obstack_alloc (&cu->objfile->objfile_obstack, + baton = obstack_alloc (&cu->objfile->objfile_obstack,
@ -2341,7 +2341,7 @@ index 03bd331..0d4d4f9 100644
} }
} }
@@ -14755,6 +15000,31 @@ offset_and_type_eq (const void *item_lhs, const void *item_rhs) @@ -14805,6 +15050,31 @@ offset_and_type_eq (const void *item_lhs, const void *item_rhs)
return ofs_lhs->offset == ofs_rhs->offset; return ofs_lhs->offset == ofs_rhs->offset;
} }
@ -2373,7 +2373,7 @@ index 03bd331..0d4d4f9 100644
/* Set the type associated with DIE to TYPE. Save it in CU's hash /* Set the type associated with DIE to TYPE. Save it in CU's hash
table if necessary. For convenience, return TYPE. table if necessary. For convenience, return TYPE.
@@ -14780,6 +15050,8 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu) @@ -14830,6 +15100,8 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
struct objfile *objfile = cu->objfile; struct objfile *objfile = cu->objfile;
htab_t *type_hash_ptr; htab_t *type_hash_ptr;
@ -3254,7 +3254,7 @@ index ad988d2..985fef6 100644
{ {
case TYPE_CODE_ARRAY: case TYPE_CODE_ARRAY:
diff --git a/gdb/f-valprint.c b/gdb/f-valprint.c diff --git a/gdb/f-valprint.c b/gdb/f-valprint.c
index 94a70a1..7bb04e7 100644 index a15e777..4d133bc 100644
--- a/gdb/f-valprint.c --- a/gdb/f-valprint.c
+++ b/gdb/f-valprint.c +++ b/gdb/f-valprint.c
@@ -54,15 +54,17 @@ int f77_array_offset_tbl[MAX_FORTRAN_DIMS + 1][2]; @@ -54,15 +54,17 @@ int f77_array_offset_tbl[MAX_FORTRAN_DIMS + 1][2];
@ -5784,7 +5784,7 @@ index 8497991..4635853 100644
SYMBOL_LINKAGE_NAME (tsymbol)) == 0) SYMBOL_LINKAGE_NAME (tsymbol)) == 0)
return SYMBOL_VALUE_ADDRESS (msymbol); return SYMBOL_VALUE_ADDRESS (msymbol);
diff --git a/gdb/p-valprint.c b/gdb/p-valprint.c diff --git a/gdb/p-valprint.c b/gdb/p-valprint.c
index 34decb9..0399e0a 100644 index ca7606a..d73f54d 100644
--- a/gdb/p-valprint.c --- a/gdb/p-valprint.c
+++ b/gdb/p-valprint.c +++ b/gdb/p-valprint.c
@@ -38,6 +38,7 @@ @@ -38,6 +38,7 @@
@ -6190,10 +6190,10 @@ index 0c5563e..e4f0b25 100644
return ret; return ret;
diff --git a/gdb/printcmd.c b/gdb/printcmd.c diff --git a/gdb/printcmd.c b/gdb/printcmd.c
index f435f6d..7bcb667 100644 index 29ffbf5..42b7821 100644
--- a/gdb/printcmd.c --- a/gdb/printcmd.c
+++ b/gdb/printcmd.c +++ b/gdb/printcmd.c
@@ -974,6 +974,11 @@ print_command_1 (char *exp, int inspect, int voidprint) @@ -964,6 +964,11 @@ print_command_1 (char *exp, int inspect, int voidprint)
else else
val = access_value_history (0); val = access_value_history (0);
@ -6205,7 +6205,7 @@ index f435f6d..7bcb667 100644
if (voidprint || (val && value_type (val) && if (voidprint || (val && value_type (val) &&
TYPE_CODE (value_type (val)) != TYPE_CODE_VOID)) TYPE_CODE (value_type (val)) != TYPE_CODE_VOID))
{ {
@@ -1475,6 +1480,22 @@ x_command (char *exp, int from_tty) @@ -1465,6 +1470,22 @@ x_command (char *exp, int from_tty)
set_internalvar (lookup_internalvar ("__"), last_examine_value); set_internalvar (lookup_internalvar ("__"), last_examine_value);
} }
} }
@ -6228,7 +6228,7 @@ index f435f6d..7bcb667 100644
/* Add an expression to the auto-display chain. /* Add an expression to the auto-display chain.
@@ -2875,4 +2896,6 @@ Show printing of source filename and line number with <symbol>."), NULL, @@ -2865,4 +2886,6 @@ Show printing of source filename and line number with <symbol>."), NULL,
add_com ("eval", no_class, eval_command, _("\ add_com ("eval", no_class, eval_command, _("\
Convert \"printf format string\", arg1, arg2, arg3, ..., argn to\n\ Convert \"printf format string\", arg1, arg2, arg3, ..., argn to\n\
a command line, and call it.")); a command line, and call it."));
@ -7064,7 +7064,7 @@ index 0000000..debb3bb
+ +
+InScope () +InScope ()
diff --git a/gdb/python/py-type.c b/gdb/python/py-type.c diff --git a/gdb/python/py-type.c b/gdb/python/py-type.c
index 9a6b077..656d3a1 100644 index c010420..92073f6 100644
--- a/gdb/python/py-type.c --- a/gdb/python/py-type.c
+++ b/gdb/python/py-type.c +++ b/gdb/python/py-type.c
@@ -29,6 +29,8 @@ @@ -29,6 +29,8 @@
@ -7250,7 +7250,7 @@ index 9a6b077..656d3a1 100644
diff --git a/gdb/python/py-value.c b/gdb/python/py-value.c diff --git a/gdb/python/py-value.c b/gdb/python/py-value.c
index 1aa9443..786c45a 100644 index 27bf101..8c08f39 100644
--- a/gdb/python/py-value.c --- a/gdb/python/py-value.c
+++ b/gdb/python/py-value.c +++ b/gdb/python/py-value.c
@@ -28,6 +28,7 @@ @@ -28,6 +28,7 @@
@ -7261,7 +7261,7 @@ index 1aa9443..786c45a 100644
#ifdef HAVE_PYTHON #ifdef HAVE_PYTHON
@@ -1222,6 +1223,17 @@ gdbpy_is_value_object (PyObject *obj) @@ -1211,6 +1212,17 @@ gdbpy_is_value_object (PyObject *obj)
return PyObject_TypeCheck (obj, &value_object_type); return PyObject_TypeCheck (obj, &value_object_type);
} }
@ -7279,7 +7279,7 @@ index 1aa9443..786c45a 100644
void void
gdbpy_initialize_values (void) gdbpy_initialize_values (void)
{ {
@@ -1232,6 +1244,8 @@ gdbpy_initialize_values (void) @@ -1221,6 +1233,8 @@ gdbpy_initialize_values (void)
PyModule_AddObject (gdb_module, "Value", (PyObject *) &value_object_type); PyModule_AddObject (gdb_module, "Value", (PyObject *) &value_object_type);
values_in_python = NULL; values_in_python = NULL;
@ -7289,7 +7289,7 @@ index 1aa9443..786c45a 100644
diff --git a/gdb/python/python.c b/gdb/python/python.c diff --git a/gdb/python/python.c b/gdb/python/python.c
index 375042c..b6af645 100644 index b79504a..2011668 100644
--- a/gdb/python/python.c --- a/gdb/python/python.c
+++ b/gdb/python/python.c +++ b/gdb/python/python.c
@@ -49,8 +49,11 @@ static int gdbpy_should_print_stack = 1; @@ -49,8 +49,11 @@ static int gdbpy_should_print_stack = 1;
@ -7304,7 +7304,7 @@ index 375042c..b6af645 100644
static PyMethodDef GdbMethods[]; static PyMethodDef GdbMethods[];
@@ -728,6 +731,53 @@ gdbpy_print_stack (void) @@ -722,6 +725,53 @@ gdbpy_print_stack (void)
/* Return the current Progspace. /* Return the current Progspace.
There always is one. */ There always is one. */
@ -7358,7 +7358,7 @@ index 375042c..b6af645 100644
static PyObject * static PyObject *
gdbpy_get_current_progspace (PyObject *unused1, PyObject *unused2) gdbpy_get_current_progspace (PyObject *unused1, PyObject *unused2)
@@ -1102,6 +1152,8 @@ static PyMethodDef GdbMethods[] = @@ -1106,6 +1156,8 @@ static PyMethodDef GdbMethods[] =
"Get a value from history" }, "Get a value from history" },
{ "execute", (PyCFunction) execute_gdb_command, METH_VARARGS | METH_KEYWORDS, { "execute", (PyCFunction) execute_gdb_command, METH_VARARGS | METH_KEYWORDS,
"Execute a gdb command" }, "Execute a gdb command" },
@ -10678,7 +10678,7 @@ index 0000000..153c18b
+} +}
diff --git a/gdb/testsuite/gdb.multi/watchpoint-multi.exp b/gdb/testsuite/gdb.multi/watchpoint-multi.exp diff --git a/gdb/testsuite/gdb.multi/watchpoint-multi.exp b/gdb/testsuite/gdb.multi/watchpoint-multi.exp
new file mode 100644 new file mode 100644
index 0000000..3b5d040 index 0000000..97fa6cd
--- /dev/null --- /dev/null
+++ b/gdb/testsuite/gdb.multi/watchpoint-multi.exp +++ b/gdb/testsuite/gdb.multi/watchpoint-multi.exp
@@ -0,0 +1,113 @@ @@ -0,0 +1,113 @@
@ -10773,7 +10773,7 @@ index 0000000..3b5d040
+ setup_kfail breakpoints/12312 *-*-* + setup_kfail breakpoints/12312 *-*-*
+ pass $test + pass $test
+ } + }
+ -re "Hardware access \\(read/write\\) watchpoint \[0-9\]+: c\r\n\r\nValue = 3\r\n.* in __nptl_death_event .*\r\n$gdb_prompt $" { + -re "Hardware access \\(read/write\\) watchpoint \[0-9\]+: c\r\n\r\nValue = 3\r\n(.* in )?__nptl_death_event .*\r\n$gdb_prompt $" {
+ setup_kfail breakpoints/12312 *-*-* + setup_kfail breakpoints/12312 *-*-*
+ fail $test + fail $test
+ } + }
@ -10789,7 +10789,7 @@ index 0000000..3b5d040
+ setup_kfail breakpoints/12312 *-*-* + setup_kfail breakpoints/12312 *-*-*
+ pass $test + pass $test
+ } + }
+ -re "Hardware access \\(read/write\\) watchpoint \[0-9\]+: b\r\n\r\nValue = 2\r\n.* in __nptl_death_event .*\r\n$gdb_prompt $" { + -re "Hardware access \\(read/write\\) watchpoint \[0-9\]+: b\r\n\r\nValue = 2\r\n(.* in )?__nptl_death_event .*\r\n$gdb_prompt $" {
+ setup_kfail breakpoints/12312 *-*-* + setup_kfail breakpoints/12312 *-*-*
+ fail $test + fail $test
+ } + }
@ -11846,7 +11846,7 @@ index 891da37..236c5ca 100644
set pascal_init_done 1 set pascal_init_done 1
} }
diff --git a/gdb/top.c b/gdb/top.c diff --git a/gdb/top.c b/gdb/top.c
index d14f308..7605f85 100644 index df2b163..a205d00 100644
--- a/gdb/top.c --- a/gdb/top.c
+++ b/gdb/top.c +++ b/gdb/top.c
@@ -343,6 +343,7 @@ void @@ -343,6 +343,7 @@ void
@ -11983,7 +11983,7 @@ index 265532c..1e419dd 100644
} }
diff --git a/gdb/valops.c b/gdb/valops.c diff --git a/gdb/valops.c b/gdb/valops.c
index 19d5238..c9d721a 100644 index 24c2269..21fb35f 100644
--- a/gdb/valops.c --- a/gdb/valops.c
+++ b/gdb/valops.c +++ b/gdb/valops.c
@@ -38,6 +38,7 @@ @@ -38,6 +38,7 @@
@ -12141,7 +12141,7 @@ index 19d5238..c9d721a 100644
{ {
int i; int i;
diff --git a/gdb/valprint.c b/gdb/valprint.c diff --git a/gdb/valprint.c b/gdb/valprint.c
index c98e315..de9de10 100644 index b6b96d4..934bf9c 100644
--- a/gdb/valprint.c --- a/gdb/valprint.c
+++ b/gdb/valprint.c +++ b/gdb/valprint.c
@@ -36,6 +36,7 @@ @@ -36,6 +36,7 @@
@ -12160,7 +12160,7 @@ index c98e315..de9de10 100644
case TYPE_CODE_BITSTRING: case TYPE_CODE_BITSTRING:
return 0; return 0;
default: default:
@@ -1118,6 +1118,7 @@ val_print_array_elements (struct type *type, @@ -1165,6 +1165,7 @@ val_print_array_elements (struct type *type,
{ {
unsigned int things_printed = 0; unsigned int things_printed = 0;
unsigned len; unsigned len;
@ -12168,7 +12168,7 @@ index c98e315..de9de10 100644
struct type *elttype, *index_type; struct type *elttype, *index_type;
unsigned eltlen; unsigned eltlen;
/* Position of the array element we are examining to see /* Position of the array element we are examining to see
@@ -1126,9 +1127,33 @@ val_print_array_elements (struct type *type, @@ -1173,9 +1174,33 @@ val_print_array_elements (struct type *type,
/* Number of repetitions we have detected so far. */ /* Number of repetitions we have detected so far. */
unsigned int reps; unsigned int reps;
LONGEST low_bound, high_bound; LONGEST low_bound, high_bound;
@ -12204,7 +12204,7 @@ index c98e315..de9de10 100644
index_type = TYPE_INDEX_TYPE (type); index_type = TYPE_INDEX_TYPE (type);
if (get_array_bounds (type, &low_bound, &high_bound)) if (get_array_bounds (type, &low_bound, &high_bound))
@@ -1207,6 +1232,8 @@ val_print_array_elements (struct type *type, @@ -1254,6 +1279,8 @@ val_print_array_elements (struct type *type,
{ {
fprintf_filtered (stream, "..."); fprintf_filtered (stream, "...");
} }
@ -12214,7 +12214,7 @@ index c98e315..de9de10 100644
/* Read LEN bytes of target memory at address MEMADDR, placing the /* Read LEN bytes of target memory at address MEMADDR, placing the
diff --git a/gdb/value.c b/gdb/value.c diff --git a/gdb/value.c b/gdb/value.c
index db83ea2..3d47556 100644 index e26270c..29bb0ca 100644
--- a/gdb/value.c --- a/gdb/value.c
+++ b/gdb/value.c +++ b/gdb/value.c
@@ -39,6 +39,7 @@ @@ -39,6 +39,7 @@
@ -12225,7 +12225,7 @@ index db83ea2..3d47556 100644
#include "python/python.h" #include "python/python.h"
@@ -863,12 +864,15 @@ void @@ -870,12 +871,15 @@ void
set_value_component_location (struct value *component, set_value_component_location (struct value *component,
const struct value *whole) const struct value *whole)
{ {
@ -12241,7 +12241,7 @@ index db83ea2..3d47556 100644
if (whole->lval == lval_computed) if (whole->lval == lval_computed)
{ {
struct lval_funcs *funcs = whole->location.computed.funcs; struct lval_funcs *funcs = whole->location.computed.funcs;
@@ -876,6 +880,12 @@ set_value_component_location (struct value *component, @@ -883,6 +887,12 @@ set_value_component_location (struct value *component,
if (funcs->copy_closure) if (funcs->copy_closure)
component->location.computed.closure = funcs->copy_closure (whole); component->location.computed.closure = funcs->copy_closure (whole);
} }
@ -12254,7 +12254,7 @@ index db83ea2..3d47556 100644
} }
@@ -1009,6 +1019,29 @@ show_values (char *num_exp, int from_tty) @@ -1016,6 +1026,29 @@ show_values (char *num_exp, int from_tty)
num_exp[1] = '\0'; num_exp[1] = '\0';
} }
} }
@ -12284,7 +12284,7 @@ index db83ea2..3d47556 100644
/* Internal variables. These are variables within the debugger /* Internal variables. These are variables within the debugger
that hold values assigned by debugger commands. that hold values assigned by debugger commands.
@@ -1504,6 +1537,40 @@ call_internal_function (struct gdbarch *gdbarch, @@ -1511,6 +1544,40 @@ call_internal_function (struct gdbarch *gdbarch,
return (*ifn->handler) (gdbarch, language, ifn->cookie, argc, argv); return (*ifn->handler) (gdbarch, language, ifn->cookie, argc, argv);
} }
@ -12325,7 +12325,7 @@ index db83ea2..3d47556 100644
/* The 'function' command. This does nothing -- it is just a /* The 'function' command. This does nothing -- it is just a
placeholder to let "help function NAME" work. This is also used as placeholder to let "help function NAME" work. This is also used as
the implementation of the sub-command that is created when the implementation of the sub-command that is created when
@@ -1551,11 +1618,10 @@ preserve_one_value (struct value *value, struct objfile *objfile, @@ -1558,11 +1625,10 @@ preserve_one_value (struct value *value, struct objfile *objfile,
htab_t copied_types) htab_t copied_types)
{ {
if (TYPE_OBJFILE (value->type) == objfile) if (TYPE_OBJFILE (value->type) == objfile)
@ -12339,7 +12339,7 @@ index db83ea2..3d47556 100644
copied_types); copied_types);
} }
@@ -1570,13 +1636,13 @@ preserve_one_internalvar (struct internalvar *var, struct objfile *objfile, @@ -1577,13 +1643,13 @@ preserve_one_internalvar (struct internalvar *var, struct objfile *objfile,
case INTERNALVAR_INTEGER: case INTERNALVAR_INTEGER:
if (var->u.integer.type && TYPE_OBJFILE (var->u.integer.type) == objfile) if (var->u.integer.type && TYPE_OBJFILE (var->u.integer.type) == objfile)
var->u.integer.type var->u.integer.type
@ -12355,7 +12355,7 @@ index db83ea2..3d47556 100644
break; break;
case INTERNALVAR_VALUE: case INTERNALVAR_VALUE:
@@ -2442,7 +2508,24 @@ value_from_decfloat (struct type *type, const gdb_byte *dec) @@ -2449,7 +2515,24 @@ value_from_decfloat (struct type *type, const gdb_byte *dec)
struct value * struct value *
coerce_ref (struct value *arg) coerce_ref (struct value *arg)
{ {
@ -12381,7 +12381,7 @@ index db83ea2..3d47556 100644
if (TYPE_CODE (value_type_arg_tmp) == TYPE_CODE_REF) if (TYPE_CODE (value_type_arg_tmp) == TYPE_CODE_REF)
arg = value_at_lazy (TYPE_TARGET_TYPE (value_type_arg_tmp), arg = value_at_lazy (TYPE_TARGET_TYPE (value_type_arg_tmp),
@@ -2540,4 +2623,8 @@ VARIABLE is already initialized.")); @@ -2547,4 +2630,8 @@ VARIABLE is already initialized."));
add_prefix_cmd ("function", no_class, function_command, _("\ add_prefix_cmd ("function", no_class, function_command, _("\
Placeholder command for showing help on convenience functions."), Placeholder command for showing help on convenience functions."),
&functionlist, "function ", 0, &cmdlist); &functionlist, "function ", 0, &cmdlist);
@ -12391,10 +12391,10 @@ index db83ea2..3d47556 100644
+ observer_attach_mark_used (value_types_mark_used); + observer_attach_mark_used (value_types_mark_used);
} }
diff --git a/gdb/value.h b/gdb/value.h diff --git a/gdb/value.h b/gdb/value.h
index 16f4646..501df86 100644 index aa8ff3c..2b4543c 100644
--- a/gdb/value.h --- a/gdb/value.h
+++ b/gdb/value.h +++ b/gdb/value.h
@@ -389,6 +389,10 @@ extern struct value *value_from_double (struct type *type, DOUBLEST num); @@ -395,6 +395,10 @@ extern struct value *value_from_double (struct type *type, DOUBLEST num);
extern struct value *value_from_decfloat (struct type *type, extern struct value *value_from_decfloat (struct type *type,
const gdb_byte *decbytes); const gdb_byte *decbytes);

View File

@ -12,10 +12,10 @@
* gdb.python/pr10659.exp. New file. * gdb.python/pr10659.exp. New file.
* gdb.python/pr10659.py: New file. * gdb.python/pr10659.py: New file.
Index: gdb-7.2.50.20101116/gdb/valprint.h Index: gdb-7.2.50.20110206/gdb/valprint.h
=================================================================== ===================================================================
--- gdb-7.2.50.20101116.orig/gdb/valprint.h 2010-11-03 15:21:57.000000000 +0100 --- gdb-7.2.50.20110206.orig/gdb/valprint.h 2011-01-25 18:59:00.000000000 +0100
+++ gdb-7.2.50.20101116/gdb/valprint.h 2010-11-16 08:31:56.000000000 +0100 +++ gdb-7.2.50.20110206/gdb/valprint.h 2011-02-06 20:55:59.000000000 +0100
@@ -90,6 +90,9 @@ struct value_print_options @@ -90,6 +90,9 @@ struct value_print_options
/* If nonzero, print the value in "summary" form. */ /* If nonzero, print the value in "summary" form. */
@ -26,21 +26,20 @@ Index: gdb-7.2.50.20101116/gdb/valprint.h
}; };
/* The global print options set by the user. In general this should /* The global print options set by the user. In general this should
Index: gdb-7.2.50.20101116/gdb/python/py-prettyprint.c Index: gdb-7.2.50.20110206/gdb/python/py-prettyprint.c
=================================================================== ===================================================================
--- gdb-7.2.50.20101116.orig/gdb/python/py-prettyprint.c 2010-11-12 21:49:42.000000000 +0100 --- gdb-7.2.50.20110206.orig/gdb/python/py-prettyprint.c 2011-01-26 21:58:48.000000000 +0100
+++ gdb-7.2.50.20101116/gdb/python/py-prettyprint.c 2010-11-16 08:36:32.000000000 +0100 +++ gdb-7.2.50.20110206/gdb/python/py-prettyprint.c 2011-02-06 20:56:30.000000000 +0100
@@ -499,7 +499,8 @@ print_children (PyObject *printer, const @@ -501,7 +501,7 @@ print_children (PyObject *printer, const
/* Use the prettyprint_arrays option if we are printing an array, /* Use the prettyprint_arrays option if we are printing an array,
and the pretty option otherwise. */ and the pretty option otherwise. */
- pretty = is_array ? options->prettyprint_arrays : options->pretty; - if (is_array)
+ pretty = (is_array || options->prettyprint_matrix) ? + if (is_array || options->prettyprint_matrix)
+ options->prettyprint_arrays : options->pretty; pretty = options->prettyprint_arrays;
else
/* Manufacture a dummy Python frame to work around Python 2.4 bug, {
where it insists on having a non-NULL tstate->frame when @@ -521,6 +521,9 @@ print_children (PyObject *printer, const
@@ -511,6 +512,9 @@ print_children (PyObject *printer, const
goto done; goto done;
} }
make_cleanup_py_decref (frame); make_cleanup_py_decref (frame);
@ -50,7 +49,7 @@ Index: gdb-7.2.50.20101116/gdb/python/py-prettyprint.c
done_flag = 0; done_flag = 0;
for (i = 0; i < options->print_max; ++i) for (i = 0; i < options->print_max; ++i)
@@ -545,12 +549,23 @@ print_children (PyObject *printer, const @@ -555,12 +558,23 @@ print_children (PyObject *printer, const
3. Other. Always print a ",". */ 3. Other. Always print a ",". */
if (i == 0) if (i == 0)
{ {
@ -79,7 +78,7 @@ Index: gdb-7.2.50.20101116/gdb/python/py-prettyprint.c
else if (! is_map || i % 2 == 0) else if (! is_map || i % 2 == 0)
fputs_filtered (pretty ? "," : ", ", stream); fputs_filtered (pretty ? "," : ", ", stream);
@@ -579,6 +594,10 @@ print_children (PyObject *printer, const @@ -589,6 +603,10 @@ print_children (PyObject *printer, const
if (is_map && i % 2 == 0) if (is_map && i % 2 == 0)
fputs_filtered ("[", stream); fputs_filtered ("[", stream);
@ -90,7 +89,7 @@ Index: gdb-7.2.50.20101116/gdb/python/py-prettyprint.c
else if (is_array) else if (is_array)
{ {
/* We print the index, not whatever the child method /* We print the index, not whatever the child method
@@ -655,7 +674,12 @@ print_children (PyObject *printer, const @@ -667,7 +685,12 @@ print_children (PyObject *printer, const
fputs_filtered ("\n", stream); fputs_filtered ("\n", stream);
print_spaces_filtered (2 * recurse, stream); print_spaces_filtered (2 * recurse, stream);
} }
@ -104,7 +103,7 @@ Index: gdb-7.2.50.20101116/gdb/python/py-prettyprint.c
} }
done: done:
@@ -678,6 +702,7 @@ apply_val_pretty_printer (struct type *t @@ -690,6 +713,7 @@ apply_val_pretty_printer (struct type *t
struct cleanup *cleanups; struct cleanup *cleanups;
int result = 0; int result = 0;
enum string_repr_result print_result; enum string_repr_result print_result;
@ -112,7 +111,7 @@ Index: gdb-7.2.50.20101116/gdb/python/py-prettyprint.c
cleanups = ensure_python_env (gdbarch, language); cleanups = ensure_python_env (gdbarch, language);
/* Instantiate the printer. */ /* Instantiate the printer. */
@@ -709,9 +734,21 @@ apply_val_pretty_printer (struct type *t @@ -721,9 +745,21 @@ apply_val_pretty_printer (struct type *t
/* If we are printing a map, we want some special formatting. */ /* If we are printing a map, we want some special formatting. */
hint = gdbpy_get_display_hint (printer); hint = gdbpy_get_display_hint (printer);
@ -134,10 +133,10 @@ Index: gdb-7.2.50.20101116/gdb/python/py-prettyprint.c
print_result = print_string_repr (printer, hint, stream, recurse, print_result = print_string_repr (printer, hint, stream, recurse,
options, language, gdbarch); options, language, gdbarch);
if (print_result != string_repr_error) if (print_result != string_repr_error)
Index: gdb-7.2.50.20101116/gdb/testsuite/gdb.python/pr10659.cc Index: gdb-7.2.50.20110206/gdb/testsuite/gdb.python/pr10659.cc
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.2.50.20101116/gdb/testsuite/gdb.python/pr10659.cc 2010-11-16 08:31:56.000000000 +0100 +++ gdb-7.2.50.20110206/gdb/testsuite/gdb.python/pr10659.cc 2011-02-06 20:55:59.000000000 +0100
@@ -0,0 +1,43 @@ @@ -0,0 +1,43 @@
+#include <list> +#include <list>
+#include <vector> // /usr/include/c++/4.4.1/bits/vector.tcc +#include <vector> // /usr/include/c++/4.4.1/bits/vector.tcc
@ -182,10 +181,10 @@ Index: gdb-7.2.50.20101116/gdb/testsuite/gdb.python/pr10659.cc
+ +
+ return 0; // break + return 0; // break
+} +}
Index: gdb-7.2.50.20101116/gdb/testsuite/gdb.python/pr10659.exp Index: gdb-7.2.50.20110206/gdb/testsuite/gdb.python/pr10659.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.2.50.20101116/gdb/testsuite/gdb.python/pr10659.exp 2010-11-16 08:31:56.000000000 +0100 +++ gdb-7.2.50.20110206/gdb/testsuite/gdb.python/pr10659.exp 2011-02-06 20:55:59.000000000 +0100
@@ -0,0 +1,82 @@ @@ -0,0 +1,82 @@
+#Copyright 2010 Free Software Foundation, Inc. +#Copyright 2010 Free Software Foundation, Inc.
+ +
@ -269,10 +268,10 @@ Index: gdb-7.2.50.20101116/gdb/testsuite/gdb.python/pr10659.exp
+# +#
+ +
+ +
Index: gdb-7.2.50.20101116/gdb/testsuite/gdb.python/pr10659.py Index: gdb-7.2.50.20110206/gdb/testsuite/gdb.python/pr10659.py
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.2.50.20101116/gdb/testsuite/gdb.python/pr10659.py 2010-11-16 08:31:56.000000000 +0100 +++ gdb-7.2.50.20110206/gdb/testsuite/gdb.python/pr10659.py 2011-02-06 20:55:59.000000000 +0100
@@ -0,0 +1,109 @@ @@ -0,0 +1,109 @@
+# Copyright (C) 2008, 2009 Free Software Foundation, Inc. +# Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+ +
@ -383,10 +382,10 @@ Index: gdb-7.2.50.20101116/gdb/testsuite/gdb.python/pr10659.py
+fake_pretty_printers_dict = {} +fake_pretty_printers_dict = {}
+ +
+build_libfakecxx_dictionary () +build_libfakecxx_dictionary ()
Index: gdb-7.2.50.20101116/gdb/valprint.c Index: gdb-7.2.50.20110206/gdb/valprint.c
=================================================================== ===================================================================
--- gdb-7.2.50.20101116.orig/gdb/valprint.c 2010-11-16 07:54:00.000000000 +0100 --- gdb-7.2.50.20110206.orig/gdb/valprint.c 2011-02-06 20:55:52.000000000 +0100
+++ gdb-7.2.50.20101116/gdb/valprint.c 2010-11-16 08:31:56.000000000 +0100 +++ gdb-7.2.50.20110206/gdb/valprint.c 2011-02-06 20:55:59.000000000 +0100
@@ -85,7 +85,8 @@ struct value_print_options user_print_op @@ -85,7 +85,8 @@ struct value_print_options user_print_op
1, /* static_field_print */ 1, /* static_field_print */
1, /* pascal_static_field_print */ 1, /* pascal_static_field_print */

View File

@ -1,52 +0,0 @@
http://sourceware.org/ml/gdb-cvs/2011-01/msg00169.html
### src/gdb/ChangeLog 2011/01/25 17:00:23 1.12503
### src/gdb/ChangeLog 2011/01/25 17:25:10 1.12504
## -1,3 +1,8 @@
+2011-01-25 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ * dwarf2read.c (dwarf2_read_index, write_psymtabs_to_index)
+ (save_gdb_index_command): Switch to .gdb_index version 4.
+
2011-01-25 Pedro Alves <pedro@codesourcery.com>
* mi/mi-main.c (get_register): Use get_frame_register_value rather
--- src/gdb/dwarf2read.c 2011/01/12 16:16:20 1.495
+++ src/gdb/dwarf2read.c 2011/01/25 17:25:12 1.496
@@ -2024,13 +2024,14 @@
/* Version check. */
version = MAYBE_SWAP (*(offset_type *) addr);
/* Versions earlier than 3 emitted every copy of a psymbol. This
- causes the index to behave very poorly for certain requests. So,
- it seems better to just ignore such indices. */
- if (version < 3)
+ causes the index to behave very poorly for certain requests. Version 4
+ contained incomplete addrmap. So, it seems better to just ignore such
+ indices. */
+ if (version < 4)
return 0;
/* Indexes with higher version than the one supported by GDB may be no
longer backward compatible. */
- if (version > 3)
+ if (version > 4)
return 0;
map = OBSTACK_ZALLOC (&objfile->objfile_obstack, struct mapped_index);
@@ -15688,7 +15689,7 @@
total_len = size_of_contents;
/* The version number. */
- val = MAYBE_SWAP (3);
+ val = MAYBE_SWAP (4);
obstack_grow (&contents, &val, sizeof (val));
/* The offset of the CU list from the start of the file. */
@@ -15746,7 +15747,7 @@
1. The file header. This is a sequence of values, of offset_type
unless otherwise noted:
- [0] The version number, currently 3. Versions 1 and 2 are
+ [0] The version number, currently 4. Versions 1, 2 and 3 are
obsolete.
[1] The offset, from the start of the file, of the CU list.
[2] The offset, from the start of the file, of the types CU list.

View File

@ -23,11 +23,11 @@ Name: gdb%{?_with_debug:-debug}
# Set version to contents of gdb/version.in. # Set version to contents of gdb/version.in.
# NOTE: the FSF gdb versions are numbered N.M for official releases, like 6.3 # 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). # 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).
Version: 7.2.50.20110125 Version: 7.2.50.20110206
# The release always contains a leading reserved number, start it at 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. # `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
Release: 16%{?_with_upstream:.upstream}%{?dist} Release: 17%{?_with_upstream:.upstream}%{?dist}
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and GFDL and BSD and Public Domain License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and GFDL and BSD and Public Domain
Group: Development/Debuggers Group: Development/Debuggers
@ -536,10 +536,6 @@ Patch547: gdb-test-dw2-aranges.patch
# =fedoratest # =fedoratest
Patch548: gdb-test-expr-cumulative-archer.patch Patch548: gdb-test-expr-cumulative-archer.patch
# Fix discontiguous address ranges in .gdb_index - v3->v4 (BZ 672281).
# =push
Patch552: gdb-gdbindex-v4-2of3.patch
# Fix DWARF-3+ DW_AT_accessibility default assumption for F15 gcc-4.6. # Fix DWARF-3+ DW_AT_accessibility default assumption for F15 gcc-4.6.
# =push # =push
Patch554: gdb-dwarf3-accessibility.patch Patch554: gdb-dwarf3-accessibility.patch
@ -805,7 +801,6 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc-exp.c gdb/p-exp.c
%patch542 -p1 %patch542 -p1
%patch547 -p1 %patch547 -p1
%patch548 -p1 %patch548 -p1
%patch552 -p1
%patch554 -p1 %patch554 -p1
%patch555 -p1 %patch555 -p1
%patch556 -p1 %patch556 -p1
@ -1216,6 +1211,9 @@ fi
%endif %endif
%changelog %changelog
* Thu Jan 27 2011 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.2.50.20110206-17.fc15
- Rebase to FSF GDB 7.2.50.20110206 (which is a 7.3 pre-release).
* Thu Jan 27 2011 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.2.50.20110125-16.fc15 * Thu Jan 27 2011 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.2.50.20110125-16.fc15
- Fix Python new-backtrace command (BZ 672235, Phil Muldoon). - Fix Python new-backtrace command (BZ 672235, Phil Muldoon).

View File

@ -1,2 +1,2 @@
04e5c4b1b9e633422cc48990fe61958d libstdc++-v3-python-r155978.tar.bz2 04e5c4b1b9e633422cc48990fe61958d libstdc++-v3-python-r155978.tar.bz2
525bcebaa799261486cb76ba9638636b gdb-7.2.50.20110125.tar.bz2 aadb7bb3d6f959ec04c381fef8103533 gdb-7.2.50.20110206.tar.bz2