- Archer update to the snapshot: 000db8b7bfef8581ef099ccca8689cfddfea1be8
- Archer backport: b8d3bea36b137effc929e02c4dadf73716cb330b - Ignore explicit die representing global scope '::' (gcc 4.1 bug). - Archer backport: c2d5c4a39b10994d86d8f2f90dfed769e8f216f3 - Fix parsing DW_AT_const_value using DW_FORM_string - Archer backport: 8d9ab68fc0955c9de6320bec2821a21e3244600d db41e11ae0a3aec7120ad6ce86450d838af74dd6 - Fix Fortran modules/namespaces parsing (but no change was visible in F11). - Archer backport: 000db8b7bfef8581ef099ccca8689cfddfea1be8 - Fix "some Python error when displaying some C++ objects" (BZ 504356). - testsuite: Support new rpmbuild option: --with parallel - testsuite: gdb-orphanripper.c: Fix uninitialized `termios.c_line'. - Fix crashes due to (missing) varobj revalidation, for VLA (for BZ 377541). - Archer backport: 58dcda94ac5d6398f47382505e9d3d9d866d79bf f3de7bbd655337fe6705aeaafcc970deff3dd5d5 - Implement Fortran modules namespaces (BZ 466118). - Fix crash in the charset support.
This commit is contained in:
parent
f4df2f361a
commit
6fcb74ef6e
@ -28,8 +28,8 @@
|
||||
|
||||
Index: gdb-6.8.50.20090302/gdb/amd64-tdep.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/amd64-tdep.c 2009-03-07 00:30:09.000000000 +0100
|
||||
+++ gdb-6.8.50.20090302/gdb/amd64-tdep.c 2009-03-07 00:30:12.000000000 +0100
|
||||
--- gdb-6.8.50.20090302.orig/gdb/amd64-tdep.c 2009-05-10 21:36:29.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/amd64-tdep.c 2009-05-10 21:41:23.000000000 +0200
|
||||
@@ -36,6 +36,7 @@
|
||||
#include "regcache.h"
|
||||
#include "regset.h"
|
||||
@ -134,8 +134,8 @@ Index: gdb-6.8.50.20090302/gdb/amd64-tdep.c
|
||||
|
||||
Index: gdb-6.8.50.20090302/gdb/auxv.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/auxv.c 2009-03-07 00:30:06.000000000 +0100
|
||||
+++ gdb-6.8.50.20090302/gdb/auxv.c 2009-03-07 00:30:12.000000000 +0100
|
||||
--- gdb-6.8.50.20090302.orig/gdb/auxv.c 2009-05-10 21:36:27.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/auxv.c 2009-05-10 21:41:23.000000000 +0200
|
||||
@@ -81,7 +81,7 @@ procfs_xfer_auxv (struct target_ops *ops
|
||||
Return 1 if an entry was read into *TYPEP and *VALP. */
|
||||
static int
|
||||
@ -206,7 +206,7 @@ Index: gdb-6.8.50.20090302/gdb/auxv.c
|
||||
{
|
||||
#define TAG(tag, text, kind) \
|
||||
case tag: name = #tag; description = text; flavor = kind; break
|
||||
@@ -232,7 +234,7 @@ fprint_target_auxv (struct ui_file *file
|
||||
@@ -233,7 +235,7 @@ fprint_target_auxv (struct ui_file *file
|
||||
}
|
||||
|
||||
fprintf_filtered (file, "%-4s %-20s %-30s ",
|
||||
@ -215,7 +215,7 @@ Index: gdb-6.8.50.20090302/gdb/auxv.c
|
||||
switch (flavor)
|
||||
{
|
||||
case dec:
|
||||
@@ -254,7 +256,7 @@ fprint_target_auxv (struct ui_file *file
|
||||
@@ -255,7 +257,7 @@ fprint_target_auxv (struct ui_file *file
|
||||
break;
|
||||
}
|
||||
++ents;
|
||||
@ -227,7 +227,7 @@ Index: gdb-6.8.50.20090302/gdb/auxv.c
|
||||
Index: gdb-6.8.50.20090302/gdb/auxv.h
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/auxv.h 2009-01-03 06:57:50.000000000 +0100
|
||||
+++ gdb-6.8.50.20090302/gdb/auxv.h 2009-03-07 00:30:12.000000000 +0100
|
||||
+++ gdb-6.8.50.20090302/gdb/auxv.h 2009-05-10 21:41:23.000000000 +0200
|
||||
@@ -36,14 +36,14 @@ struct target_ops; /* Forward declarati
|
||||
Return 1 if an entry was read into *TYPEP and *VALP. */
|
||||
extern int target_auxv_parse (struct target_ops *ops,
|
||||
@ -247,8 +247,8 @@ Index: gdb-6.8.50.20090302/gdb/auxv.h
|
||||
extern int fprint_target_auxv (struct ui_file *file, struct target_ops *ops);
|
||||
Index: gdb-6.8.50.20090302/gdb/breakpoint.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/breakpoint.c 2009-03-07 00:30:10.000000000 +0100
|
||||
+++ gdb-6.8.50.20090302/gdb/breakpoint.c 2009-03-07 00:30:12.000000000 +0100
|
||||
--- gdb-6.8.50.20090302.orig/gdb/breakpoint.c 2009-05-10 21:36:30.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/breakpoint.c 2009-05-10 21:41:23.000000000 +0200
|
||||
@@ -3920,7 +3920,8 @@ describe_other_breakpoints (CORE_ADDR pc
|
||||
printf_filtered (" (thread %d)", b->thread);
|
||||
printf_filtered ("%s%s ",
|
||||
@ -259,7 +259,7 @@ Index: gdb-6.8.50.20090302/gdb/breakpoint.c
|
||||
? " (disabled)"
|
||||
: b->enable_state == bp_permanent
|
||||
? " (permanent)"
|
||||
@@ -5008,6 +5009,61 @@ create_catchpoint (int tempflag, char *c
|
||||
@@ -5009,6 +5010,61 @@ create_catchpoint (int tempflag, char *c
|
||||
return b;
|
||||
}
|
||||
|
||||
@ -323,8 +323,8 @@ Index: gdb-6.8.50.20090302/gdb/breakpoint.c
|
||||
struct breakpoint_ops *ops)
|
||||
Index: gdb-6.8.50.20090302/gdb/breakpoint.h
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/breakpoint.h 2009-03-07 00:30:06.000000000 +0100
|
||||
+++ gdb-6.8.50.20090302/gdb/breakpoint.h 2009-03-07 00:30:12.000000000 +0100
|
||||
--- gdb-6.8.50.20090302.orig/gdb/breakpoint.h 2009-05-10 21:36:27.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/breakpoint.h 2009-05-10 21:41:23.000000000 +0200
|
||||
@@ -127,6 +127,7 @@ enum enable_state
|
||||
automatically enabled and reset when the call
|
||||
"lands" (either completes, or stops at another
|
||||
@ -346,9 +346,9 @@ Index: gdb-6.8.50.20090302/gdb/breakpoint.h
|
||||
|
||||
Index: gdb-6.8.50.20090302/gdb/dwarf2read.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/dwarf2read.c 2009-03-07 00:30:10.000000000 +0100
|
||||
+++ gdb-6.8.50.20090302/gdb/dwarf2read.c 2009-03-07 00:30:12.000000000 +0100
|
||||
@@ -1413,7 +1413,7 @@ dwarf2_build_psymtabs (struct objfile *o
|
||||
--- gdb-6.8.50.20090302.orig/gdb/dwarf2read.c 2009-05-10 21:36:30.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/dwarf2read.c 2009-05-10 21:41:23.000000000 +0200
|
||||
@@ -1438,7 +1438,7 @@ dwarf2_build_psymtabs (struct objfile *o
|
||||
else
|
||||
dwarf2_per_objfile->loc_buffer = NULL;
|
||||
|
||||
@ -359,8 +359,8 @@ Index: gdb-6.8.50.20090302/gdb/dwarf2read.c
|
||||
{
|
||||
Index: gdb-6.8.50.20090302/gdb/elfread.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/elfread.c 2009-03-07 00:30:06.000000000 +0100
|
||||
+++ gdb-6.8.50.20090302/gdb/elfread.c 2009-03-07 00:30:12.000000000 +0100
|
||||
--- gdb-6.8.50.20090302.orig/gdb/elfread.c 2009-05-10 21:36:27.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/elfread.c 2009-05-10 21:41:23.000000000 +0200
|
||||
@@ -680,7 +680,7 @@ elf_symfile_read (struct objfile *objfil
|
||||
/* If we are reinitializing, or if we have never loaded syms yet,
|
||||
set table to empty. MAINLINE is cleared so that *_read_psymtab
|
||||
@ -372,8 +372,8 @@ Index: gdb-6.8.50.20090302/gdb/elfread.c
|
||||
mainline = 0;
|
||||
Index: gdb-6.8.50.20090302/gdb/infrun.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/infrun.c 2009-03-07 00:30:10.000000000 +0100
|
||||
+++ gdb-6.8.50.20090302/gdb/infrun.c 2009-03-07 00:30:12.000000000 +0100
|
||||
--- gdb-6.8.50.20090302.orig/gdb/infrun.c 2009-05-10 21:36:30.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/infrun.c 2009-05-10 21:41:23.000000000 +0200
|
||||
@@ -3354,6 +3354,11 @@ infrun: BPSTAT_WHAT_SET_LONGJMP_RESUME (
|
||||
#endif
|
||||
target_terminal_inferior ();
|
||||
@ -388,11 +388,11 @@ Index: gdb-6.8.50.20090302/gdb/infrun.c
|
||||
and place breakpoints in initializer routines for
|
||||
Index: gdb-6.8.50.20090302/gdb/objfiles.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/objfiles.c 2009-03-07 00:30:06.000000000 +0100
|
||||
+++ gdb-6.8.50.20090302/gdb/objfiles.c 2009-03-07 00:30:12.000000000 +0100
|
||||
@@ -51,6 +51,9 @@
|
||||
#include "arch-utils.h"
|
||||
--- gdb-6.8.50.20090302.orig/gdb/objfiles.c 2009-05-10 21:36:42.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/objfiles.c 2009-05-10 21:41:36.000000000 +0200
|
||||
@@ -52,6 +52,9 @@
|
||||
#include "exec.h"
|
||||
#include "varobj.h"
|
||||
|
||||
+#include "auxv.h"
|
||||
+#include "elf/common.h"
|
||||
@ -400,7 +400,7 @@ Index: gdb-6.8.50.20090302/gdb/objfiles.c
|
||||
/* Prototypes for local functions */
|
||||
|
||||
static void objfile_alloc_data (struct objfile *objfile);
|
||||
@@ -271,7 +274,19 @@ init_entry_point_info (struct objfile *o
|
||||
@@ -272,7 +275,19 @@ init_entry_point_info (struct objfile *o
|
||||
CORE_ADDR
|
||||
entry_point_address (void)
|
||||
{
|
||||
@ -421,7 +421,7 @@ Index: gdb-6.8.50.20090302/gdb/objfiles.c
|
||||
}
|
||||
|
||||
/* Create the terminating entry of OBJFILE's minimal symbol table.
|
||||
@@ -443,6 +458,9 @@ free_objfile (struct objfile *objfile)
|
||||
@@ -445,6 +460,9 @@ free_objfile (struct objfile *objfile)
|
||||
if (objfile == rt_common_objfile)
|
||||
rt_common_objfile = NULL;
|
||||
|
||||
@ -433,8 +433,8 @@ Index: gdb-6.8.50.20090302/gdb/objfiles.c
|
||||
linkage unit, gdb used to do these things whenever the monolithic
|
||||
Index: gdb-6.8.50.20090302/gdb/solib-svr4.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/solib-svr4.c 2009-03-07 00:30:09.000000000 +0100
|
||||
+++ gdb-6.8.50.20090302/gdb/solib-svr4.c 2009-03-07 00:30:12.000000000 +0100
|
||||
--- gdb-6.8.50.20090302.orig/gdb/solib-svr4.c 2009-05-10 21:36:29.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/solib-svr4.c 2009-05-10 21:41:23.000000000 +0200
|
||||
@@ -45,6 +45,7 @@
|
||||
#include "exec.h"
|
||||
#include "auxv.h"
|
||||
@ -1119,7 +1119,7 @@ Index: gdb-6.8.50.20090302/gdb/solib-svr4.c
|
||||
Index: gdb-6.8.50.20090302/gdb/solib.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/solib.c 2009-02-21 17:14:49.000000000 +0100
|
||||
+++ gdb-6.8.50.20090302/gdb/solib.c 2009-03-07 00:30:12.000000000 +0100
|
||||
+++ gdb-6.8.50.20090302/gdb/solib.c 2009-05-10 21:41:23.000000000 +0200
|
||||
@@ -81,6 +81,8 @@ set_solib_ops (struct gdbarch *gdbarch,
|
||||
|
||||
/* external data declarations */
|
||||
@ -1309,7 +1309,7 @@ Index: gdb-6.8.50.20090302/gdb/solib.c
|
||||
Index: gdb-6.8.50.20090302/gdb/solist.h
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/solist.h 2009-02-04 09:42:11.000000000 +0100
|
||||
+++ gdb-6.8.50.20090302/gdb/solist.h 2009-03-07 00:30:12.000000000 +0100
|
||||
+++ gdb-6.8.50.20090302/gdb/solist.h 2009-05-10 21:41:23.000000000 +0200
|
||||
@@ -61,6 +61,8 @@ struct so_list
|
||||
bfd *abfd;
|
||||
char symbols_loaded; /* flag: symbols read in yet? */
|
||||
@ -1332,8 +1332,8 @@ Index: gdb-6.8.50.20090302/gdb/solist.h
|
||||
#endif
|
||||
Index: gdb-6.8.50.20090302/gdb/symfile-mem.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/symfile-mem.c 2009-03-07 00:30:08.000000000 +0100
|
||||
+++ gdb-6.8.50.20090302/gdb/symfile-mem.c 2009-03-07 00:30:12.000000000 +0100
|
||||
--- gdb-6.8.50.20090302.orig/gdb/symfile-mem.c 2009-05-10 21:36:28.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/symfile-mem.c 2009-05-10 21:41:23.000000000 +0200
|
||||
@@ -116,7 +116,7 @@ symbol_file_add_from_memory (struct bfd
|
||||
}
|
||||
|
||||
@ -1345,8 +1345,8 @@ Index: gdb-6.8.50.20090302/gdb/symfile-mem.c
|
||||
reinit_frame_cache ();
|
||||
Index: gdb-6.8.50.20090302/gdb/symfile.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/symfile.c 2009-03-07 00:30:09.000000000 +0100
|
||||
+++ gdb-6.8.50.20090302/gdb/symfile.c 2009-03-07 00:31:24.000000000 +0100
|
||||
--- gdb-6.8.50.20090302.orig/gdb/symfile.c 2009-05-10 21:37:51.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/symfile.c 2009-05-10 21:41:23.000000000 +0200
|
||||
@@ -47,6 +47,7 @@
|
||||
#include "readline/readline.h"
|
||||
#include "gdb_assert.h"
|
||||
@ -1397,7 +1397,7 @@ Index: gdb-6.8.50.20090302/gdb/symfile.c
|
||||
|
||||
/* We're done reading the symbol file; finish off complaints. */
|
||||
clear_complaints (&symfile_complaints, 0, verbo);
|
||||
@@ -980,7 +985,7 @@ symbol_file_add_with_addrs_or_offsets (b
|
||||
@@ -982,7 +987,7 @@ symbol_file_add_with_addrs_or_offsets (b
|
||||
/* Give user a chance to burp if we'd be
|
||||
interactively wiping out any existing symbols. */
|
||||
|
||||
@ -1406,7 +1406,7 @@ Index: gdb-6.8.50.20090302/gdb/symfile.c
|
||||
&& from_tty
|
||||
&& (have_full_symbols () || have_partial_symbols ())
|
||||
&& !query (_("Load new symbol table from \"%s\"? "), name))
|
||||
@@ -1175,6 +1180,10 @@ symbol_file_clear (int from_tty)
|
||||
@@ -1178,6 +1183,10 @@ symbol_file_clear (int from_tty)
|
||||
symfile_objfile->name)
|
||||
: !query (_("Discard symbol table? "))))
|
||||
error (_("Not confirmed."));
|
||||
@ -1417,7 +1417,7 @@ Index: gdb-6.8.50.20090302/gdb/symfile.c
|
||||
free_all_objfiles ();
|
||||
|
||||
/* solib descriptors may have handles to objfiles. Since their
|
||||
@@ -3275,6 +3284,8 @@ reread_symbols (void)
|
||||
@@ -3367,6 +3376,8 @@ reread_symbols (void)
|
||||
/* Discard cleanups as symbol reading was successful. */
|
||||
discard_cleanups (old_cleanups);
|
||||
|
||||
@ -1428,8 +1428,8 @@ Index: gdb-6.8.50.20090302/gdb/symfile.c
|
||||
again now. */
|
||||
Index: gdb-6.8.50.20090302/gdb/target.h
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/target.h 2009-03-07 00:30:09.000000000 +0100
|
||||
+++ gdb-6.8.50.20090302/gdb/target.h 2009-03-07 00:30:12.000000000 +0100
|
||||
--- gdb-6.8.50.20090302.orig/gdb/target.h 2009-05-10 21:36:29.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/target.h 2009-05-10 21:41:23.000000000 +0200
|
||||
@@ -542,7 +542,7 @@ struct target_ops
|
||||
Return -1 if there is insufficient buffer for a whole entry.
|
||||
Return 1 if an entry was read into *TYPEP and *VALP. */
|
||||
|
@ -11,10 +11,10 @@
|
||||
|
||||
* gdb.texinfo (File Options): Document --readnever.
|
||||
|
||||
Index: gdb-6.8.50.20090228/gdb/doc/gdb.texinfo
|
||||
Index: gdb-6.8.50.20090302/gdb/doc/gdb.texinfo
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090228.orig/gdb/doc/gdb.texinfo 2009-03-02 01:01:15.000000000 +0100
|
||||
+++ gdb-6.8.50.20090228/gdb/doc/gdb.texinfo 2009-03-02 01:01:23.000000000 +0100
|
||||
--- gdb-6.8.50.20090302.orig/gdb/doc/gdb.texinfo 2009-05-09 20:00:02.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/doc/gdb.texinfo 2009-05-09 20:00:06.000000000 +0200
|
||||
@@ -988,6 +988,12 @@ Read each symbol file's entire symbol ta
|
||||
the default, which is to read it incrementally as it is needed.
|
||||
This makes startup slower, but makes future operations faster.
|
||||
@ -28,10 +28,10 @@ Index: gdb-6.8.50.20090228/gdb/doc/gdb.texinfo
|
||||
@end table
|
||||
|
||||
@node Mode Options
|
||||
Index: gdb-6.8.50.20090228/gdb/main.c
|
||||
Index: gdb-6.8.50.20090302/gdb/main.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090228.orig/gdb/main.c 2009-03-02 01:01:17.000000000 +0100
|
||||
+++ gdb-6.8.50.20090228/gdb/main.c 2009-03-02 01:01:23.000000000 +0100
|
||||
--- gdb-6.8.50.20090302.orig/gdb/main.c 2009-05-09 20:00:03.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/main.c 2009-05-09 20:00:06.000000000 +0200
|
||||
@@ -427,6 +427,7 @@ captured_main (void *data)
|
||||
{"xdb", no_argument, &xdb_commands, 1},
|
||||
{"dbx", no_argument, &dbx_commands, 1},
|
||||
@ -48,10 +48,10 @@ Index: gdb-6.8.50.20090228/gdb/main.c
|
||||
"), stream);
|
||||
fputs_unfiltered (_("\
|
||||
--se=FILE Use FILE as symbol file and executable file.\n\
|
||||
Index: gdb-6.8.50.20090228/gdb/symfile.c
|
||||
Index: gdb-6.8.50.20090302/gdb/symfile.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090228.orig/gdb/symfile.c 2009-03-02 01:01:17.000000000 +0100
|
||||
+++ gdb-6.8.50.20090228/gdb/symfile.c 2009-03-02 01:01:23.000000000 +0100
|
||||
--- gdb-6.8.50.20090302.orig/gdb/symfile.c 2009-05-09 20:00:03.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/symfile.c 2009-05-09 20:00:06.000000000 +0200
|
||||
@@ -77,6 +77,7 @@ static void clear_symtab_users_cleanup (
|
||||
|
||||
/* Global variables owned by this file */
|
||||
@ -60,19 +60,19 @@ Index: gdb-6.8.50.20090228/gdb/symfile.c
|
||||
|
||||
/* External variables and functions referenced. */
|
||||
|
||||
Index: gdb-6.8.50.20090228/gdb/dwarf2read.c
|
||||
Index: gdb-6.8.50.20090302/gdb/dwarf2read.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090228.orig/gdb/dwarf2read.c 2009-03-02 01:01:15.000000000 +0100
|
||||
+++ gdb-6.8.50.20090228/gdb/dwarf2read.c 2009-03-02 01:01:36.000000000 +0100
|
||||
@@ -49,6 +49,7 @@
|
||||
#include "f-lang.h"
|
||||
--- gdb-6.8.50.20090302.orig/gdb/dwarf2read.c 2009-05-09 20:00:02.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/dwarf2read.c 2009-05-09 20:00:19.000000000 +0200
|
||||
@@ -50,6 +50,7 @@
|
||||
#include "c-lang.h"
|
||||
#include "typeprint.h"
|
||||
#include "block.h"
|
||||
+#include "top.h"
|
||||
|
||||
#include <fcntl.h>
|
||||
#include "gdb_string.h"
|
||||
@@ -1161,7 +1162,8 @@ dwarf2_has_info (struct objfile *objfile
|
||||
@@ -1187,7 +1188,8 @@ dwarf2_has_info (struct objfile *objfile
|
||||
dwarf_aranges_section = 0;
|
||||
|
||||
bfd_map_over_sections (objfile->obfd, dwarf2_locate_sections, &update_sizes);
|
||||
@ -82,10 +82,10 @@ Index: gdb-6.8.50.20090228/gdb/dwarf2read.c
|
||||
}
|
||||
|
||||
/* When loading sections, we can either look for ".<name>", or for
|
||||
Index: gdb-6.8.50.20090228/gdb/top.h
|
||||
Index: gdb-6.8.50.20090302/gdb/top.h
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090228.orig/gdb/top.h 2009-01-03 06:57:53.000000000 +0100
|
||||
+++ gdb-6.8.50.20090228/gdb/top.h 2009-03-02 01:01:23.000000000 +0100
|
||||
--- gdb-6.8.50.20090302.orig/gdb/top.h 2009-01-03 06:57:53.000000000 +0100
|
||||
+++ gdb-6.8.50.20090302/gdb/top.h 2009-05-09 20:00:06.000000000 +0200
|
||||
@@ -59,6 +59,7 @@ extern void set_prompt (char *);
|
||||
|
||||
/* From random places. */
|
||||
|
@ -1,8 +1,8 @@
|
||||
Index: gdb-6.8.50.20090228/gdb/dwarf2read.c
|
||||
Index: gdb-6.8.50.20090302/gdb/dwarf2read.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090228.orig/gdb/dwarf2read.c 2009-03-02 01:07:36.000000000 +0100
|
||||
+++ gdb-6.8.50.20090228/gdb/dwarf2read.c 2009-03-02 01:07:50.000000000 +0100
|
||||
@@ -1996,6 +1996,7 @@ scan_partial_symbols (struct partial_die
|
||||
--- gdb-6.8.50.20090302.orig/gdb/dwarf2read.c 2009-05-09 20:04:27.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/dwarf2read.c 2009-05-09 20:04:56.000000000 +0200
|
||||
@@ -2029,6 +2029,7 @@ scan_partial_symbols (struct partial_die
|
||||
add_partial_subprogram (pdi, lowpc, highpc, need_pc, cu);
|
||||
break;
|
||||
case DW_TAG_variable:
|
||||
@ -10,7 +10,7 @@ Index: gdb-6.8.50.20090228/gdb/dwarf2read.c
|
||||
case DW_TAG_typedef:
|
||||
case DW_TAG_union_type:
|
||||
if (!pdi->is_declaration)
|
||||
@@ -2211,6 +2212,7 @@ add_partial_symbol (struct partial_die_i
|
||||
@@ -2244,6 +2245,7 @@ add_partial_symbol (struct partial_die_i
|
||||
}
|
||||
break;
|
||||
case DW_TAG_variable:
|
||||
@ -18,7 +18,7 @@ Index: gdb-6.8.50.20090228/gdb/dwarf2read.c
|
||||
if (pdi->is_external)
|
||||
{
|
||||
/* Global Variable.
|
||||
@@ -4213,7 +4215,8 @@ dwarf2_add_field (struct field_info *fip
|
||||
@@ -4272,7 +4274,8 @@ dwarf2_add_field (struct field_info *fip
|
||||
fip->non_public_fields = 1;
|
||||
}
|
||||
}
|
||||
@ -28,7 +28,7 @@ Index: gdb-6.8.50.20090228/gdb/dwarf2read.c
|
||||
{
|
||||
/* C++ static member. */
|
||||
|
||||
@@ -4703,7 +4706,8 @@ read_structure_type (struct die_info *di
|
||||
@@ -4762,7 +4765,8 @@ read_structure_type (struct die_info *di
|
||||
while (child_die && child_die->tag)
|
||||
{
|
||||
if (child_die->tag == DW_TAG_member
|
||||
@ -38,7 +38,7 @@ Index: gdb-6.8.50.20090228/gdb/dwarf2read.c
|
||||
{
|
||||
/* NOTE: carlton/2002-11-05: A C++ static data member
|
||||
should be a DW_TAG_member that is a declaration, but
|
||||
@@ -4822,6 +4826,7 @@ process_structure_scope (struct die_info
|
||||
@@ -4881,6 +4885,7 @@ process_structure_scope (struct die_info
|
||||
{
|
||||
if (child_die->tag == DW_TAG_member
|
||||
|| child_die->tag == DW_TAG_variable
|
||||
@ -46,15 +46,15 @@ Index: gdb-6.8.50.20090228/gdb/dwarf2read.c
|
||||
|| child_die->tag == DW_TAG_inheritance)
|
||||
{
|
||||
/* Do nothing. */
|
||||
@@ -6455,6 +6460,7 @@ load_partial_dies (bfd *abfd, gdb_byte *
|
||||
@@ -6656,6 +6661,7 @@ load_partial_dies (bfd *abfd, gdb_byte *
|
||||
&& abbrev->tag != DW_TAG_subprogram
|
||||
&& abbrev->tag != DW_TAG_lexical_block
|
||||
&& abbrev->tag != DW_TAG_variable
|
||||
+ && abbrev->tag != DW_TAG_constant
|
||||
&& abbrev->tag != DW_TAG_namespace
|
||||
&& abbrev->tag != DW_TAG_module
|
||||
&& abbrev->tag != DW_TAG_member)
|
||||
{
|
||||
@@ -6562,6 +6568,7 @@ load_partial_dies (bfd *abfd, gdb_byte *
|
||||
@@ -6764,6 +6770,7 @@ load_partial_dies (bfd *abfd, gdb_byte *
|
||||
if (load_all
|
||||
|| abbrev->tag == DW_TAG_subprogram
|
||||
|| abbrev->tag == DW_TAG_variable
|
||||
@ -62,7 +62,7 @@ Index: gdb-6.8.50.20090228/gdb/dwarf2read.c
|
||||
|| abbrev->tag == DW_TAG_namespace
|
||||
|| part_die->is_declaration)
|
||||
{
|
||||
@@ -8341,6 +8348,11 @@ new_symbol (struct die_info *die, struct
|
||||
@@ -8549,6 +8556,11 @@ new_symbol (struct die_info *die, struct
|
||||
/* Do not add the symbol to any lists. It will be found via
|
||||
BLOCK_FUNCTION from the blockvector. */
|
||||
break;
|
||||
|
@ -7,8 +7,8 @@ Removed dwarf_expr_frame_base NULL check duplicity with *-vla.patch.
|
||||
|
||||
Index: gdb-6.8.50.20090302/gdb/NEWS
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/NEWS 2009-04-13 22:19:47.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/NEWS 2009-04-13 22:22:01.000000000 +0200
|
||||
--- gdb-6.8.50.20090302.orig/gdb/NEWS 2009-05-09 21:27:09.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/NEWS 2009-05-09 21:27:23.000000000 +0200
|
||||
@@ -1,6 +1,11 @@
|
||||
What has changed in GDB?
|
||||
(Organized release by release)
|
||||
@ -23,8 +23,8 @@ Index: gdb-6.8.50.20090302/gdb/NEWS
|
||||
* GDB now has support for multi-byte and wide character sets on the
|
||||
Index: gdb-6.8.50.20090302/gdb/block.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/block.c 2009-04-13 22:19:47.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/block.c 2009-04-13 22:22:01.000000000 +0200
|
||||
--- gdb-6.8.50.20090302.orig/gdb/block.c 2009-05-09 21:27:09.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/block.c 2009-05-09 21:27:23.000000000 +0200
|
||||
@@ -47,8 +47,16 @@ contained_in (const struct block *a, con
|
||||
{
|
||||
if (!a || !b)
|
||||
@ -69,8 +69,8 @@ Index: gdb-6.8.50.20090302/gdb/block.c
|
||||
is none. PBLOCK is a pointer to the block. If PBLOCK is NULL, we
|
||||
Index: gdb-6.8.50.20090302/gdb/block.h
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/block.h 2009-01-03 06:57:50.000000000 +0100
|
||||
+++ gdb-6.8.50.20090302/gdb/block.h 2009-04-13 22:22:01.000000000 +0200
|
||||
--- gdb-6.8.50.20090302.orig/gdb/block.h 2009-05-09 21:27:09.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/block.h 2009-05-09 21:27:23.000000000 +0200
|
||||
@@ -65,7 +65,7 @@ struct block
|
||||
CORE_ADDR endaddr;
|
||||
|
||||
@ -80,7 +80,7 @@ Index: gdb-6.8.50.20090302/gdb/block.h
|
||||
|
||||
struct symbol *function;
|
||||
|
||||
@@ -134,6 +134,8 @@ enum { GLOBAL_BLOCK = 0, STATIC_BLOCK =
|
||||
@@ -144,6 +144,8 @@ enum { GLOBAL_BLOCK = 0, STATIC_BLOCK =
|
||||
|
||||
extern struct symbol *block_linkage_function (const struct block *);
|
||||
|
||||
@ -92,7 +92,7 @@ Index: gdb-6.8.50.20090302/gdb/block.h
|
||||
Index: gdb-6.8.50.20090302/gdb/blockframe.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/blockframe.c 2009-01-03 06:57:50.000000000 +0100
|
||||
+++ gdb-6.8.50.20090302/gdb/blockframe.c 2009-04-13 22:22:01.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/blockframe.c 2009-05-09 21:27:23.000000000 +0200
|
||||
@@ -36,6 +36,7 @@
|
||||
#include "command.h"
|
||||
#include "gdbcmd.h"
|
||||
@ -163,8 +163,8 @@ Index: gdb-6.8.50.20090302/gdb/blockframe.c
|
||||
frame = get_prev_frame (frame);
|
||||
Index: gdb-6.8.50.20090302/gdb/breakpoint.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/breakpoint.c 2009-04-13 22:19:50.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/breakpoint.c 2009-04-13 22:22:01.000000000 +0200
|
||||
--- gdb-6.8.50.20090302.orig/gdb/breakpoint.c 2009-05-09 21:27:15.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/breakpoint.c 2009-05-09 21:27:23.000000000 +0200
|
||||
@@ -2641,19 +2641,21 @@ watchpoint_check (void *p)
|
||||
within_current_scope = 1;
|
||||
else
|
||||
@ -344,8 +344,8 @@ Index: gdb-6.8.50.20090302/gdb/breakpoint.c
|
||||
}
|
||||
Index: gdb-6.8.50.20090302/gdb/buildsym.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/buildsym.c 2009-04-13 22:19:47.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/buildsym.c 2009-04-13 22:22:01.000000000 +0200
|
||||
--- gdb-6.8.50.20090302.orig/gdb/buildsym.c 2009-05-09 21:27:09.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/buildsym.c 2009-05-09 21:27:23.000000000 +0200
|
||||
@@ -1155,6 +1155,12 @@ end_symtab (CORE_ADDR end_addr, struct o
|
||||
struct symbol *sym;
|
||||
struct dict_iterator iter;
|
||||
@ -361,8 +361,8 @@ Index: gdb-6.8.50.20090302/gdb/buildsym.c
|
||||
sym = dict_iterator_next (&iter))
|
||||
Index: gdb-6.8.50.20090302/gdb/doc/gdb.texinfo
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/doc/gdb.texinfo 2009-04-13 22:19:50.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/doc/gdb.texinfo 2009-04-13 22:22:01.000000000 +0200
|
||||
--- gdb-6.8.50.20090302.orig/gdb/doc/gdb.texinfo 2009-05-09 21:27:15.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/doc/gdb.texinfo 2009-05-09 21:27:23.000000000 +0200
|
||||
@@ -137,6 +137,7 @@ software in general. We will miss him.
|
||||
* Stack:: Examining the stack
|
||||
* Source:: Examining source files
|
||||
@ -514,8 +514,8 @@ Index: gdb-6.8.50.20090302/gdb/doc/gdb.texinfo
|
||||
|
||||
Index: gdb-6.8.50.20090302/gdb/dwarf2loc.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/dwarf2loc.c 2009-04-13 22:19:47.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/dwarf2loc.c 2009-04-13 22:22:01.000000000 +0200
|
||||
--- gdb-6.8.50.20090302.orig/gdb/dwarf2loc.c 2009-05-09 21:27:09.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/dwarf2loc.c 2009-05-09 21:27:23.000000000 +0200
|
||||
@@ -31,6 +31,7 @@
|
||||
#include "regcache.h"
|
||||
#include "objfiles.h"
|
||||
@ -538,17 +538,9 @@ Index: gdb-6.8.50.20090302/gdb/dwarf2loc.c
|
||||
some function associated with a frame. If we can't find the frame,
|
||||
Index: gdb-6.8.50.20090302/gdb/dwarf2read.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/dwarf2read.c 2009-04-13 22:19:50.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/dwarf2read.c 2009-04-13 22:22:41.000000000 +0200
|
||||
@@ -50,6 +50,7 @@
|
||||
#include "c-lang.h"
|
||||
#include "typeprint.h"
|
||||
#include "top.h"
|
||||
+#include "block.h"
|
||||
|
||||
#include <fcntl.h>
|
||||
#include "gdb_string.h"
|
||||
@@ -2992,12 +2993,8 @@ process_die (struct die_info *die, struc
|
||||
--- gdb-6.8.50.20090302.orig/gdb/dwarf2read.c 2009-05-09 21:27:15.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/dwarf2read.c 2009-05-09 21:27:23.000000000 +0200
|
||||
@@ -3024,12 +3024,8 @@ process_die (struct die_info *die, struc
|
||||
read_file_scope (die, cu);
|
||||
break;
|
||||
case DW_TAG_subprogram:
|
||||
@ -562,7 +554,7 @@ Index: gdb-6.8.50.20090302/gdb/dwarf2read.c
|
||||
break;
|
||||
case DW_TAG_lexical_block:
|
||||
case DW_TAG_try_block:
|
||||
@@ -3472,6 +3469,22 @@ read_func_scope (struct die_info *die, s
|
||||
@@ -3516,6 +3512,22 @@ read_func_scope (struct die_info *die, s
|
||||
CORE_ADDR baseaddr;
|
||||
struct block *block;
|
||||
unsigned die_children;
|
||||
@ -585,7 +577,7 @@ Index: gdb-6.8.50.20090302/gdb/dwarf2read.c
|
||||
|
||||
baseaddr = ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
|
||||
|
||||
@@ -7531,6 +7544,9 @@ die_specification (struct die_info *die,
|
||||
@@ -7725,6 +7737,9 @@ die_specification (struct die_info *die,
|
||||
*spec_cu);
|
||||
|
||||
if (spec_attr == NULL)
|
||||
@ -595,7 +587,7 @@ Index: gdb-6.8.50.20090302/gdb/dwarf2read.c
|
||||
return NULL;
|
||||
else
|
||||
return follow_die_ref (die, spec_attr, spec_cu);
|
||||
@@ -8214,6 +8230,7 @@ new_symbol (struct die_info *die, struct
|
||||
@@ -8408,6 +8423,7 @@ new_symbol (struct die_info *die, struct
|
||||
struct attribute *attr = NULL;
|
||||
struct attribute *attr2 = NULL;
|
||||
CORE_ADDR baseaddr;
|
||||
@ -603,7 +595,7 @@ Index: gdb-6.8.50.20090302/gdb/dwarf2read.c
|
||||
|
||||
baseaddr = ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
|
||||
|
||||
@@ -8264,13 +8281,17 @@ new_symbol (struct die_info *die, struct
|
||||
@@ -8464,13 +8480,17 @@ new_symbol (struct die_info *die, struct
|
||||
SYMBOL_TYPE (sym) = type;
|
||||
else
|
||||
SYMBOL_TYPE (sym) = die_type (die, cu);
|
||||
@ -623,7 +615,7 @@ Index: gdb-6.8.50.20090302/gdb/dwarf2read.c
|
||||
if (attr)
|
||||
{
|
||||
int file_index = DW_UNSND (attr);
|
||||
@@ -8317,6 +8338,14 @@ new_symbol (struct die_info *die, struct
|
||||
@@ -8517,6 +8537,14 @@ new_symbol (struct die_info *die, struct
|
||||
add_symbol_to_list (sym, cu->list_in_scope);
|
||||
}
|
||||
break;
|
||||
@ -638,7 +630,7 @@ Index: gdb-6.8.50.20090302/gdb/dwarf2read.c
|
||||
case DW_TAG_variable:
|
||||
/* Compilation with minimal debug info may result in variables
|
||||
with missing type entries. Change the misleading `void' type
|
||||
@@ -8372,7 +8401,14 @@ new_symbol (struct die_info *die, struct
|
||||
@@ -8583,7 +8611,14 @@ new_symbol (struct die_info *die, struct
|
||||
}
|
||||
break;
|
||||
case DW_TAG_formal_parameter:
|
||||
@ -657,7 +649,7 @@ Index: gdb-6.8.50.20090302/gdb/dwarf2read.c
|
||||
Index: gdb-6.8.50.20090302/gdb/frame-unwind.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/frame-unwind.c 2009-01-03 06:57:51.000000000 +0100
|
||||
+++ gdb-6.8.50.20090302/gdb/frame-unwind.c 2009-04-13 22:22:01.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/frame-unwind.c 2009-05-09 21:27:23.000000000 +0200
|
||||
@@ -21,6 +21,7 @@
|
||||
#include "frame.h"
|
||||
#include "frame-unwind.h"
|
||||
@ -680,8 +672,8 @@ Index: gdb-6.8.50.20090302/gdb/frame-unwind.c
|
||||
|
||||
Index: gdb-6.8.50.20090302/gdb/frame.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/frame.c 2009-04-13 22:19:48.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/frame.c 2009-04-13 22:22:01.000000000 +0200
|
||||
--- gdb-6.8.50.20090302.orig/gdb/frame.c 2009-05-09 21:27:11.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/frame.c 2009-05-09 21:27:23.000000000 +0200
|
||||
@@ -41,8 +41,14 @@
|
||||
#include "objfiles.h"
|
||||
#include "exceptions.h"
|
||||
@ -1041,7 +1033,7 @@ Index: gdb-6.8.50.20090302/gdb/frame.c
|
||||
Index: gdb-6.8.50.20090302/gdb/frame.h
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/frame.h 2009-02-05 18:28:20.000000000 +0100
|
||||
+++ gdb-6.8.50.20090302/gdb/frame.h 2009-04-13 22:22:01.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/frame.h 2009-05-09 21:27:23.000000000 +0200
|
||||
@@ -34,6 +34,9 @@
|
||||
frame_unwind_WHAT...(): Unwind THIS frame's WHAT from the NEXT
|
||||
frame.
|
||||
@ -1105,8 +1097,8 @@ Index: gdb-6.8.50.20090302/gdb/frame.h
|
||||
/* Assuming that a frame is `normal', return its base-address, or 0 if
|
||||
Index: gdb-6.8.50.20090302/gdb/gdbthread.h
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/gdbthread.h 2009-04-13 22:19:47.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/gdbthread.h 2009-04-13 22:22:01.000000000 +0200
|
||||
--- gdb-6.8.50.20090302.orig/gdb/gdbthread.h 2009-05-09 21:27:09.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/gdbthread.h 2009-05-09 21:27:23.000000000 +0200
|
||||
@@ -83,6 +83,13 @@ struct thread_info
|
||||
This is how we know when we step into a subroutine call, and how
|
||||
to set the frame for the breakpoint used to step out. */
|
||||
@ -1123,8 +1115,8 @@ Index: gdb-6.8.50.20090302/gdb/gdbthread.h
|
||||
|
||||
Index: gdb-6.8.50.20090302/gdb/infcall.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/infcall.c 2009-04-13 22:19:47.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/infcall.c 2009-04-13 22:22:01.000000000 +0200
|
||||
--- gdb-6.8.50.20090302.orig/gdb/infcall.c 2009-05-09 21:27:09.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/infcall.c 2009-05-09 21:27:23.000000000 +0200
|
||||
@@ -898,15 +898,8 @@ The program being debugged exited while
|
||||
|
||||
if (unwind_on_signal_p)
|
||||
@ -1145,8 +1137,8 @@ Index: gdb-6.8.50.20090302/gdb/infcall.c
|
||||
long if it's a C++ name with arguments and stuff. */
|
||||
Index: gdb-6.8.50.20090302/gdb/infcmd.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/infcmd.c 2009-04-13 22:19:47.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/infcmd.c 2009-04-13 22:22:01.000000000 +0200
|
||||
--- gdb-6.8.50.20090302.orig/gdb/infcmd.c 2009-05-09 21:27:09.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/infcmd.c 2009-05-09 21:27:23.000000000 +0200
|
||||
@@ -52,6 +52,7 @@
|
||||
#include "cli/cli-decode.h"
|
||||
#include "gdbthread.h"
|
||||
@ -1250,8 +1242,8 @@ Index: gdb-6.8.50.20090302/gdb/infcmd.c
|
||||
function = find_pc_function (get_frame_pc (get_selected_frame (NULL)));
|
||||
Index: gdb-6.8.50.20090302/gdb/inferior.h
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/inferior.h 2009-04-13 22:19:47.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/inferior.h 2009-04-13 22:22:01.000000000 +0200
|
||||
--- gdb-6.8.50.20090302.orig/gdb/inferior.h 2009-05-09 21:27:09.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/inferior.h 2009-05-09 21:27:23.000000000 +0200
|
||||
@@ -259,6 +259,9 @@ extern void error_is_running (void);
|
||||
/* Calls error_is_running if the current thread is running. */
|
||||
extern void ensure_not_running (void);
|
||||
@ -1264,8 +1256,8 @@ Index: gdb-6.8.50.20090302/gdb/inferior.h
|
||||
extern void tty_command (char *, int);
|
||||
Index: gdb-6.8.50.20090302/gdb/infrun.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/infrun.c 2009-04-13 22:19:49.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/infrun.c 2009-04-13 22:22:01.000000000 +0200
|
||||
--- gdb-6.8.50.20090302.orig/gdb/infrun.c 2009-05-09 21:27:14.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/infrun.c 2009-05-09 21:27:23.000000000 +0200
|
||||
@@ -48,6 +48,7 @@
|
||||
#include "gdb_assert.h"
|
||||
#include "mi/mi-common.h"
|
||||
@ -1541,7 +1533,7 @@ Index: gdb-6.8.50.20090302/gdb/infrun.c
|
||||
Index: gdb-6.8.50.20090302/gdb/inline-frame.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-6.8.50.20090302/gdb/inline-frame.c 2009-04-13 22:22:01.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/inline-frame.c 2009-05-09 21:27:23.000000000 +0200
|
||||
@@ -0,0 +1,382 @@
|
||||
+/* Inline frame unwinder for GDB.
|
||||
+
|
||||
@ -1928,7 +1920,7 @@ Index: gdb-6.8.50.20090302/gdb/inline-frame.c
|
||||
Index: gdb-6.8.50.20090302/gdb/inline-frame.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-6.8.50.20090302/gdb/inline-frame.h 2009-04-13 22:22:01.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/inline-frame.h 2009-05-09 21:27:23.000000000 +0200
|
||||
@@ -0,0 +1,62 @@
|
||||
+/* Definitions for inline frame support.
|
||||
+
|
||||
@ -1994,8 +1986,8 @@ Index: gdb-6.8.50.20090302/gdb/inline-frame.h
|
||||
+#endif /* !defined (INLINE_FRAME_H) */
|
||||
Index: gdb-6.8.50.20090302/gdb/minsyms.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/minsyms.c 2009-04-13 22:19:49.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/minsyms.c 2009-04-13 22:22:01.000000000 +0200
|
||||
--- gdb-6.8.50.20090302.orig/gdb/minsyms.c 2009-05-09 21:27:14.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/minsyms.c 2009-05-09 21:27:23.000000000 +0200
|
||||
@@ -795,7 +795,7 @@ prim_record_minimal_symbol_and_info (con
|
||||
|
||||
if (msym_bunch_index == BUNCH_SIZE)
|
||||
@ -2008,7 +2000,7 @@ Index: gdb-6.8.50.20090302/gdb/minsyms.c
|
||||
Index: gdb-6.8.50.20090302/gdb/s390-tdep.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/s390-tdep.c 2009-02-22 02:02:19.000000000 +0100
|
||||
+++ gdb-6.8.50.20090302/gdb/s390-tdep.c 2009-04-13 22:22:01.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/s390-tdep.c 2009-05-09 21:27:23.000000000 +0200
|
||||
@@ -1182,6 +1182,7 @@ s390_prologue_frame_unwind_cache (struct
|
||||
CORE_ADDR prev_sp;
|
||||
int frame_pointer;
|
||||
@ -2044,8 +2036,8 @@ Index: gdb-6.8.50.20090302/gdb/s390-tdep.c
|
||||
/* See the comment in s390_in_function_epilogue_p on why this is
|
||||
Index: gdb-6.8.50.20090302/gdb/stack.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/stack.c 2009-04-13 22:19:47.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/stack.c 2009-04-13 22:22:01.000000000 +0200
|
||||
--- gdb-6.8.50.20090302.orig/gdb/stack.c 2009-05-09 21:27:09.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/stack.c 2009-05-09 21:27:23.000000000 +0200
|
||||
@@ -45,6 +45,7 @@
|
||||
#include "valprint.h"
|
||||
#include "gdbthread.h"
|
||||
@ -2194,9 +2186,9 @@ Index: gdb-6.8.50.20090302/gdb/stack.c
|
||||
RETURN_VALUE to NULL, and QUERY_PREFIX to an informational
|
||||
Index: gdb-6.8.50.20090302/gdb/symtab.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/symtab.c 2009-04-13 22:19:49.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/symtab.c 2009-04-13 22:22:01.000000000 +0200
|
||||
@@ -1417,11 +1417,14 @@ lookup_symbol_aux_local (const char *nam
|
||||
--- gdb-6.8.50.20090302.orig/gdb/symtab.c 2009-05-09 21:27:14.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/symtab.c 2009-05-09 21:28:06.000000000 +0200
|
||||
@@ -1420,11 +1420,14 @@ lookup_symbol_aux_local (const char *nam
|
||||
sym = lookup_symbol_aux_block (name, linkage_name, block_iterator, domain);
|
||||
if (sym != NULL)
|
||||
return sym;
|
||||
@ -2212,7 +2204,7 @@ Index: gdb-6.8.50.20090302/gdb/symtab.c
|
||||
|
||||
return NULL;
|
||||
}
|
||||
@@ -2678,6 +2681,7 @@ find_function_start_sal (struct symbol *
|
||||
@@ -2681,6 +2684,7 @@ find_function_start_sal (struct symbol *
|
||||
|
||||
CORE_ADDR pc;
|
||||
struct symtab_and_line sal;
|
||||
@ -2220,7 +2212,7 @@ Index: gdb-6.8.50.20090302/gdb/symtab.c
|
||||
|
||||
pc = BLOCK_START (block);
|
||||
fixup_symbol_section (sym, objfile);
|
||||
@@ -2716,6 +2720,25 @@ find_function_start_sal (struct symbol *
|
||||
@@ -2719,6 +2723,25 @@ find_function_start_sal (struct symbol *
|
||||
|
||||
sal.pc = pc;
|
||||
|
||||
@ -2246,7 +2238,7 @@ Index: gdb-6.8.50.20090302/gdb/symtab.c
|
||||
return sal;
|
||||
}
|
||||
|
||||
@@ -3738,6 +3761,24 @@ add_macro_name (const char *name, const
|
||||
@@ -3741,6 +3764,24 @@ add_macro_name (const char *name, const
|
||||
datum->text, datum->word);
|
||||
}
|
||||
|
||||
@ -2271,7 +2263,7 @@ Index: gdb-6.8.50.20090302/gdb/symtab.c
|
||||
char **
|
||||
default_make_symbol_completion_list (char *text, char *word)
|
||||
{
|
||||
@@ -3750,9 +3791,9 @@ default_make_symbol_completion_list (cha
|
||||
@@ -3753,9 +3794,9 @@ default_make_symbol_completion_list (cha
|
||||
struct partial_symtab *ps;
|
||||
struct minimal_symbol *msymbol;
|
||||
struct objfile *objfile;
|
||||
@ -2283,7 +2275,7 @@ Index: gdb-6.8.50.20090302/gdb/symtab.c
|
||||
struct partial_symbol **psym;
|
||||
/* The symbol we are completing on. Points in same buffer as text. */
|
||||
char *sym_text;
|
||||
@@ -3862,41 +3903,43 @@ default_make_symbol_completion_list (cha
|
||||
@@ -3865,41 +3906,43 @@ default_make_symbol_completion_list (cha
|
||||
}
|
||||
|
||||
/* Search upwards from currently selected frame (so that we can
|
||||
@ -2358,7 +2350,7 @@ Index: gdb-6.8.50.20090302/gdb/symtab.c
|
||||
|
||||
/* Go through the symtabs and check the externs and statics for
|
||||
symbols which match. */
|
||||
@@ -3915,9 +3958,6 @@ default_make_symbol_completion_list (cha
|
||||
@@ -3918,9 +3961,6 @@ default_make_symbol_completion_list (cha
|
||||
{
|
||||
QUIT;
|
||||
b = BLOCKVECTOR_BLOCK (BLOCKVECTOR (s), STATIC_BLOCK);
|
||||
@ -2368,7 +2360,7 @@ Index: gdb-6.8.50.20090302/gdb/symtab.c
|
||||
ALL_BLOCK_SYMBOLS (b, iter, sym)
|
||||
{
|
||||
COMPLETION_LIST_ADD_SYMBOL (sym, sym_text, sym_text_len, text, word);
|
||||
@@ -4384,6 +4424,25 @@ skip_prologue_using_sal (CORE_ADDR func_
|
||||
@@ -4387,6 +4427,25 @@ skip_prologue_using_sal (CORE_ADDR func_
|
||||
line mark the prologue -> body transition. */
|
||||
if (sal.line >= prologue_sal.line)
|
||||
break;
|
||||
@ -2396,9 +2388,9 @@ Index: gdb-6.8.50.20090302/gdb/symtab.c
|
||||
the function looking for address ranges whose
|
||||
Index: gdb-6.8.50.20090302/gdb/symtab.h
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/symtab.h 2009-04-13 22:19:47.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/symtab.h 2009-04-13 22:22:01.000000000 +0200
|
||||
@@ -562,9 +562,18 @@ struct symbol
|
||||
--- gdb-6.8.50.20090302.orig/gdb/symtab.h 2009-05-09 21:27:09.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/symtab.h 2009-05-09 21:27:23.000000000 +0200
|
||||
@@ -565,9 +565,18 @@ struct symbol
|
||||
|
||||
unsigned is_argument : 1;
|
||||
|
||||
@ -2420,7 +2412,7 @@ Index: gdb-6.8.50.20090302/gdb/symtab.h
|
||||
|
||||
unsigned short line;
|
||||
|
||||
@@ -595,6 +604,7 @@ struct symbol
|
||||
@@ -598,6 +607,7 @@ struct symbol
|
||||
#define SYMBOL_DOMAIN(symbol) (symbol)->domain
|
||||
#define SYMBOL_CLASS(symbol) (symbol)->aclass
|
||||
#define SYMBOL_IS_ARGUMENT(symbol) (symbol)->is_argument
|
||||
@ -2431,7 +2423,7 @@ Index: gdb-6.8.50.20090302/gdb/symtab.h
|
||||
Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.base/break.exp
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/testsuite/gdb.base/break.exp 2009-01-19 20:05:01.000000000 +0100
|
||||
+++ gdb-6.8.50.20090302/gdb/testsuite/gdb.base/break.exp 2009-04-13 22:22:01.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/testsuite/gdb.base/break.exp 2009-05-09 21:27:23.000000000 +0200
|
||||
@@ -880,6 +880,13 @@ gdb_expect {
|
||||
# marker4() is defined at line 46 when compiled with -DPROTOTYPES
|
||||
pass "run until breakpoint set at small function, optimized file (line bp_location14)"
|
||||
@ -2449,7 +2441,7 @@ Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.base/break.exp
|
||||
Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.cp/annota2.exp
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/testsuite/gdb.cp/annota2.exp 2009-01-03 06:58:04.000000000 +0100
|
||||
+++ gdb-6.8.50.20090302/gdb/testsuite/gdb.cp/annota2.exp 2009-04-13 22:22:01.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/testsuite/gdb.cp/annota2.exp 2009-05-09 21:27:23.000000000 +0200
|
||||
@@ -119,10 +119,11 @@ gdb_expect {
|
||||
# continue until exit
|
||||
# this will test:
|
||||
@ -2466,7 +2458,7 @@ Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.cp/annota2.exp
|
||||
Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-bt.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-bt.c 2009-04-13 22:22:01.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-bt.c 2009-05-09 21:27:23.000000000 +0200
|
||||
@@ -0,0 +1,47 @@
|
||||
+/* Copyright (C) 2008 Free Software Foundation, Inc.
|
||||
+
|
||||
@ -2518,7 +2510,7 @@ Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-bt.c
|
||||
Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-bt.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-bt.exp 2009-04-13 22:22:01.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-bt.exp 2009-05-09 21:27:23.000000000 +0200
|
||||
@@ -0,0 +1,63 @@
|
||||
+# Copyright 2008 Free Software Foundation, Inc.
|
||||
+
|
||||
@ -2586,7 +2578,7 @@ Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-bt.exp
|
||||
Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-cmds.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-cmds.c 2009-04-13 22:22:01.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-cmds.c 2009-05-09 21:27:23.000000000 +0200
|
||||
@@ -0,0 +1,85 @@
|
||||
+/* Copyright (C) 2008 Free Software Foundation, Inc.
|
||||
+
|
||||
@ -2676,7 +2668,7 @@ Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-cmds.c
|
||||
Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-cmds.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-cmds.exp 2009-04-13 22:22:01.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-cmds.exp 2009-05-09 21:27:23.000000000 +0200
|
||||
@@ -0,0 +1,279 @@
|
||||
+# Copyright 2008 Free Software Foundation, Inc.
|
||||
+
|
||||
@ -2960,7 +2952,7 @@ Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-cmds.exp
|
||||
Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-locals.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-locals.c 2009-04-13 22:22:01.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-locals.c 2009-05-09 21:27:23.000000000 +0200
|
||||
@@ -0,0 +1,52 @@
|
||||
+/* Copyright (C) 2008 Free Software Foundation, Inc.
|
||||
+
|
||||
@ -3017,7 +3009,7 @@ Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-locals.c
|
||||
Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-locals.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-locals.exp 2009-04-13 22:22:01.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-locals.exp 2009-05-09 21:27:23.000000000 +0200
|
||||
@@ -0,0 +1,118 @@
|
||||
+# Copyright 2008 Free Software Foundation, Inc.
|
||||
+
|
||||
@ -3140,7 +3132,7 @@ Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-locals.exp
|
||||
Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-markers.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-markers.c 2009-04-13 22:22:01.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-markers.c 2009-05-09 21:27:23.000000000 +0200
|
||||
@@ -0,0 +1,36 @@
|
||||
+/* Copyright (C) 2008 Free Software Foundation, Inc.
|
||||
+
|
||||
@ -3180,8 +3172,8 @@ Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-markers.c
|
||||
+}
|
||||
Index: gdb-6.8.50.20090302/gdb/testsuite/lib/gdb.exp
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/testsuite/lib/gdb.exp 2009-04-13 22:19:50.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/testsuite/lib/gdb.exp 2009-04-13 22:22:01.000000000 +0200
|
||||
--- gdb-6.8.50.20090302.orig/gdb/testsuite/lib/gdb.exp 2009-05-09 21:27:14.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/testsuite/lib/gdb.exp 2009-05-09 21:27:23.000000000 +0200
|
||||
@@ -1474,6 +1474,37 @@ proc skip_hp_tests {} {
|
||||
return $skip_hp
|
||||
}
|
||||
@ -3222,8 +3214,8 @@ Index: gdb-6.8.50.20090302/gdb/testsuite/lib/gdb.exp
|
||||
set hp_cc_compiler 0
|
||||
Index: gdb-6.8.50.20090302/gdb/valops.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/valops.c 2009-04-13 22:19:48.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/valops.c 2009-04-13 22:22:01.000000000 +0200
|
||||
--- gdb-6.8.50.20090302.orig/gdb/valops.c 2009-05-09 21:27:10.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/valops.c 2009-05-09 21:27:23.000000000 +0200
|
||||
@@ -1072,7 +1072,7 @@ value_of_variable (struct symbol *var, s
|
||||
frame = block_innermost_frame (b);
|
||||
if (!frame)
|
||||
@ -3235,8 +3227,8 @@ Index: gdb-6.8.50.20090302/gdb/valops.c
|
||||
SYMBOL_PRINT_NAME (BLOCK_FUNCTION (b)));
|
||||
Index: gdb-6.8.50.20090302/gdb/Makefile.in
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/Makefile.in 2009-04-13 22:19:49.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/Makefile.in 2009-04-13 22:22:01.000000000 +0200
|
||||
--- gdb-6.8.50.20090302.orig/gdb/Makefile.in 2009-05-09 21:27:14.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/Makefile.in 2009-05-09 21:27:23.000000000 +0200
|
||||
@@ -667,6 +667,7 @@ SFILES = ada-exp.y ada-lang.c ada-typepr
|
||||
inf-loop.c \
|
||||
infcall.c \
|
||||
@ -3256,7 +3248,7 @@ Index: gdb-6.8.50.20090302/gdb/Makefile.in
|
||||
Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/Makefile.in
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/testsuite/gdb.opt/Makefile.in 2008-04-18 01:06:54.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/Makefile.in 2009-04-13 22:22:01.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/Makefile.in 2009-05-09 21:27:23.000000000 +0200
|
||||
@@ -1,7 +1,7 @@
|
||||
VPATH = @srcdir@
|
||||
srcdir = @srcdir@
|
||||
|
1170
gdb-archer.patch
1170
gdb-archer.patch
File diff suppressed because it is too large
Load Diff
@ -90,6 +90,7 @@ static int spawn (char **argv)
|
||||
termios.c_oflag = 0;
|
||||
termios.c_cflag = CS8 | CREAD | CLOCAL | HUPCL | B9600;
|
||||
termios.c_lflag = IEXTEN | NOFLSH;
|
||||
termios.c_line = 0;
|
||||
memset (termios.c_cc, _POSIX_VDISABLE, sizeof (termios.c_cc));
|
||||
termios.c_cc[VTIME] = 0;
|
||||
termios.c_cc[VMIN ] = 1;
|
||||
|
328
gdb-varobj-revalidate-core.patch
Normal file
328
gdb-varobj-revalidate-core.patch
Normal file
@ -0,0 +1,328 @@
|
||||
Re: [patch] [4/5] Types reference counting [varobj-validation]
|
||||
http://sourceware.org/ml/gdb-patches/2009-04/msg00610.html
|
||||
|
||||
gdb/
|
||||
2009-04-22 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
Split varobj_invalidate into a two-phased operation.
|
||||
* objfiles.c: Include varobj.h
|
||||
(free_objfile): Call varobj_invalidate.
|
||||
* parser-defs.h (exp_uses_objfile): New prototype.
|
||||
* printcmd.c (display_uses_objfile): Move the EXP checking part to ...
|
||||
* parse.c (exp_uses_objfile): ... a new function here.
|
||||
* symfile.c (new_symfile_objfile): Call varobj_revalidate.
|
||||
(reread_symbols): Call varobj_invalidate and varobj_revalidate.
|
||||
(clear_symtab_users): No longer call varobj_invalidate.
|
||||
* varobj.c: New includes objfiles.h and parser-defs.h.
|
||||
(varobj_invalidate): New parameter `objfile', comment it.
|
||||
New variable `var'. Invalidate any varobj related to `objfile'.
|
||||
Remove unconditional invalidation of local varobjs. Move global
|
||||
varobjs revalidation to ...
|
||||
(varobj_revalidate): ... a new function.
|
||||
* varobj.h (varobj_invalidate): Update the prototype.
|
||||
(varobj_revalidate): New prototype.
|
||||
|
||||
[ Cut the printcmd.c simplification/change. ]
|
||||
|
||||
Index: gdb-6.8.50.20090302/gdb/objfiles.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/objfiles.c 2009-05-10 21:36:30.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/objfiles.c 2009-05-10 21:36:42.000000000 +0200
|
||||
@@ -50,6 +50,7 @@
|
||||
#include "addrmap.h"
|
||||
#include "arch-utils.h"
|
||||
#include "exec.h"
|
||||
+#include "varobj.h"
|
||||
|
||||
/* Prototypes for local functions */
|
||||
|
||||
@@ -409,6 +410,7 @@ free_objfile (struct objfile *objfile)
|
||||
/* Remove any references to this objfile in the global value
|
||||
lists. */
|
||||
preserve_values (objfile);
|
||||
+ varobj_invalidate (objfile);
|
||||
|
||||
/* First do any symbol file specific actions required when we are
|
||||
finished with a particular symbol file. Note that if the objfile
|
||||
Index: gdb-6.8.50.20090302/gdb/parse.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/parse.c 2009-05-10 21:36:29.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/parse.c 2009-05-10 21:36:42.000000000 +0200
|
||||
@@ -1373,6 +1373,45 @@ parser_fprintf (FILE *x, const char *y,
|
||||
va_end (args);
|
||||
}
|
||||
|
||||
+/* Return 1 if EXP uses OBJFILE (and will become dangling when OBJFILE
|
||||
+ is unloaded), otherwise return 0. */
|
||||
+
|
||||
+int
|
||||
+exp_uses_objfile (struct expression *exp, struct objfile *objfile)
|
||||
+{
|
||||
+ int endpos;
|
||||
+ const union exp_element *const elts = exp->elts;
|
||||
+
|
||||
+ for (endpos = exp->nelts; endpos > 0; )
|
||||
+ {
|
||||
+ int i, args, oplen = 0;
|
||||
+
|
||||
+ exp->language_defn->la_exp_desc->operator_length (exp, endpos,
|
||||
+ &oplen, &args);
|
||||
+ gdb_assert (oplen > 0);
|
||||
+
|
||||
+ i = endpos - oplen;
|
||||
+ if (elts[i].opcode == OP_VAR_VALUE)
|
||||
+ {
|
||||
+ const struct block *const block = elts[i + 1].block;
|
||||
+ const struct symbol *const symbol = elts[i + 2].symbol;
|
||||
+ const struct obj_section *const section =
|
||||
+ SYMBOL_OBJ_SECTION (symbol);
|
||||
+
|
||||
+ /* Check objfile where is placed the code touching the variable. */
|
||||
+ if (matching_objfiles (block_objfile (block), objfile))
|
||||
+ return 1;
|
||||
+
|
||||
+ /* Check objfile where the variable itself is placed. */
|
||||
+ if (section && section->objfile == objfile)
|
||||
+ return 1;
|
||||
+ }
|
||||
+ endpos -= oplen;
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
void
|
||||
_initialize_parse (void)
|
||||
{
|
||||
Index: gdb-6.8.50.20090302/gdb/parser-defs.h
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/parser-defs.h 2009-05-10 21:36:27.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/parser-defs.h 2009-05-10 21:36:42.000000000 +0200
|
||||
@@ -299,4 +299,6 @@ extern void print_subexp_standard (struc
|
||||
|
||||
extern void parser_fprintf (FILE *, const char *, ...) ATTR_FORMAT (printf, 2 ,3);
|
||||
|
||||
+extern int exp_uses_objfile (struct expression *exp, struct objfile *objfile);
|
||||
+
|
||||
#endif /* PARSER_DEFS_H */
|
||||
Index: gdb-6.8.50.20090302/gdb/symfile.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/symfile.c 2009-05-10 21:36:29.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/symfile.c 2009-05-10 21:37:51.000000000 +0200
|
||||
@@ -931,6 +931,8 @@ new_symfile_objfile (struct objfile *obj
|
||||
|
||||
/* We're done reading the symbol file; finish off complaints. */
|
||||
clear_complaints (&symfile_complaints, 0, verbo);
|
||||
+
|
||||
+ varobj_revalidate ();
|
||||
}
|
||||
|
||||
/* A helper function which returns true if OBJFILE has any debug
|
||||
@@ -3261,6 +3263,7 @@ reread_symbols (void)
|
||||
/* Remove any references to this objfile in the global
|
||||
value lists. */
|
||||
preserve_values (objfile);
|
||||
+ varobj_invalidate (objfile);
|
||||
|
||||
/* Nuke all the state that we will re-read. Much of the following
|
||||
code which sets things to NULL really is necessary to tell
|
||||
@@ -3359,6 +3362,7 @@ reread_symbols (void)
|
||||
frameless. */
|
||||
|
||||
reinit_frame_cache ();
|
||||
+ varobj_revalidate ();
|
||||
|
||||
/* Discard cleanups as symbol reading was successful. */
|
||||
discard_cleanups (old_cleanups);
|
||||
@@ -3739,10 +3743,6 @@ clear_symtab_users (void)
|
||||
between expressions and which ought to be reset each time. */
|
||||
expression_context_block = NULL;
|
||||
innermost_block = NULL;
|
||||
-
|
||||
- /* Varobj may refer to old symbols, perform a cleanup. */
|
||||
- varobj_invalidate ();
|
||||
-
|
||||
}
|
||||
|
||||
static void
|
||||
Index: gdb-6.8.50.20090302/gdb/varobj.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/varobj.c 2009-05-10 21:36:27.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/varobj.c 2009-05-10 21:40:55.000000000 +0200
|
||||
@@ -26,6 +26,8 @@
|
||||
#include "gdbcmd.h"
|
||||
#include "block.h"
|
||||
#include "valprint.h"
|
||||
+#include "objfiles.h"
|
||||
+#include "parser-defs.h"
|
||||
|
||||
#include "gdb_assert.h"
|
||||
#include "gdb_string.h"
|
||||
@@ -3272,48 +3274,117 @@ When non-zero, varobj debugging is enabl
|
||||
&setlist, &showlist);
|
||||
}
|
||||
|
||||
-/* Invalidate the varobjs that are tied to locals and re-create the ones that
|
||||
- are defined on globals.
|
||||
+/* Invalidate the varobjs that are tied to the specified OBJFILE. Call this
|
||||
+ function before you start removing OBJFILE.
|
||||
+
|
||||
+ Call varobj_revalidate after the OBJFILEs updates get finished.
|
||||
+
|
||||
Invalidated varobjs will be always printed in_scope="invalid". */
|
||||
+
|
||||
void
|
||||
-varobj_invalidate (void)
|
||||
+varobj_invalidate (struct objfile *objfile)
|
||||
{
|
||||
struct varobj **all_rootvarobj;
|
||||
struct varobj **varp;
|
||||
|
||||
if (varobj_list (&all_rootvarobj) > 0)
|
||||
- {
|
||||
- varp = all_rootvarobj;
|
||||
- while (*varp != NULL)
|
||||
- {
|
||||
- /* Floating varobjs are reparsed on each stop, so we don't care if
|
||||
- the presently parsed expression refers to something that's gone. */
|
||||
- if ((*varp)->root->floating)
|
||||
- continue;
|
||||
-
|
||||
- /* global var must be re-evaluated. */
|
||||
- if ((*varp)->root->valid_block == NULL)
|
||||
- {
|
||||
- struct varobj *tmp_var;
|
||||
-
|
||||
- /* Try to create a varobj with same expression. If we succeed replace
|
||||
- the old varobj, otherwise invalidate it. */
|
||||
- tmp_var = varobj_create (NULL, (*varp)->name, (CORE_ADDR) 0, USE_CURRENT_FRAME);
|
||||
- if (tmp_var != NULL)
|
||||
- {
|
||||
- tmp_var->obj_name = xstrdup ((*varp)->obj_name);
|
||||
- varobj_delete (*varp, NULL, 0);
|
||||
- install_variable (tmp_var);
|
||||
- }
|
||||
- else
|
||||
- (*varp)->root->is_valid = 0;
|
||||
- }
|
||||
- else /* locals must be invalidated. */
|
||||
- (*varp)->root->is_valid = 0;
|
||||
+ {
|
||||
+ varp = all_rootvarobj;
|
||||
+ while (*varp != NULL)
|
||||
+ {
|
||||
+ struct varobj *var = *varp;
|
||||
|
||||
- varp++;
|
||||
- }
|
||||
- }
|
||||
+ /* Floating varobjs are reparsed on each stop, so we don't care if
|
||||
+ the presently parsed expression refers to something that's gone.
|
||||
+ */
|
||||
+ if (var->root->floating)
|
||||
+ continue;
|
||||
+
|
||||
+ if (var->root->is_valid
|
||||
+ && matching_objfiles (block_objfile (var->root->valid_block),
|
||||
+ objfile))
|
||||
+ var->root->is_valid = 0;
|
||||
+
|
||||
+ if (var->root->is_valid
|
||||
+ && exp_uses_objfile (var->root->exp, objfile))
|
||||
+ {
|
||||
+ var->root->is_valid = 0;
|
||||
+
|
||||
+ /* No one touches EXP for !IS_VALID varobj. */
|
||||
+ xfree (var->root->exp);
|
||||
+ var->root->exp = NULL;
|
||||
+ }
|
||||
+
|
||||
+ if (var->type && TYPE_OBJFILE (var->type) == objfile)
|
||||
+ {
|
||||
+ if (!var->root->valid_block)
|
||||
+ var->root->is_valid = 0;
|
||||
+ else
|
||||
+ gdb_assert (!var->root->is_valid);
|
||||
+
|
||||
+ var->type = NULL;
|
||||
+ }
|
||||
+
|
||||
+ if (var->value
|
||||
+ && TYPE_OBJFILE (value_type (var->value)) == objfile)
|
||||
+ {
|
||||
+ if (!var->root->valid_block)
|
||||
+ var->root->is_valid = 0;
|
||||
+ else
|
||||
+ gdb_assert (!var->root->is_valid);
|
||||
+
|
||||
+ value_free (var->value);
|
||||
+ var->value = NULL;
|
||||
+ }
|
||||
+
|
||||
+ varp++;
|
||||
+ }
|
||||
+ }
|
||||
+ xfree (all_rootvarobj);
|
||||
+}
|
||||
+
|
||||
+/* Recreate any global varobjs possibly previously invalidated. If the
|
||||
+ expressions are no longer evaluatable set/keep the varobj invalid. */
|
||||
+
|
||||
+void
|
||||
+varobj_revalidate (void)
|
||||
+{
|
||||
+ struct varobj **all_rootvarobj;
|
||||
+ struct varobj **varp;
|
||||
+
|
||||
+ if (varobj_list (&all_rootvarobj) > 0)
|
||||
+ {
|
||||
+ varp = all_rootvarobj;
|
||||
+ while (*varp != NULL)
|
||||
+ {
|
||||
+ struct varobj *var = *varp;
|
||||
+
|
||||
+ /* Floating varobjs are reparsed on each stop, so we don't care if
|
||||
+ the presently parsed expression refers to something that's gone.
|
||||
+ */
|
||||
+ if (var->root->floating)
|
||||
+ continue;
|
||||
+
|
||||
+ /* global var must be re-evaluated. */
|
||||
+ if (var->root->valid_block == NULL)
|
||||
+ {
|
||||
+ struct varobj *tmp_var;
|
||||
+
|
||||
+ /* Try to create a varobj with same expression. If we succeed
|
||||
+ replace the old varobj, otherwise invalidate it. */
|
||||
+ tmp_var = varobj_create (NULL, var->name, 0, USE_CURRENT_FRAME);
|
||||
+ if (tmp_var != NULL)
|
||||
+ {
|
||||
+ tmp_var->obj_name = xstrdup (var->obj_name);
|
||||
+ varobj_delete (var, NULL, 0);
|
||||
+ install_variable (tmp_var);
|
||||
+ }
|
||||
+ else
|
||||
+ var->root->is_valid = 0;
|
||||
+ }
|
||||
+
|
||||
+ varp++;
|
||||
+ }
|
||||
+ }
|
||||
xfree (all_rootvarobj);
|
||||
- return;
|
||||
}
|
||||
Index: gdb-6.8.50.20090302/gdb/varobj.h
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090302.orig/gdb/varobj.h 2009-05-10 21:36:27.000000000 +0200
|
||||
+++ gdb-6.8.50.20090302/gdb/varobj.h 2009-05-10 21:36:42.000000000 +0200
|
||||
@@ -148,7 +148,9 @@ extern int varobj_list (struct varobj **
|
||||
extern VEC(varobj_update_result) *varobj_update (struct varobj **varp,
|
||||
int explicit);
|
||||
|
||||
-extern void varobj_invalidate (void);
|
||||
+extern void varobj_invalidate (struct objfile *objfile);
|
||||
+
|
||||
+extern void varobj_revalidate (void);
|
||||
|
||||
extern int varobj_editable_p (struct varobj *var);
|
||||
|
86
gdb-varobj-revalidate-prep.patch
Normal file
86
gdb-varobj-revalidate-prep.patch
Normal file
@ -0,0 +1,86 @@
|
||||
Re: [patch] Make a function for block->objfile lookups
|
||||
http://sourceware.org/ml/gdb-patches/2009-04/msg00609.html
|
||||
|
||||
gdb/
|
||||
2009-04-22 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
* block.c (block_objfile): New function.
|
||||
* block.h (block_objfile): New prototype.
|
||||
* objfiles.c (matching_objfiles): New function.
|
||||
* objfiles.h (matching_objfiles): New prototype.
|
||||
* printcmd.c: Remove include solib.h.
|
||||
(display_uses_solib_p): Rename to ...
|
||||
(display_uses_objfile): ... a new function name. Change the SOLIB
|
||||
parameter to OBJFILE parameter. Use now a matching_objfiles call.
|
||||
(clear_dangling_display_expressions): Update the caller.
|
||||
|
||||
[ Cut the printcmd.c simplification/change. ]
|
||||
|
||||
--- ./gdb/block.c 3 Jan 2009 05:57:50 -0000 1.18
|
||||
+++ ./gdb/block.c 22 Apr 2009 19:51:40 -0000
|
||||
@@ -309,3 +309,21 @@ allocate_block (struct obstack *obstack)
|
||||
|
||||
return bl;
|
||||
}
|
||||
+
|
||||
+/* Return OBJFILE in which BLOCK is located or NULL if we cannot find it for
|
||||
+ whatever reason. */
|
||||
+
|
||||
+struct objfile *
|
||||
+block_objfile (const struct block *block)
|
||||
+{
|
||||
+ struct symbol *func;
|
||||
+
|
||||
+ if (block == NULL)
|
||||
+ return NULL;
|
||||
+
|
||||
+ func = block_linkage_function (block);
|
||||
+ if (func == NULL)
|
||||
+ return NULL;
|
||||
+
|
||||
+ return SYMBOL_SYMTAB (func)->objfile;
|
||||
+}
|
||||
--- ./gdb/block.h 3 Jan 2009 05:57:50 -0000 1.19
|
||||
+++ ./gdb/block.h 22 Apr 2009 19:51:40 -0000
|
||||
@@ -164,4 +164,6 @@ extern const struct block *block_global_
|
||||
|
||||
extern struct block *allocate_block (struct obstack *obstack);
|
||||
|
||||
+extern struct objfile *block_objfile (const struct block *block);
|
||||
+
|
||||
#endif /* BLOCK_H */
|
||||
--- ./gdb/objfiles.c 11 Mar 2009 20:26:02 -0000 1.82
|
||||
+++ ./gdb/objfiles.c 22 Apr 2009 19:51:40 -0000
|
||||
@@ -891,3 +891,21 @@ objfile_data (struct objfile *objfile, c
|
||||
gdb_assert (data->index < objfile->num_data);
|
||||
return objfile->data[data->index];
|
||||
}
|
||||
+
|
||||
+/* Return non-zero if A and B point to the same OBJFILE, ignoring any binary
|
||||
+ vs. debuginfo variants of the pointers. If either A or B is NULL return
|
||||
+ zero as not a match. */
|
||||
+
|
||||
+int
|
||||
+matching_objfiles (struct objfile *a, struct objfile *b)
|
||||
+{
|
||||
+ if (a == NULL || b == NULL)
|
||||
+ return 0;
|
||||
+
|
||||
+ if (a->separate_debug_objfile_backlink)
|
||||
+ a = a->separate_debug_objfile_backlink;
|
||||
+ if (b->separate_debug_objfile_backlink)
|
||||
+ b = b->separate_debug_objfile_backlink;
|
||||
+
|
||||
+ return a == b;
|
||||
+}
|
||||
--- ./gdb/objfiles.h 15 Jan 2009 16:35:22 -0000 1.59
|
||||
+++ ./gdb/objfiles.h 22 Apr 2009 19:51:40 -0000
|
||||
@@ -497,6 +497,8 @@ extern struct obj_section *find_pc_secti
|
||||
|
||||
extern int in_plt_section (CORE_ADDR, char *);
|
||||
|
||||
+extern int matching_objfiles (struct objfile *a, struct objfile *b);
|
||||
+
|
||||
/* Keep a registry of per-objfile data-pointers required by other GDB
|
||||
modules. */
|
||||
|
38
gdb.spec
38
gdb.spec
@ -1,5 +1,6 @@
|
||||
# rpmbuild parameters:
|
||||
# --with testsuite: Run the testsuite (biarch if possible). Default is without.
|
||||
# --with parallel: Run the testsuite in maximum parallel mode.
|
||||
# --with debug: Build without optimizations and without splitting the debuginfo.
|
||||
# --with upstream: No Fedora specific patches get applied.
|
||||
# --without python: No python support.
|
||||
@ -14,7 +15,7 @@ Version: 6.8.50.20090302
|
||||
|
||||
# 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: 27%{?_with_upstream:.upstream}%{?dist}
|
||||
Release: 28%{?_with_upstream:.upstream}%{?dist}
|
||||
|
||||
License: GPLv3+
|
||||
Group: Development/Debuggers
|
||||
@ -382,6 +383,10 @@ Patch357: gdb-c_get_string-xfree.patch
|
||||
# Fix crash in the charset support.
|
||||
Patch359: gdb-charset-crash.patch
|
||||
|
||||
# Fix crashes due to (missing) varobj revalidation, for VLA (for BZ 377541).
|
||||
Patch369: gdb-varobj-revalidate-prep.patch
|
||||
Patch370: gdb-varobj-revalidate-core.patch
|
||||
|
||||
BuildRequires: ncurses-devel texinfo gettext flex bison expat-devel
|
||||
Requires: readline
|
||||
BuildRequires: readline-devel
|
||||
@ -580,6 +585,8 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc-exp.c gdb/p-exp.c
|
||||
%patch357 -p1
|
||||
%patch359 -p1
|
||||
%patch360 -p1
|
||||
%patch369 -p1
|
||||
%patch370 -p1
|
||||
%patch124 -p1
|
||||
|
||||
find -name "*.orig" | xargs rm -f
|
||||
@ -741,10 +748,20 @@ gcc -o ./orphanripper %{SOURCE2} -Wall -lutil
|
||||
CHECK="$(echo $CHECK|sed 's#check//unix/[^ ]*#& &/-fPIE/-pie#g')"
|
||||
%endif # 0%{!?_with_upstream:1}
|
||||
|
||||
%if 0%{?_with_parallel:1}
|
||||
for CURRENT in $CHECK
|
||||
do
|
||||
./orphanripper make -k $CURRENT &
|
||||
done
|
||||
echo >&2 "Waiting for parallel testsuite runs to finish..."
|
||||
wait
|
||||
echo >&2 "Parallel testsuite runs finished."
|
||||
%else # 0%{?_with_parallel:1}
|
||||
for CURRENT in $CHECK
|
||||
do
|
||||
./orphanripper make -k $CURRENT || :
|
||||
done
|
||||
%endif # 0%{?_with_parallel:1}
|
||||
)
|
||||
for t in sum log
|
||||
do
|
||||
@ -870,6 +887,25 @@ fi
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Wed Jun 10 2009 Jan Kratochvil <jan.kratochvil@redhat.com> - 6.8.50.20090302-28
|
||||
- Archer update to the snapshot: 000db8b7bfef8581ef099ccca8689cfddfea1be8
|
||||
- Archer backport: b8d3bea36b137effc929e02c4dadf73716cb330b
|
||||
- Ignore explicit die representing global scope '::' (gcc 4.1 bug).
|
||||
- Archer backport: c2d5c4a39b10994d86d8f2f90dfed769e8f216f3
|
||||
- Fix parsing DW_AT_const_value using DW_FORM_string
|
||||
- Archer backport: 8d9ab68fc0955c9de6320bec2821a21e3244600d
|
||||
+ db41e11ae0a3aec7120ad6ce86450d838af74dd6
|
||||
- Fix Fortran modules/namespaces parsing (but no change was visible in F11).
|
||||
- Archer backport: 000db8b7bfef8581ef099ccca8689cfddfea1be8
|
||||
- Fix "some Python error when displaying some C++ objects" (BZ 504356).
|
||||
- testsuite: Support new rpmbuild option: --with parallel
|
||||
- testsuite: gdb-orphanripper.c: Fix uninitialized `termios.c_line'.
|
||||
- Fix crashes due to (missing) varobj revalidation, for VLA (for BZ 377541).
|
||||
- Archer backport: 58dcda94ac5d6398f47382505e9d3d9d866d79bf
|
||||
+ f3de7bbd655337fe6705aeaafcc970deff3dd5d5
|
||||
- Implement Fortran modules namespaces (BZ 466118).
|
||||
- Fix crash in the charset support.
|
||||
|
||||
* Thu Apr 30 2009 Jan Kratochvil <jan.kratochvil@redhat.com> - 6.8.50.20090302-27
|
||||
- Fix race in the ia64 testcase `gdb-6.3-rh-testlibunwind-20041202.patch'.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user