commit gdb for openSUSE:Factory
Hello community, here is the log from the commit of package gdb for openSUSE:Factory checked in at Thu May 28 03:09:53 CEST 2009. -------- --- gdb/gdb.changes 2009-05-18 10:58:12.000000000 +0200 +++ gdb/gdb.changes 2009-05-27 18:11:15.000000000 +0200 @@ -1,0 +2,10 @@ +Wed May 27 18:07:26 CEST 2009 - rguenther@suse.de + +- Merge FC11 update 23. + - Fix crashes due to (missing) varobj revalidation, for VLA (for brc#377541). + - Archer update to the snapshot: e2812eadef2c15baeccd003e11fdf3fbc0b90dc2 + - Archer backport: 58dcda94ac5d6398f47382505e9d3d9d866d79bf + + f3de7bbd655337fe6705aeaafcc970deff3dd5d5 + - Implement Fortran modules namespaces (brc#466118). + +------------------------------------------------------------------- @@ -4,0 +15,4 @@ +- Verified + * Fix printing of 'inf'. [bnc#466266] + * Stepping through templates. [bnc#414230] + * gcore script. [fate#303462] calling whatdependson for head-i586 New: ---- gdb-varobj-revalidate-core.patch gdb-varobj-revalidate-prep.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gdb.spec ++++++ --- /var/tmp/diff_new_pack.KzW852/_old 2009-05-28 03:07:54.000000000 +0200 +++ /var/tmp/diff_new_pack.KzW852/_new 2009-05-28 03:07:54.000000000 +0200 @@ -23,7 +23,7 @@ # NOTE: the FSF gdb versions are numbered N.M for official releases, like 6.3 # and, since January 2005, X.Y.Z.date for daily snapshots, like 6.3.50.20050112 # (daily snapshot from mailine), or 6.3.0.20040112 (head of the release branch). Version: 6.8.50.20090302 -Release: 4 +Release: 5 # 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. License: GNU Free Documentation License, Version 1.2 (GFDL 1.2); GPL v2 or later; GPL v3 or later @@ -276,6 +276,9 @@ 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 # Fix readline 5.1 warnings Patch1000: readline-5.1-random.patch Patch1001: gdb-readline6.patch @@ -499,6 +502,8 @@ %patch352 -p1 %patch357 -p1 %patch359 -p1 +%patch369 -p1 +%patch370 -p1 %patch124 -p1 %patch1000 %if %{suse_version} > 1110 @@ -757,8 +762,19 @@ %endif %changelog +* Wed May 27 2009 rguenther@suse.de +- Merge FC11 update 23. + - Fix crashes due to (missing) varobj revalidation, for VLA (for brc#377541). + - Archer update to the snapshot: e2812eadef2c15baeccd003e11fdf3fbc0b90dc2 + - Archer backport: 58dcda94ac5d6398f47382505e9d3d9d866d79bf + + f3de7bbd655337fe6705aeaafcc970deff3dd5d5 + - Implement Fortran modules namespaces (brc#466118). * Mon May 18 2009 rguenther@suse.de - Add patch to fix handling of string DW_AT_const_values. [bnc#329420] +- Verified + * Fix printing of 'inf'. [bnc#466266] + * Stepping through templates. [bnc#414230] + * gcore script. [fate#303462] * Thu May 14 2009 rguenther@suse.de - Change reported version to mention SUSE instead of Fedora. - Fix handling of bogus global namespace DIEs from GCC 4.1. [bnc#329420] ++++++ gdb-6.3-pie-20050110.patch ++++++ --- /var/tmp/diff_new_pack.KzW852/_old 2009-05-28 03:07:54.000000000 +0200 +++ /var/tmp/diff_new_pack.KzW852/_new 2009-05-28 03:07:54.000000000 +0200 @@ -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/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 @@ { #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 @@ 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.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 @@ 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 @@ ? " (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 @@ 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/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/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 @@ 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 @@ 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 @@ /* 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 @@ } /* 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 @@ 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.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/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 @@ #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 @@ 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 @@ /* 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 @@ && 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 @@ 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 @@ 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. */ ++++++ gdb-6.3-readnever-20050907.patch ++++++ --- /var/tmp/diff_new_pack.KzW852/_old 2009-05-28 03:07:54.000000000 +0200 +++ /var/tmp/diff_new_pack.KzW852/_new 2009-05-28 03:07:54.000000000 +0200 @@ -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 @@ @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 @@ "), 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 @@ /* 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 @@ } /* 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. */ ++++++ gdb-6.8-fortran-tag-constant.patch ++++++ --- /var/tmp/diff_new_pack.KzW852/_old 2009-05-28 03:07:56.000000000 +0200 +++ /var/tmp/diff_new_pack.KzW852/_new 2009-05-28 03:07:56.000000000 +0200 @@ -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 @@ 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 @@ 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 @@ { /* 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 @@ { /* 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 @@ || 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 @@ || 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; ++++++ gdb-6.8-inlining.patch ++++++ --- /var/tmp/diff_new_pack.KzW852/_old 2009-05-28 03:07:56.000000000 +0200 +++ /var/tmp/diff_new_pack.KzW852/_new 2009-05-28 03:07:56.000000000 +0200 @@ -7,8 +7,8 @@ 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 @@ * 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 @@ 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 @@ 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/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 @@ 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/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 @@ 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/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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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/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.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.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 @@ /* 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/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 @@ 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 @@ 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 @@ 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/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.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 @@ +#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/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 @@ /* 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ /* 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 @@ 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 @@ 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 @@ 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/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.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.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.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-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.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-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.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-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/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 @@ 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 @@ 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/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@ ++++++ gdb-archer.patch ++++++ ++++ 2227 lines (skipped) ++++ between gdb/gdb-archer.patch ++++ and gdb/gdb-archer.patch ++++++ gdb-varobj-revalidate-core.patch ++++++ 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); ++++++ gdb-varobj-revalidate-prep.patch ++++++ 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. */ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@Hilbert.suse.de