- Archer update to the snapshot: 6cf16c0711e844094ab694b3d929f7bd30b49f61
- Fix crash on the inlined functions support.
- Fix crash from the PIE support, its varobj_refresh() was called only
before varobj_invalidate() which is sufficient.
- Fix BuildRequires for the `--with testsuite' runs.
- Use the newly introduced `--with-pythondir' option.
- Remove libstdcxx [python] pretty printers (as included in libstdc++ rpm
now).
This commit is contained in:
parent
0d29c1b6dd
commit
8dadf56185
4 changed files with 841 additions and 673 deletions
|
|
@ -26,10 +26,10 @@
|
|||
|
||||
Fix scan_dyntag() for binaries provided by valgrind (BZ 460319).
|
||||
|
||||
Index: gdb-6.8.50.20090226/gdb/amd64-tdep.c
|
||||
Index: gdb-6.8.50.20090302/gdb/amd64-tdep.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090226.orig/gdb/amd64-tdep.c 2009-02-28 07:31:48.000000000 +0100
|
||||
+++ gdb-6.8.50.20090226/gdb/amd64-tdep.c 2009-02-28 07:38:59.000000000 +0100
|
||||
--- 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
|
||||
@@ -36,6 +36,7 @@
|
||||
#include "regcache.h"
|
||||
#include "regset.h"
|
||||
|
|
@ -132,10 +132,10 @@ Index: gdb-6.8.50.20090226/gdb/amd64-tdep.c
|
|||
return pc;
|
||||
}
|
||||
|
||||
Index: gdb-6.8.50.20090226/gdb/auxv.c
|
||||
Index: gdb-6.8.50.20090302/gdb/auxv.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090226.orig/gdb/auxv.c 2009-02-27 00:04:32.000000000 +0100
|
||||
+++ gdb-6.8.50.20090226/gdb/auxv.c 2009-02-28 07:40:35.000000000 +0100
|
||||
--- 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
|
||||
@@ -81,7 +81,7 @@ procfs_xfer_auxv (struct target_ops *ops
|
||||
Return 1 if an entry was read into *TYPEP and *VALP. */
|
||||
static int
|
||||
|
|
@ -224,10 +224,10 @@ Index: gdb-6.8.50.20090226/gdb/auxv.c
|
|||
break;
|
||||
}
|
||||
|
||||
Index: gdb-6.8.50.20090226/gdb/auxv.h
|
||||
Index: gdb-6.8.50.20090302/gdb/auxv.h
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090226.orig/gdb/auxv.h 2009-01-03 06:57:50.000000000 +0100
|
||||
+++ gdb-6.8.50.20090226/gdb/auxv.h 2009-02-28 07:38:59.000000000 +0100
|
||||
--- 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
|
||||
@@ -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,
|
||||
|
|
@ -245,10 +245,10 @@ Index: gdb-6.8.50.20090226/gdb/auxv.h
|
|||
|
||||
/* Print the contents of the target's AUXV on the specified file. */
|
||||
extern int fprint_target_auxv (struct ui_file *file, struct target_ops *ops);
|
||||
Index: gdb-6.8.50.20090226/gdb/breakpoint.c
|
||||
Index: gdb-6.8.50.20090302/gdb/breakpoint.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090226.orig/gdb/breakpoint.c 2009-02-28 07:38:47.000000000 +0100
|
||||
+++ gdb-6.8.50.20090226/gdb/breakpoint.c 2009-02-28 07:38:59.000000000 +0100
|
||||
--- 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
|
||||
@@ -3920,7 +3920,8 @@ describe_other_breakpoints (CORE_ADDR pc
|
||||
printf_filtered (" (thread %d)", b->thread);
|
||||
printf_filtered ("%s%s ",
|
||||
|
|
@ -321,10 +321,10 @@ Index: gdb-6.8.50.20090226/gdb/breakpoint.c
|
|||
static void
|
||||
create_fork_vfork_event_catchpoint (int tempflag, char *cond_string,
|
||||
struct breakpoint_ops *ops)
|
||||
Index: gdb-6.8.50.20090226/gdb/breakpoint.h
|
||||
Index: gdb-6.8.50.20090302/gdb/breakpoint.h
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090226.orig/gdb/breakpoint.h 2009-02-27 00:04:32.000000000 +0100
|
||||
+++ gdb-6.8.50.20090226/gdb/breakpoint.h 2009-02-28 07:38:59.000000000 +0100
|
||||
--- 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
|
||||
@@ -127,6 +127,7 @@ enum enable_state
|
||||
automatically enabled and reset when the call
|
||||
"lands" (either completes, or stops at another
|
||||
|
|
@ -344,11 +344,11 @@ Index: gdb-6.8.50.20090226/gdb/breakpoint.h
|
|||
/* This function returns TRUE if ep is a catchpoint. */
|
||||
extern int ep_is_catchpoint (struct breakpoint *);
|
||||
|
||||
Index: gdb-6.8.50.20090226/gdb/dwarf2read.c
|
||||
Index: gdb-6.8.50.20090302/gdb/dwarf2read.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090226.orig/gdb/dwarf2read.c 2009-02-28 07:38:48.000000000 +0100
|
||||
+++ gdb-6.8.50.20090226/gdb/dwarf2read.c 2009-02-28 07:38:59.000000000 +0100
|
||||
@@ -1421,7 +1421,7 @@ dwarf2_build_psymtabs (struct objfile *o
|
||||
--- 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
|
||||
else
|
||||
dwarf2_per_objfile->loc_buffer = NULL;
|
||||
|
||||
|
|
@ -357,10 +357,10 @@ Index: gdb-6.8.50.20090226/gdb/dwarf2read.c
|
|||
|| (objfile->global_psymbols.size == 0
|
||||
&& objfile->static_psymbols.size == 0))
|
||||
{
|
||||
Index: gdb-6.8.50.20090226/gdb/elfread.c
|
||||
Index: gdb-6.8.50.20090302/gdb/elfread.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090226.orig/gdb/elfread.c 2009-02-27 00:04:32.000000000 +0100
|
||||
+++ gdb-6.8.50.20090226/gdb/elfread.c 2009-02-28 07:38:59.000000000 +0100
|
||||
--- 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
|
||||
@@ -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
|
||||
|
|
@ -370,11 +370,11 @@ Index: gdb-6.8.50.20090226/gdb/elfread.c
|
|||
{
|
||||
init_psymbol_list (objfile, 0);
|
||||
mainline = 0;
|
||||
Index: gdb-6.8.50.20090226/gdb/infrun.c
|
||||
Index: gdb-6.8.50.20090302/gdb/infrun.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090226.orig/gdb/infrun.c 2009-02-28 07:37:54.000000000 +0100
|
||||
+++ gdb-6.8.50.20090226/gdb/infrun.c 2009-02-28 07:38:59.000000000 +0100
|
||||
@@ -3328,6 +3328,11 @@ infrun: BPSTAT_WHAT_SET_LONGJMP_RESUME (
|
||||
--- 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
|
||||
@@ -3354,6 +3354,11 @@ infrun: BPSTAT_WHAT_SET_LONGJMP_RESUME (
|
||||
#endif
|
||||
target_terminal_inferior ();
|
||||
|
||||
|
|
@ -386,10 +386,10 @@ Index: gdb-6.8.50.20090226/gdb/infrun.c
|
|||
/* If requested, stop when the dynamic linker notifies
|
||||
gdb of events. This allows the user to get control
|
||||
and place breakpoints in initializer routines for
|
||||
Index: gdb-6.8.50.20090226/gdb/objfiles.c
|
||||
Index: gdb-6.8.50.20090302/gdb/objfiles.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090226.orig/gdb/objfiles.c 2009-02-27 00:04:32.000000000 +0100
|
||||
+++ gdb-6.8.50.20090226/gdb/objfiles.c 2009-02-28 07:38:59.000000000 +0100
|
||||
--- 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"
|
||||
#include "exec.h"
|
||||
|
|
@ -431,10 +431,10 @@ Index: gdb-6.8.50.20090226/gdb/objfiles.c
|
|||
/* Before the symbol table code was redone to make it easier to
|
||||
selectively load and remove information particular to a specific
|
||||
linkage unit, gdb used to do these things whenever the monolithic
|
||||
Index: gdb-6.8.50.20090226/gdb/solib-svr4.c
|
||||
Index: gdb-6.8.50.20090302/gdb/solib-svr4.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090226.orig/gdb/solib-svr4.c 2009-02-28 07:31:58.000000000 +0100
|
||||
+++ gdb-6.8.50.20090226/gdb/solib-svr4.c 2009-02-28 07:38:59.000000000 +0100
|
||||
--- 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
|
||||
@@ -45,6 +45,7 @@
|
||||
#include "exec.h"
|
||||
#include "auxv.h"
|
||||
|
|
@ -1116,10 +1116,10 @@ Index: gdb-6.8.50.20090226/gdb/solib-svr4.c
|
|||
+ add_info ("linkmap", info_linkmap_command,
|
||||
+ "Display the inferior's linkmap.");
|
||||
}
|
||||
Index: gdb-6.8.50.20090226/gdb/solib.c
|
||||
Index: gdb-6.8.50.20090302/gdb/solib.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090226.orig/gdb/solib.c 2009-02-21 17:14:49.000000000 +0100
|
||||
+++ gdb-6.8.50.20090226/gdb/solib.c 2009-02-28 07:38:59.000000000 +0100
|
||||
--- 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
|
||||
@@ -81,6 +81,8 @@ set_solib_ops (struct gdbarch *gdbarch,
|
||||
|
||||
/* external data declarations */
|
||||
|
|
@ -1306,10 +1306,10 @@ Index: gdb-6.8.50.20090226/gdb/solib.c
|
|||
+ NULL, NULL,
|
||||
+ &setdebuglist, &showdebuglist);
|
||||
}
|
||||
Index: gdb-6.8.50.20090226/gdb/solist.h
|
||||
Index: gdb-6.8.50.20090302/gdb/solist.h
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090226.orig/gdb/solist.h 2009-02-04 09:42:11.000000000 +0100
|
||||
+++ gdb-6.8.50.20090226/gdb/solist.h 2009-02-28 07:38:59.000000000 +0100
|
||||
--- 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
|
||||
@@ -61,6 +61,8 @@ struct so_list
|
||||
bfd *abfd;
|
||||
char symbols_loaded; /* flag: symbols read in yet? */
|
||||
|
|
@ -1330,10 +1330,10 @@ Index: gdb-6.8.50.20090226/gdb/solist.h
|
|||
+extern int debug_solib;
|
||||
+
|
||||
#endif
|
||||
Index: gdb-6.8.50.20090226/gdb/symfile-mem.c
|
||||
Index: gdb-6.8.50.20090302/gdb/symfile-mem.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090226.orig/gdb/symfile-mem.c 2009-02-28 07:22:09.000000000 +0100
|
||||
+++ gdb-6.8.50.20090226/gdb/symfile-mem.c 2009-02-28 07:38:59.000000000 +0100
|
||||
--- 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
|
||||
@@ -116,7 +116,7 @@ symbol_file_add_from_memory (struct bfd
|
||||
}
|
||||
|
||||
|
|
@ -1343,10 +1343,10 @@ Index: gdb-6.8.50.20090226/gdb/symfile-mem.c
|
|||
|
||||
/* This might change our ideas about frames already looked at. */
|
||||
reinit_frame_cache ();
|
||||
Index: gdb-6.8.50.20090226/gdb/symfile.c
|
||||
Index: gdb-6.8.50.20090302/gdb/symfile.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090226.orig/gdb/symfile.c 2009-02-28 07:31:58.000000000 +0100
|
||||
+++ gdb-6.8.50.20090226/gdb/symfile.c 2009-02-28 07:39:59.000000000 +0100
|
||||
--- 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
|
||||
@@ -47,6 +47,7 @@
|
||||
#include "readline/readline.h"
|
||||
#include "gdb_assert.h"
|
||||
|
|
@ -1426,95 +1426,10 @@ Index: gdb-6.8.50.20090226/gdb/symfile.c
|
|||
/* If the mtime has changed between the time we set new_modtime
|
||||
and now, we *want* this to be out of date, so don't call stat
|
||||
again now. */
|
||||
@@ -3644,6 +3655,7 @@ clear_symtab_users (void)
|
||||
breakpoint_re_set ();
|
||||
set_default_breakpoint (0, 0, 0, 0);
|
||||
clear_pc_function_cache ();
|
||||
+ varobj_refresh ();
|
||||
observer_notify_new_objfile (NULL);
|
||||
|
||||
/* Clear globals which might have pointed into a removed objfile.
|
||||
Index: gdb-6.8.50.20090226/gdb/varobj.c
|
||||
Index: gdb-6.8.50.20090302/gdb/target.h
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090226.orig/gdb/varobj.c 2009-02-27 00:04:32.000000000 +0100
|
||||
+++ gdb-6.8.50.20090226/gdb/varobj.c 2009-02-28 07:41:30.000000000 +0100
|
||||
@@ -1505,6 +1505,61 @@ varobj_set_visualizer (struct varobj *va
|
||||
#endif
|
||||
}
|
||||
|
||||
+void
|
||||
+varobj_refresh (void)
|
||||
+{
|
||||
+ struct varobj *var;
|
||||
+ struct varobj_root *croot;
|
||||
+ int mycount = rootcount;
|
||||
+ char * name;
|
||||
+
|
||||
+ croot = rootlist;
|
||||
+ while ((croot != NULL) && (mycount > 0))
|
||||
+ {
|
||||
+ var = croot->rootvar;
|
||||
+
|
||||
+ /* Get rid of the memory for the old expression. This also
|
||||
+ leaves var->root->exp == NULL, which is ok for the parsing
|
||||
+ below. */
|
||||
+ free_current_contents (&var->root->exp);
|
||||
+
|
||||
+ value_free (var->value);
|
||||
+ var->type = NULL;
|
||||
+
|
||||
+ name = xstrdup (var->name);
|
||||
+
|
||||
+ /* Reparse the expression. Wrap the call to parse expression,
|
||||
+ so we can return a sensible error. */
|
||||
+ if (!gdb_parse_exp_1 (&name, var->root->valid_block, 0, &var->root->exp))
|
||||
+ {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ /* We definitively need to catch errors here.
|
||||
+ If evaluate_expression succeeds we got the value we wanted.
|
||||
+ But if it fails, we still go on with a call to evaluate_type() */
|
||||
+ if (gdb_evaluate_expression (var->root->exp, &var->value))
|
||||
+ {
|
||||
+ /* no error */
|
||||
+ release_value (var->value);
|
||||
+ if (value_lazy (var->value))
|
||||
+ gdb_value_fetch_lazy (var->value);
|
||||
+ }
|
||||
+ else
|
||||
+ var->value = evaluate_type (var->root->exp);
|
||||
+
|
||||
+ var->type = value_type (var->value);
|
||||
+
|
||||
+ mycount--;
|
||||
+ croot = croot->next;
|
||||
+ }
|
||||
+
|
||||
+ if (mycount || (croot != NULL))
|
||||
+ warning
|
||||
+ ("varobj_refresh: assertion failed - wrong tally of root vars (%d:%d)",
|
||||
+ rootcount, mycount);
|
||||
+}
|
||||
+
|
||||
/* Update the values for a variable and its children. This is a
|
||||
two-pronged attack. First, re-parse the value for the root's
|
||||
expression to see if it's changed. Then go all the way
|
||||
Index: gdb-6.8.50.20090226/gdb/varobj.h
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090226.orig/gdb/varobj.h 2009-02-27 00:04:32.000000000 +0100
|
||||
+++ gdb-6.8.50.20090226/gdb/varobj.h 2009-02-28 07:39:19.000000000 +0100
|
||||
@@ -163,4 +163,6 @@ varobj_clear_type_visualizers ();
|
||||
extern void
|
||||
varobj_set_visualizer (struct varobj *var, const char *visualizer);
|
||||
|
||||
+extern void varobj_refresh(void);
|
||||
+
|
||||
#endif /* VAROBJ_H */
|
||||
Index: gdb-6.8.50.20090226/gdb/target.h
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090226.orig/gdb/target.h 2009-02-28 07:32:32.000000000 +0100
|
||||
+++ gdb-6.8.50.20090226/gdb/target.h 2009-02-28 07:38:59.000000000 +0100
|
||||
--- 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
|
||||
@@ -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. */
|
||||
|
|
|
|||
Loading…
Reference in a new issue