- 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:
Jan Kratochvil 2009-03-07 00:32:30 +00:00
commit 8dadf56185
4 changed files with 841 additions and 673 deletions

View file

@ -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. */