- archer-jankratochvil-fedora13 commit:

59c35a31f0981a0f0b884b32c91ae6325b2126cd
This commit is contained in:
Jan Kratochvil 2010-03-06 23:40:14 +00:00
parent 991247c843
commit 03de7209a3
11 changed files with 3136 additions and 1196 deletions

View File

@ -1,2 +1,2 @@
gdb-7.0.50.20100203.tar.bz2
gdb-7.0.90.20100306.tar.bz2
libstdc++-v3-python-r155978.tar.bz2

View File

@ -11,11 +11,11 @@
* gdb.texinfo (File Options): Document --readnever.
Index: gdb-7.0.50.20100121/gdb/doc/gdb.texinfo
Index: gdb-7.0.90.20100306/gdb/doc/gdb.texinfo
===================================================================
--- gdb-7.0.50.20100121.orig/gdb/doc/gdb.texinfo 2010-01-21 15:11:09.000000000 +0100
+++ gdb-7.0.50.20100121/gdb/doc/gdb.texinfo 2010-01-21 15:13:02.000000000 +0100
@@ -997,6 +997,12 @@ Read each symbol file's entire symbol ta
--- gdb-7.0.90.20100306.orig/gdb/doc/gdb.texinfo 2010-03-06 23:19:13.000000000 +0100
+++ gdb-7.0.90.20100306/gdb/doc/gdb.texinfo 2010-03-06 23:20:35.000000000 +0100
@@ -995,6 +995,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-7.0.50.20100121/gdb/doc/gdb.texinfo
@end table
@node Mode Options
Index: gdb-7.0.50.20100121/gdb/main.c
Index: gdb-7.0.90.20100306/gdb/main.c
===================================================================
--- gdb-7.0.50.20100121.orig/gdb/main.c 2010-01-21 15:11:18.000000000 +0100
+++ gdb-7.0.50.20100121/gdb/main.c 2010-01-21 15:13:02.000000000 +0100
--- gdb-7.0.90.20100306.orig/gdb/main.c 2010-03-06 23:20:23.000000000 +0100
+++ gdb-7.0.90.20100306/gdb/main.c 2010-03-06 23:20:35.000000000 +0100
@@ -382,6 +382,7 @@ captured_main (void *data)
{"xdb", no_argument, &xdb_commands, 1},
{"dbx", no_argument, &dbx_commands, 1},
@ -48,10 +48,10 @@ Index: gdb-7.0.50.20100121/gdb/main.c
"), stream);
fputs_unfiltered (_("\
--se=FILE Use FILE as symbol file and executable file.\n\
Index: gdb-7.0.50.20100121/gdb/symfile.c
Index: gdb-7.0.90.20100306/gdb/symfile.c
===================================================================
--- gdb-7.0.50.20100121.orig/gdb/symfile.c 2010-01-21 15:11:09.000000000 +0100
+++ gdb-7.0.50.20100121/gdb/symfile.c 2010-01-21 15:13:02.000000000 +0100
--- gdb-7.0.90.20100306.orig/gdb/symfile.c 2010-03-06 23:19:13.000000000 +0100
+++ gdb-7.0.90.20100306/gdb/symfile.c 2010-03-06 23:20:35.000000000 +0100
@@ -79,6 +79,7 @@ static void clear_symtab_users_cleanup (
/* Global variables owned by this file */
@ -60,19 +60,19 @@ Index: gdb-7.0.50.20100121/gdb/symfile.c
/* External variables and functions referenced. */
Index: gdb-7.0.50.20100121/gdb/dwarf2read.c
Index: gdb-7.0.90.20100306/gdb/dwarf2read.c
===================================================================
--- gdb-7.0.50.20100121.orig/gdb/dwarf2read.c 2010-01-21 15:11:09.000000000 +0100
+++ gdb-7.0.50.20100121/gdb/dwarf2read.c 2010-01-21 15:13:15.000000000 +0100
@@ -53,6 +53,7 @@
--- gdb-7.0.90.20100306.orig/gdb/dwarf2read.c 2010-03-06 23:19:13.000000000 +0100
+++ gdb-7.0.90.20100306/gdb/dwarf2read.c 2010-03-06 23:20:54.000000000 +0100
@@ -52,6 +52,7 @@
#include "f-lang.h"
#include "typeprint.h"
#include "jv-lang.h"
#include "vec.h"
+#include "top.h"
#include <fcntl.h>
#include "gdb_string.h"
@@ -1237,7 +1238,8 @@ dwarf2_has_info (struct objfile *objfile
@@ -1222,7 +1223,8 @@ dwarf2_has_info (struct objfile *objfile
bfd_map_over_sections (objfile->obfd, dwarf2_locate_sections, NULL);
}
@ -82,10 +82,10 @@ Index: gdb-7.0.50.20100121/gdb/dwarf2read.c
&& dwarf2_per_objfile->abbrev.asection != NULL);
}
Index: gdb-7.0.50.20100121/gdb/top.h
Index: gdb-7.0.90.20100306/gdb/top.h
===================================================================
--- gdb-7.0.50.20100121.orig/gdb/top.h 2010-01-01 08:31:42.000000000 +0100
+++ gdb-7.0.50.20100121/gdb/top.h 2010-01-21 15:13:02.000000000 +0100
--- gdb-7.0.90.20100306.orig/gdb/top.h 2010-01-01 08:31:42.000000000 +0100
+++ gdb-7.0.90.20100306/gdb/top.h 2010-03-06 23:20:35.000000000 +0100
@@ -63,6 +63,7 @@ extern void set_prompt (char *);
/* From random places. */

View File

@ -1,29 +1,29 @@
Index: gdb-6.8.50.20090909/gdb/testsuite/configure.ac
Index: gdb-7.0.90.20100306/gdb/testsuite/configure.ac
===================================================================
--- gdb-6.8.50.20090909.orig/gdb/testsuite/configure.ac 2009-07-31 17:38:16.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/testsuite/configure.ac 2009-09-09 19:06:01.000000000 +0200
--- gdb-7.0.90.20100306.orig/gdb/testsuite/configure.ac 2010-02-19 20:16:36.000000000 +0100
+++ gdb-7.0.90.20100306/gdb/testsuite/configure.ac 2010-03-06 23:19:56.000000000 +0100
@@ -144,6 +144,6 @@ AC_OUTPUT([Makefile \
gdb.cp/Makefile gdb.disasm/Makefile gdb.dwarf2/Makefile \
gdb.fortran/Makefile gdb.server/Makefile \
gdb.java/Makefile gdb.mi/Makefile gdb.modula2/Makefile \
gdb.fortran/Makefile gdb.server/Makefile gdb.java/Makefile \
gdb.mi/Makefile gdb.modula2/Makefile gdb.multi/Makefile \
- gdb.objc/Makefile gdb.opt/Makefile gdb.pascal/Makefile \
+ gdb.objc/Makefile gdb.opt/Makefile gdb.pascal/Makefile gdb.pie/Makefile \
gdb.python/Makefile gdb.reverse/Makefile \
gdb.threads/Makefile gdb.trace/Makefile gdb.xml/Makefile])
Index: gdb-6.8.50.20090909/gdb/testsuite/configure
Index: gdb-7.0.90.20100306/gdb/testsuite/configure
===================================================================
--- gdb-6.8.50.20090909.orig/gdb/testsuite/configure 2009-08-22 18:56:43.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/testsuite/configure 2009-09-09 19:06:27.000000000 +0200
--- gdb-7.0.90.20100306.orig/gdb/testsuite/configure 2010-02-19 20:16:36.000000000 +0100
+++ gdb-7.0.90.20100306/gdb/testsuite/configure 2010-03-06 23:20:12.000000000 +0100
@@ -3515,7 +3515,7 @@ done
-ac_config_files="$ac_config_files Makefile gdb.ada/Makefile gdb.arch/Makefile gdb.asm/Makefile gdb.base/Makefile gdb.cp/Makefile gdb.disasm/Makefile gdb.dwarf2/Makefile gdb.fortran/Makefile gdb.server/Makefile gdb.java/Makefile gdb.mi/Makefile gdb.modula2/Makefile gdb.objc/Makefile gdb.opt/Makefile gdb.pascal/Makefile gdb.python/Makefile gdb.reverse/Makefile gdb.threads/Makefile gdb.trace/Makefile gdb.xml/Makefile"
+ac_config_files="$ac_config_files Makefile gdb.ada/Makefile gdb.arch/Makefile gdb.asm/Makefile gdb.base/Makefile gdb.cp/Makefile gdb.disasm/Makefile gdb.dwarf2/Makefile gdb.fortran/Makefile gdb.server/Makefile gdb.java/Makefile gdb.mi/Makefile gdb.modula2/Makefile gdb.objc/Makefile gdb.opt/Makefile gdb.pascal/Makefile gdb.pie/Makefile gdb.python/Makefile gdb.reverse/Makefile gdb.threads/Makefile gdb.trace/Makefile gdb.xml/Makefile"
-ac_config_files="$ac_config_files Makefile gdb.ada/Makefile gdb.arch/Makefile gdb.asm/Makefile gdb.base/Makefile gdb.cp/Makefile gdb.disasm/Makefile gdb.dwarf2/Makefile gdb.fortran/Makefile gdb.server/Makefile gdb.java/Makefile gdb.mi/Makefile gdb.modula2/Makefile gdb.multi/Makefile gdb.objc/Makefile gdb.opt/Makefile gdb.pascal/Makefile gdb.python/Makefile gdb.reverse/Makefile gdb.threads/Makefile gdb.trace/Makefile gdb.xml/Makefile"
+ac_config_files="$ac_config_files Makefile gdb.ada/Makefile gdb.arch/Makefile gdb.asm/Makefile gdb.base/Makefile gdb.cp/Makefile gdb.disasm/Makefile gdb.dwarf2/Makefile gdb.fortran/Makefile gdb.server/Makefile gdb.java/Makefile gdb.mi/Makefile gdb.modula2/Makefile gdb.multi/Makefile gdb.objc/Makefile gdb.opt/Makefile gdb.pascal/Makefile gdb.pie/Makefile gdb.python/Makefile gdb.reverse/Makefile gdb.threads/Makefile gdb.trace/Makefile gdb.xml/Makefile"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
@@ -4231,6 +4231,7 @@ do
@@ -4232,6 +4232,7 @@ do
"gdb.objc/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.objc/Makefile" ;;
"gdb.opt/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.opt/Makefile" ;;
"gdb.pascal/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.pascal/Makefile" ;;
@ -31,10 +31,10 @@ Index: gdb-6.8.50.20090909/gdb/testsuite/configure
"gdb.python/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.python/Makefile" ;;
"gdb.reverse/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.reverse/Makefile" ;;
"gdb.threads/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.threads/Makefile" ;;
Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/attach.c
Index: gdb-7.0.90.20100306/gdb/testsuite/gdb.pie/attach.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/attach.c 2009-09-09 19:06:01.000000000 +0200
+++ gdb-7.0.90.20100306/gdb/testsuite/gdb.pie/attach.c 2010-03-06 23:19:31.000000000 +0100
@@ -0,0 +1,20 @@
+/* This program is intended to be started outside of gdb, and then
+ attached to by gdb. Thus, it simply spins in a loop. The loop
@ -56,10 +56,10 @@ Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/attach.c
+ }
+ return 0;
+}
Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/attach2.c
Index: gdb-7.0.90.20100306/gdb/testsuite/gdb.pie/attach2.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/attach2.c 2009-09-09 19:06:01.000000000 +0200
+++ gdb-7.0.90.20100306/gdb/testsuite/gdb.pie/attach2.c 2010-03-06 23:19:31.000000000 +0100
@@ -0,0 +1,24 @@
+/* This program is intended to be started outside of gdb, and then
+ attached to by gdb. Thus, it simply spins in a loop. The loop
@ -85,10 +85,10 @@ Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/attach2.c
+ }
+ return (0);
+}
Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/break.c
Index: gdb-7.0.90.20100306/gdb/testsuite/gdb.pie/break.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/break.c 2009-09-09 19:06:01.000000000 +0200
+++ gdb-7.0.90.20100306/gdb/testsuite/gdb.pie/break.c 2010-03-06 23:19:31.000000000 +0100
@@ -0,0 +1,146 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@ -236,10 +236,10 @@ Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/break.c
+ }
+ return 0;
+}
Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/break1.c
Index: gdb-7.0.90.20100306/gdb/testsuite/gdb.pie/break1.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/break1.c 2009-09-09 19:06:01.000000000 +0200
+++ gdb-7.0.90.20100306/gdb/testsuite/gdb.pie/break1.c 2010-03-06 23:19:31.000000000 +0100
@@ -0,0 +1,44 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@ -285,10 +285,10 @@ Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/break1.c
+void marker3 (a, b) char *a, *b; {} /* set breakpoint 18 here */
+void marker4 (d) long d; {} /* set breakpoint 13 here */
+#endif
Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/coremaker.c
Index: gdb-7.0.90.20100306/gdb/testsuite/gdb.pie/coremaker.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/coremaker.c 2009-09-09 19:06:01.000000000 +0200
+++ gdb-7.0.90.20100306/gdb/testsuite/gdb.pie/coremaker.c 2010-03-06 23:19:31.000000000 +0100
@@ -0,0 +1,142 @@
+/* Copyright 1992, 1993, 1994, 1995, 1996, 1999
+ Free Software Foundation, Inc.
@ -432,10 +432,10 @@ Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/coremaker.c
+ return 0;
+}
+
Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/attach.exp
Index: gdb-7.0.90.20100306/gdb/testsuite/gdb.pie/attach.exp
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/attach.exp 2009-09-09 19:06:01.000000000 +0200
+++ gdb-7.0.90.20100306/gdb/testsuite/gdb.pie/attach.exp 2010-03-06 23:19:31.000000000 +0100
@@ -0,0 +1,433 @@
+# Copyright 1997, 1999, 2002 Free Software Foundation, Inc.
+
@ -870,10 +870,10 @@ Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/attach.exp
+do_call_attach_tests
+
+return 0
Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/break.exp
Index: gdb-7.0.90.20100306/gdb/testsuite/gdb.pie/break.exp
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/break.exp 2009-09-09 19:06:01.000000000 +0200
+++ gdb-7.0.90.20100306/gdb/testsuite/gdb.pie/break.exp 2010-03-06 23:19:31.000000000 +0100
@@ -0,0 +1,977 @@
+# Copyright 1988, 1990, 1991, 1992, 1994, 1995, 1996, 1997, 1998, 1999,
+# 2000, 2002, 2003, 2004
@ -1852,10 +1852,10 @@ Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/break.exp
+ send_gdb "set args main\n"
+ gdb_expect -re ".*$gdb_prompt $" {}
+}
Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/corefile.exp
Index: gdb-7.0.90.20100306/gdb/testsuite/gdb.pie/corefile.exp
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/corefile.exp 2009-09-09 19:06:01.000000000 +0200
+++ gdb-7.0.90.20100306/gdb/testsuite/gdb.pie/corefile.exp 2010-03-06 23:19:31.000000000 +0100
@@ -0,0 +1,243 @@
+# Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
+# Free Software Foundation, Inc.
@ -2100,10 +2100,10 @@ Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/corefile.exp
+gdb_test "up" "#\[0-9\]* *\[0-9xa-fH'\]* in .* \\(.*\\).*" "up in corefile.exp (reinit)"
+
+gdb_test "core" "No core file now."
Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/Makefile.in
Index: gdb-7.0.90.20100306/gdb/testsuite/gdb.pie/Makefile.in
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/Makefile.in 2009-09-09 19:06:01.000000000 +0200
+++ gdb-7.0.90.20100306/gdb/testsuite/gdb.pie/Makefile.in 2010-03-06 23:19:31.000000000 +0100
@@ -0,0 +1,19 @@
+VPATH = @srcdir@
+srcdir = @srcdir@

View File

@ -1,11 +1,11 @@
Index: gdb-6.8.50.20090802/gdb/symfile.c
Index: gdb-7.0.90.20100306/gdb/symfile.c
===================================================================
--- gdb-6.8.50.20090802.orig/gdb/symfile.c 2009-08-03 12:29:58.000000000 +0200
+++ gdb-6.8.50.20090802/gdb/symfile.c 2009-08-03 12:40:58.000000000 +0200
@@ -4012,6 +4012,12 @@ symfile_dummy_outputs (bfd *abfd, asecti
bfd_byte *
symfile_relocate_debug_section (bfd *abfd, asection *sectp, bfd_byte *buf)
--- gdb-7.0.90.20100306.orig/gdb/symfile.c 2010-03-06 23:20:35.000000000 +0100
+++ gdb-7.0.90.20100306/gdb/symfile.c 2010-03-06 23:26:25.000000000 +0100
@@ -3642,6 +3642,12 @@ default_symfile_relocate (struct objfile
{
bfd *abfd = objfile->obfd;
+ /* Executable files have all the relocations already resolved.
+ * Handle files linked with --emit-relocs.
+ * http://sources.redhat.com/ml/gdb/2006-08/msg00137.html */

View File

@ -58,10 +58,10 @@ Http://sourceware.org/ml/gdb-patches/2010-01/msg00517.html
* exec.c (exec_file_attach): Print a more useful error message if the
user did "gdb core".
Index: gdb-7.0.50.20100128/gdb/exceptions.h
Index: gdb-7.0.90.20100306/gdb/exceptions.h
===================================================================
--- gdb-7.0.50.20100128.orig/gdb/exceptions.h 2010-01-18 07:25:22.000000000 +0100
+++ gdb-7.0.50.20100128/gdb/exceptions.h 2010-01-28 22:49:00.000000000 +0100
--- gdb-7.0.90.20100306.orig/gdb/exceptions.h 2010-01-18 07:25:22.000000000 +0100
+++ gdb-7.0.90.20100306/gdb/exceptions.h 2010-03-06 23:30:56.000000000 +0100
@@ -78,6 +78,9 @@ enum errors {
/* Feature is not supported in this copy of GDB. */
UNSUPPORTED_ERROR,
@ -72,11 +72,11 @@ Index: gdb-7.0.50.20100128/gdb/exceptions.h
/* Add more errors here. */
NR_ERRORS
};
Index: gdb-7.0.50.20100128/gdb/exec.c
Index: gdb-7.0.90.20100306/gdb/exec.c
===================================================================
--- gdb-7.0.50.20100128.orig/gdb/exec.c 2010-01-28 22:48:59.000000000 +0100
+++ gdb-7.0.50.20100128/gdb/exec.c 2010-01-28 22:58:45.000000000 +0100
@@ -34,6 +34,7 @@
--- gdb-7.0.90.20100306.orig/gdb/exec.c 2010-03-06 23:29:06.000000000 +0100
+++ gdb-7.0.90.20100306/gdb/exec.c 2010-03-06 23:31:40.000000000 +0100
@@ -35,6 +35,7 @@
#include "gdbthread.h"
#include "progspace.h"
#include "solib.h"
@ -84,7 +84,7 @@ Index: gdb-7.0.50.20100128/gdb/exec.c
#include <fcntl.h>
#include "readline/readline.h"
@@ -258,6 +259,17 @@ exec_file_attach (char *filename, int fr
@@ -264,6 +265,17 @@ exec_file_attach (char *filename, int fr
/* Make sure to close exec_bfd, or else "run" might try to use
it. */
exec_close ();
@ -95,17 +95,17 @@ Index: gdb-7.0.50.20100128/gdb/exec.c
+ "trad-core". */
+ if (bfd_check_format (exec_bfd, bfd_core))
+ throw_error (IS_CORE_ERROR,
+ _("\"%s\" is a core file.\n"
+ "Please specify an executable to debug."),
+ scratch_pathname);
+ _("\"%s\" is a core file.\n"
+ "Please specify an executable to debug."),
+ scratch_pathname);
+
error (_("\"%s\": not in executable format: %s"),
scratch_pathname, bfd_errmsg (bfd_get_error ()));
}
Index: gdb-7.0.50.20100128/gdb/main.c
scratch_pathname,
gdb_bfd_errmsg (bfd_get_error (), matching));
Index: gdb-7.0.90.20100306/gdb/main.c
===================================================================
--- gdb-7.0.50.20100128.orig/gdb/main.c 2010-01-28 22:48:59.000000000 +0100
+++ gdb-7.0.50.20100128/gdb/main.c 2010-01-28 22:49:00.000000000 +0100
--- gdb-7.0.90.20100306.orig/gdb/main.c 2010-03-06 23:20:35.000000000 +0100
+++ gdb-7.0.90.20100306/gdb/main.c 2010-03-06 23:30:56.000000000 +0100
@@ -241,6 +241,36 @@ captured_command_loop (void *data)
return 1;
}

View File

@ -1,8 +1,8 @@
Index: gdb-7.0.50.20100115/gdb/dwarf2read.c
Index: gdb-7.0.90.20100306/gdb/dwarf2read.c
===================================================================
--- gdb-7.0.50.20100115.orig/gdb/dwarf2read.c 2010-01-15 21:41:32.000000000 +0100
+++ gdb-7.0.50.20100115/gdb/dwarf2read.c 2010-01-15 21:42:19.000000000 +0100
@@ -5821,7 +5821,12 @@ read_common_block (struct die_info *die,
--- gdb-7.0.90.20100306.orig/gdb/dwarf2read.c 2010-03-06 23:27:30.000000000 +0100
+++ gdb-7.0.90.20100306/gdb/dwarf2read.c 2010-03-06 23:28:43.000000000 +0100
@@ -5910,7 +5910,12 @@ read_common_block (struct die_info *die,
{
struct attribute *attr;
struct symbol *sym;
@ -16,7 +16,7 @@ Index: gdb-7.0.50.20100115/gdb/dwarf2read.c
attr = dwarf2_attr (die, DW_AT_location, cu);
if (attr)
@@ -5830,6 +5835,7 @@ read_common_block (struct die_info *die,
@@ -5919,6 +5924,7 @@ read_common_block (struct die_info *die,
if (attr_form_is_block (attr))
{
base = decode_locdesc (DW_BLOCK (attr), cu);
@ -24,7 +24,7 @@ Index: gdb-7.0.50.20100115/gdb/dwarf2read.c
}
else if (attr_form_is_section_offset (attr))
{
@@ -5891,12 +5897,15 @@ read_common_block (struct die_info *die,
@@ -5980,12 +5986,15 @@ read_common_block (struct die_info *die,
else
dwarf2_complex_location_expr_complaint ();
@ -42,7 +42,7 @@ Index: gdb-7.0.50.20100115/gdb/dwarf2read.c
else
SET_FIELD_PHYSNAME (*field, SYMBOL_LINKAGE_NAME (sym));
FIELD_TYPE (*field) = SYMBOL_TYPE (sym);
@@ -5910,7 +5919,7 @@ read_common_block (struct die_info *die,
@@ -5999,7 +6008,7 @@ read_common_block (struct die_info *die,
sym = new_symbol (die, type, cu);
/* SYMBOL_VALUE_ADDRESS never gets used as all its fields are static. */
@ -51,11 +51,11 @@ Index: gdb-7.0.50.20100115/gdb/dwarf2read.c
set_die_type (die, type, cu);
}
Index: gdb-7.0.50.20100115/gdb/exec.c
Index: gdb-7.0.90.20100306/gdb/exec.c
===================================================================
--- gdb-7.0.50.20100115.orig/gdb/exec.c 2010-01-15 21:35:14.000000000 +0100
+++ gdb-7.0.50.20100115/gdb/exec.c 2010-01-15 21:47:19.000000000 +0100
@@ -35,6 +35,7 @@
--- gdb-7.0.90.20100306.orig/gdb/exec.c 2010-03-06 23:21:01.000000000 +0100
+++ gdb-7.0.90.20100306/gdb/exec.c 2010-03-06 23:29:06.000000000 +0100
@@ -34,6 +34,7 @@
#include "arch-utils.h"
#include "gdbthread.h"
#include "progspace.h"
@ -63,10 +63,10 @@ Index: gdb-7.0.50.20100115/gdb/exec.c
#include <fcntl.h>
#include "readline/readline.h"
@@ -225,6 +226,10 @@ exec_file_attach (char *filename, int fr
char *scratch_pathname;
@@ -220,6 +221,10 @@ exec_file_attach (char *filename, int fr
int scratch_chan;
struct target_section *sections = NULL, *sections_end = NULL;
char **matching;
+ struct target_section *p;
+ int addr_bit;
+ CORE_ADDR mask = CORE_ADDR_MAX;
@ -74,7 +74,7 @@ Index: gdb-7.0.50.20100115/gdb/exec.c
scratch_chan = openp (getenv ("PATH"), OPF_TRY_CWD_FIRST, filename,
write_files ? O_RDWR | O_BINARY : O_RDONLY | O_BINARY,
@@ -293,12 +298,23 @@ exec_file_attach (char *filename, int fr
@@ -289,12 +294,23 @@ exec_file_attach (char *filename, int fr
scratch_pathname, bfd_errmsg (bfd_get_error ()));
}
@ -100,11 +100,11 @@ Index: gdb-7.0.50.20100115/gdb/exec.c
/* Add the executable's sections to the current address spaces'
list of sections. This possibly pushes the exec_ops
target. */
Index: gdb-7.0.50.20100115/gdb/gdbtypes.h
Index: gdb-7.0.90.20100306/gdb/gdbtypes.h
===================================================================
--- gdb-7.0.50.20100115.orig/gdb/gdbtypes.h 2010-01-15 21:35:16.000000000 +0100
+++ gdb-7.0.50.20100115/gdb/gdbtypes.h 2010-01-15 21:44:24.000000000 +0100
@@ -406,6 +406,7 @@ enum type_instance_flag_value
--- gdb-7.0.90.20100306.orig/gdb/gdbtypes.h 2010-03-06 23:26:34.000000000 +0100
+++ gdb-7.0.90.20100306/gdb/gdbtypes.h 2010-03-06 23:28:43.000000000 +0100
@@ -412,6 +412,7 @@ enum type_instance_flag_value
enum field_loc_kind
{
FIELD_LOC_KIND_BITPOS, /* bitpos */
@ -112,7 +112,7 @@ Index: gdb-7.0.50.20100115/gdb/gdbtypes.h
FIELD_LOC_KIND_PHYSADDR, /* physaddr */
FIELD_LOC_KIND_PHYSNAME /* physname */
};
@@ -582,6 +583,7 @@ struct main_type
@@ -591,6 +592,7 @@ struct main_type
is the location (in the target) of the static field.
Otherwise, physname is the mangled label of the static field. */
@ -120,7 +120,7 @@ Index: gdb-7.0.50.20100115/gdb/gdbtypes.h
CORE_ADDR physaddr;
char *physname;
}
@@ -1100,6 +1102,7 @@ extern void allocate_gnat_aux_type (stru
@@ -1091,6 +1093,7 @@ extern void allocate_gnat_aux_type (stru
#define FIELD_LOC_KIND(thisfld) ((thisfld).loc_kind)
#define FIELD_BITPOS(thisfld) ((thisfld).loc.bitpos)
#define FIELD_STATIC_PHYSNAME(thisfld) ((thisfld).loc.physname)
@ -128,7 +128,7 @@ Index: gdb-7.0.50.20100115/gdb/gdbtypes.h
#define FIELD_STATIC_PHYSADDR(thisfld) ((thisfld).loc.physaddr)
#define SET_FIELD_BITPOS(thisfld, bitpos) \
(FIELD_LOC_KIND (thisfld) = FIELD_LOC_KIND_BITPOS, \
@@ -1107,6 +1110,7 @@ extern void allocate_gnat_aux_type (stru
@@ -1098,6 +1101,7 @@ extern void allocate_gnat_aux_type (stru
#define SET_FIELD_PHYSNAME(thisfld, name) \
(FIELD_LOC_KIND (thisfld) = FIELD_LOC_KIND_PHYSNAME, \
FIELD_STATIC_PHYSNAME (thisfld) = (name))
@ -136,7 +136,7 @@ Index: gdb-7.0.50.20100115/gdb/gdbtypes.h
#define SET_FIELD_PHYSADDR(thisfld, addr) \
(FIELD_LOC_KIND (thisfld) = FIELD_LOC_KIND_PHYSADDR, \
FIELD_STATIC_PHYSADDR (thisfld) = (addr))
@@ -1119,6 +1123,7 @@ extern void allocate_gnat_aux_type (stru
@@ -1110,6 +1114,7 @@ extern void allocate_gnat_aux_type (stru
#define TYPE_FIELD_LOC_KIND(thistype, n) FIELD_LOC_KIND (TYPE_FIELD (thistype, n))
#define TYPE_FIELD_BITPOS(thistype, n) FIELD_BITPOS (TYPE_FIELD (thistype, n))
#define TYPE_FIELD_STATIC_PHYSNAME(thistype, n) FIELD_STATIC_PHYSNAME (TYPE_FIELD (thistype, n))
@ -144,10 +144,10 @@ Index: gdb-7.0.50.20100115/gdb/gdbtypes.h
#define TYPE_FIELD_STATIC_PHYSADDR(thistype, n) FIELD_STATIC_PHYSADDR (TYPE_FIELD (thistype, n))
#define TYPE_FIELD_ARTIFICIAL(thistype, n) FIELD_ARTIFICIAL(TYPE_FIELD(thistype,n))
#define TYPE_FIELD_BITSIZE(thistype, n) FIELD_BITSIZE(TYPE_FIELD(thistype,n))
Index: gdb-7.0.50.20100115/gdb/jv-lang.c
Index: gdb-7.0.90.20100306/gdb/jv-lang.c
===================================================================
--- gdb-7.0.50.20100115.orig/gdb/jv-lang.c 2010-01-15 21:35:13.000000000 +0100
+++ gdb-7.0.50.20100115/gdb/jv-lang.c 2010-01-15 21:41:58.000000000 +0100
--- gdb-7.0.90.20100306.orig/gdb/jv-lang.c 2010-03-06 23:19:13.000000000 +0100
+++ gdb-7.0.90.20100306/gdb/jv-lang.c 2010-03-06 23:28:43.000000000 +0100
@@ -416,7 +416,8 @@ java_link_class_type (struct gdbarch *gd
fields = NULL;
@ -168,11 +168,11 @@ Index: gdb-7.0.50.20100115/gdb/jv-lang.c
else
TYPE_FIELD_BITPOS (type, i) = 8 * boffset;
if (accflags & 0x8000) /* FIELD_UNRESOLVED_FLAG */
Index: gdb-7.0.50.20100115/gdb/solib-svr4.c
Index: gdb-7.0.90.20100306/gdb/solib-svr4.c
===================================================================
--- gdb-7.0.50.20100115.orig/gdb/solib-svr4.c 2010-01-15 21:35:16.000000000 +0100
+++ gdb-7.0.50.20100115/gdb/solib-svr4.c 2010-01-15 21:44:55.000000000 +0100
@@ -1689,7 +1689,10 @@ svr4_exec_displacement (void)
--- gdb-7.0.90.20100306.orig/gdb/solib-svr4.c 2010-03-06 23:26:34.000000000 +0100
+++ gdb-7.0.90.20100306/gdb/solib-svr4.c 2010-03-06 23:28:43.000000000 +0100
@@ -1767,7 +1767,10 @@ svr4_exec_displacement (void)
if (target_auxv_search (&current_target, AT_ENTRY, &entry_point) == 1)
return entry_point - bfd_get_start_address (exec_bfd);
@ -184,7 +184,7 @@ Index: gdb-7.0.50.20100115/gdb/solib-svr4.c
}
/* Relocate the main executable. This function should be called upon
@@ -1700,7 +1703,7 @@ svr4_exec_displacement (void)
@@ -1778,7 +1781,7 @@ svr4_exec_displacement (void)
static void
svr4_relocate_main_executable (void)
{
@ -193,7 +193,7 @@ Index: gdb-7.0.50.20100115/gdb/solib-svr4.c
/* Even if DISPLACEMENT is 0 still try to relocate it as this is a new
difference of in-memory vs. in-file addresses and we could already
@@ -2054,6 +2057,7 @@ _initialize_svr4_solib (void)
@@ -2130,6 +2133,7 @@ _initialize_svr4_solib (void)
svr4_so_ops.free_so = svr4_free_so;
svr4_so_ops.clear_solib = svr4_clear_solib;
svr4_so_ops.solib_create_inferior_hook = svr4_solib_create_inferior_hook;
@ -201,11 +201,11 @@ Index: gdb-7.0.50.20100115/gdb/solib-svr4.c
svr4_so_ops.special_symbol_handling = svr4_special_symbol_handling;
svr4_so_ops.current_sos = svr4_current_sos;
svr4_so_ops.open_symbol_file_object = open_symbol_file_object;
Index: gdb-7.0.50.20100115/gdb/solib.c
Index: gdb-7.0.90.20100306/gdb/solib.c
===================================================================
--- gdb-7.0.50.20100115.orig/gdb/solib.c 2010-01-15 21:35:16.000000000 +0100
+++ gdb-7.0.50.20100115/gdb/solib.c 2010-01-15 21:41:58.000000000 +0100
@@ -1037,6 +1037,19 @@ solib_create_inferior_hook (int from_tty
--- gdb-7.0.90.20100306.orig/gdb/solib.c 2010-03-06 23:26:34.000000000 +0100
+++ gdb-7.0.90.20100306/gdb/solib.c 2010-03-06 23:28:43.000000000 +0100
@@ -1039,6 +1039,19 @@ solib_create_inferior_hook (int from_tty
ops->solib_create_inferior_hook (from_tty);
}
@ -225,10 +225,10 @@ Index: gdb-7.0.50.20100115/gdb/solib.c
/* GLOBAL FUNCTION
in_solib_dynsym_resolve_code -- check to see if an address is in
Index: gdb-7.0.50.20100115/gdb/solib.h
Index: gdb-7.0.90.20100306/gdb/solib.h
===================================================================
--- gdb-7.0.50.20100115.orig/gdb/solib.h 2010-01-08 23:52:04.000000000 +0100
+++ gdb-7.0.50.20100115/gdb/solib.h 2010-01-15 21:42:36.000000000 +0100
--- gdb-7.0.90.20100306.orig/gdb/solib.h 2010-01-08 23:52:04.000000000 +0100
+++ gdb-7.0.90.20100306/gdb/solib.h 2010-03-06 23:28:43.000000000 +0100
@@ -44,6 +44,8 @@ extern int solib_read_symbols (struct so
extern void solib_create_inferior_hook (int from_tty);
@ -238,10 +238,10 @@ Index: gdb-7.0.50.20100115/gdb/solib.h
/* If ADDR lies in a shared library, return its name. */
extern char *solib_name_from_address (struct program_space *, CORE_ADDR);
Index: gdb-7.0.50.20100115/gdb/solist.h
Index: gdb-7.0.90.20100306/gdb/solist.h
===================================================================
--- gdb-7.0.50.20100115.orig/gdb/solist.h 2010-01-08 23:52:04.000000000 +0100
+++ gdb-7.0.50.20100115/gdb/solist.h 2010-01-15 21:41:58.000000000 +0100
--- gdb-7.0.90.20100306.orig/gdb/solist.h 2010-03-06 23:19:13.000000000 +0100
+++ gdb-7.0.90.20100306/gdb/solist.h 2010-03-06 23:28:43.000000000 +0100
@@ -92,6 +92,9 @@ struct target_so_ops
/* Target dependent code to run after child process fork. */
void (*solib_create_inferior_hook) (int from_tty);
@ -252,11 +252,11 @@ Index: gdb-7.0.50.20100115/gdb/solist.h
/* Do additional symbol handling, lookup, etc. after symbols
for a shared object have been loaded. */
void (*special_symbol_handling) (void);
Index: gdb-7.0.50.20100115/gdb/symfile.c
Index: gdb-7.0.90.20100306/gdb/symfile.c
===================================================================
--- gdb-7.0.50.20100115.orig/gdb/symfile.c 2010-01-15 21:35:14.000000000 +0100
+++ gdb-7.0.50.20100115/gdb/symfile.c 2010-01-15 21:41:58.000000000 +0100
@@ -832,15 +832,36 @@ syms_from_objfile (struct objfile *objfi
--- gdb-7.0.90.20100306.orig/gdb/symfile.c 2010-03-06 23:26:25.000000000 +0100
+++ gdb-7.0.90.20100306/gdb/symfile.c 2010-03-06 23:28:43.000000000 +0100
@@ -827,15 +827,36 @@ syms_from_objfile (struct objfile *objfi
if an error occurs during symbol reading. */
old_chain = make_cleanup_free_objfile (objfile);
@ -300,10 +300,10 @@ Index: gdb-7.0.50.20100115/gdb/symfile.c
}
/* Now either addrs or offsets is non-zero. */
Index: gdb-7.0.50.20100115/gdb/value.c
Index: gdb-7.0.90.20100306/gdb/value.c
===================================================================
--- gdb-7.0.50.20100115.orig/gdb/value.c 2010-01-15 21:35:13.000000000 +0100
+++ gdb-7.0.50.20100115/gdb/value.c 2010-01-15 21:41:58.000000000 +0100
--- gdb-7.0.90.20100306.orig/gdb/value.c 2010-03-06 23:19:13.000000000 +0100
+++ gdb-7.0.90.20100306/gdb/value.c 2010-03-06 23:28:43.000000000 +0100
@@ -1897,7 +1897,8 @@ value_static_field (struct type *type, i
if (TYPE_FIELD_LOC_KIND (type, fieldno) == FIELD_LOC_KIND_PHYSADDR)
{

File diff suppressed because it is too large Load Diff

View File

@ -1,154 +0,0 @@
http://sourceware.org/ml/gdb-patches/2009-12/msg00364.html
Subject: [patch] related_breakpoint stale ref crash fix
Hi,
getting occasional random:
PASS: gdb.threads/local-watch-wrong-thread.exp: local watchpoint still triggers
PASS: gdb.threads/local-watch-wrong-thread.exp: let thread_function0 return
PASS: gdb.threads/local-watch-wrong-thread.exp: breakpoint on thread_function0's caller
-PASS: gdb.threads/local-watch-wrong-thread.exp: local watchpoint automatically deleted
+ERROR: Process no longer exists
+UNRESOLVED: gdb.threads/local-watch-wrong-thread.exp: local watchpoint automatically deleted
It is even reproducible on HEAD using "input" file below and:
valgrind ../gdb -nx <input
(gdb) (gdb) Breakpoint 6 at 0x400685: file ./gdb.threads/local-watch-wrong-thread.c, line 47.
(gdb) ==31759== Invalid write of size 4
==31759== at 0x601A11: bpstat_check_breakpoint_conditions (breakpoint.c:3482)
==31759== by 0x601C70: bpstat_stop_status (breakpoint.c:3596)
==31759== by 0x65D228: handle_inferior_event (infrun.c:3589)
==31759== by 0x65A563: wait_for_inferior (infrun.c:2281)
==31759== by 0x659AA0: proceed (infrun.c:1883)
==31759== by 0x65300B: continue_1 (infcmd.c:668)
==31759== by 0x653282: continue_command (infcmd.c:760)
==31759== by 0x5C51D8: do_cfunc (cli-decode.c:67)
==31759== by 0x5C824F: cmd_func (cli-decode.c:1738)
==31759== by 0x48335A: execute_command (top.c:450)
==31759== by 0x67273E: command_handler (event-top.c:511)
==31759== by 0x672E53: command_line_handler (event-top.c:736)
==31759== Address 0xbbdc950 is 240 bytes inside a block of size 336 free'd
==31759== at 0x4A04D72: free (vg_replace_malloc.c:325)
==31759== by 0x486E4B: xfree (utils.c:1286)
==31759== by 0x60BC35: delete_breakpoint (breakpoint.c:8708)
==31759== by 0x60BDAF: delete_command (breakpoint.c:8765)
==31759== by 0x5C51D8: do_cfunc (cli-decode.c:67)
==31759== by 0x5C824F: cmd_func (cli-decode.c:1738)
==31759== by 0x48335A: execute_command (top.c:450)
==31759== by 0x67273E: command_handler (event-top.c:511)
==31759== by 0x672E53: command_line_handler (event-top.c:736)
==31759== by 0x672FCF: gdb_readline2 (event-top.c:817)
==31759== by 0x6725F7: stdin_event_handler (event-top.c:433)
==31759== by 0x670CDE: handle_file_event (event-loop.c:812)
==31759==
Watchpoint 4 deleted because the program has left the block in
which its expression is valid.
There is already automatic deletion of RELATED_BREAKPOINT in
map_breakpoint_numbers but "delete breakpoints" (for all the breakpoints)
calls delete_breakpoint from delete_command directly without calling
map_breakpoint_numbers and it does not delete the associated
bp_watchpoint_scope.
I find the attached patch is right for delete_breakpoint itself as such
function should not leave stale references in the leftover data structures.
How well could be other code cleaned up with this patch in place I have not
targeted by this patch.
The existing code expects accessibility of freed memory and discusses the
current stale references problem:
void
delete_breakpoint (struct breakpoint *bpt)
[...]
/* Has this bp already been deleted? This can happen because multiple
lists can hold pointers to bp's. bpstat lists are especial culprits.
One example of this happening is a watchpoint's scope bp. When the
scope bp triggers, we notice that the watchpoint is out of scope, and
delete it. We also delete its scope bp. But the scope bp is marked
"auto-deleting", and is already on a bpstat. That bpstat is then
checked for auto-deleting bp's, which are deleted.
A real solution to this problem might involve reference counts in bp's,
and/or giving them pointers back to their referencing bpstat's, and
teaching delete_breakpoint to only free a bp's storage when no more
references were extent. A cheaper bandaid was chosen. */
if (bpt->type == bp_none)
return;
[...]
bpt->type = bp_none;
xfree (bpt);
}
While fixing this part may be difficult I find the attached patch easy enough
fixing the IMO currently most common crash due to it.
No regressions on {x86_64,x86_64-m32,i686}-fedora12-linux-gnu.
Thanks,
Jan
"input":
set height 0
set width 0
set confirm no
file ../testsuite/gdb.threads/local-watch-wrong-thread
set can-use-hw-watchpoints 1
break main
run
break local-watch-wrong-thread.c:36
continue
delete breakpoints
watch *myp
continue
delete breakpoints
echo MAKE watch\n
watch *myp if trigger != 0
echo MAKE break\n
break local-watch-wrong-thread.c:60
info break
continue
echo DELETE five\n
delete 5
set trigger=1
continue
set *myp=0
break local-watch-wrong-thread.c:47
continue
2009-12-23 Jan Kratochvil <jan.kratochvil@redhat.com>
* breakpoint.c (delete_breakpoint <bpt->related_breakpoint != NULL>):
New.
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -8649,6 +8649,16 @@ delete_breakpoint (struct breakpoint *bpt)
if (bpt->type == bp_none)
return;
+ /* At least avoid this stale reference until the reference counting of
+ breakpoints gets resolved. */
+ if (bpt->related_breakpoint != NULL)
+ {
+ gdb_assert (bpt->related_breakpoint->related_breakpoint == bpt);
+ bpt->related_breakpoint->disposition = disp_del_at_next_stop;
+ bpt->related_breakpoint->related_breakpoint = NULL;
+ bpt->related_breakpoint = NULL;
+ }
+
observer_notify_breakpoint_deleted (bpt->number);
if (breakpoint_chain == bpt)

View File

@ -1,112 +0,0 @@
http://sourceware.org/ml/gdb-patches/2010-02/msg00477.html
Subject: Re: [patch] Fix crash on stale addrinfo->sectindex
On Fri, 19 Feb 2010 04:01:05 +0100, Tom Tromey wrote:
> >>>>> "Jan" == Jan Kratochvil <jan.kratochvil@redhat.com> writes:
> I think you ought to move this comment as well.
> It appears to just be hanging at the end of a block after the patch.
Yes; forgot.
> This is ok with that change. Thanks.
Checked-in.
On Fri, 19 Feb 2010 04:10:30 +0100, Tom Tromey wrote:
> Oh, by the way, I think this is reasonable for 7.1. It is
> straightforward and fixes a reported crash. If Joel agrees, please put
> it on the branch. Thanks.
OK for the branch?
Thanks,
Jan
http://sourceware.org/ml/gdb-cvs/2010-02/msg00162.html
### src/gdb/ChangeLog 2010/02/19 00:35:53 1.11380
### src/gdb/ChangeLog 2010/02/19 06:19:44 1.11381
## -1,3 +1,10 @@
+2010-02-19 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ * symfile.c (addr_info_make_relative): Extend comment. Move SECT to
+ a more inner block. Initialize ADDR by LOWER_OFFSET only if it was
+ found by bfd_get_section_by_name.
+ * symfile.h (struct section_addr_info) <sectindex>: New comment.
+
2010-02-19 Joel Brobecker <brobecker@adacore.com>
* NEWS: Add new "[...] since 7.1" section. Rename the "[...] since
--- src/gdb/symfile.c 2010/02/18 19:17:00 1.272
+++ src/gdb/symfile.c 2010/02/19 06:19:45 1.273
@@ -562,13 +562,13 @@
}
/* Relativize absolute addresses in ADDRS into offsets based on ABFD. Fill-in
- also SECTINDEXes there. */
+ also SECTINDEXes specific to ABFD there. This function can be used to
+ rebase ADDRS to start referencing different BFD than before. */
void
addr_info_make_relative (struct section_addr_info *addrs, bfd *abfd)
{
asection *lower_sect;
- asection *sect;
CORE_ADDR lower_offset;
int i;
@@ -597,25 +597,29 @@
for (i = 0; i < addrs->num_sections && addrs->other[i].name; i++)
{
- if (addrs->other[i].addr != 0)
+ asection *sect = bfd_get_section_by_name (abfd, addrs->other[i].name);
+
+ if (sect)
{
- sect = bfd_get_section_by_name (abfd, addrs->other[i].name);
- if (sect)
+ /* This is the index used by BFD. */
+ addrs->other[i].sectindex = sect->index;
+
+ if (addrs->other[i].addr != 0)
{
addrs->other[i].addr -= bfd_section_vma (abfd, sect);
lower_offset = addrs->other[i].addr;
- /* This is the index used by BFD. */
- addrs->other[i].sectindex = sect->index;
}
else
- {
- warning (_("section %s not found in %s"), addrs->other[i].name,
- bfd_get_filename (abfd));
- addrs->other[i].addr = 0;
- }
+ addrs->other[i].addr = lower_offset;
}
else
- addrs->other[i].addr = lower_offset;
+ {
+ warning (_("section %s not found in %s"), addrs->other[i].name,
+ bfd_get_filename (abfd));
+ addrs->other[i].addr = 0;
+
+ /* SECTINDEX is invalid if ADDR is zero. */
+ }
}
}
--- src/gdb/symfile.h 2010/02/03 14:13:16 1.64
+++ src/gdb/symfile.h 2010/02/19 06:19:45 1.65
@@ -80,6 +80,8 @@
{
CORE_ADDR addr;
char *name;
+
+ /* SECTINDEX must be valid for associated BFD if ADDR is not zero. */
int sectindex;
} other[1];
};

View File

@ -32,11 +32,11 @@ Name: gdb%{?_with_debug:-debug}
# Set version to contents of gdb/version.in.
# 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: 7.0.50.20100203
Version: 7.0.90.20100306
# 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: 17%{?_with_upstream:.upstream}%{dist}
Release: 18%{?_with_upstream:.upstream}%{dist}
License: GPLv3+
Group: Development/Debuggers
@ -405,9 +405,6 @@ Patch335: gdb-rhel5-compat.patch
# Fix regression by python on ia64 due to stale current frame.
Patch397: gdb-follow-child-stale-parent.patch
# Fix related_breakpoint stale ref crash.
Patch400: gdb-stale-related_breakpoint.patch
# Workaround ccache making lineno non-zero for command-line definitions.
Patch403: gdb-ccache-workaround.patch
@ -430,9 +427,6 @@ Patch412: gdb-unused-revert.patch
# Fix i386+x86_64 rwatch+awatch before run, regression against 6.8 (BZ 541866).
Patch417: gdb-bz541866-rwatch-before-run.patch
# Fix crash on stale addrinfo->sectindex (more sensitive due to the PIE patch).
Patch421: gdb-stale-sectindex.patch
# Remove false gdb_assert on $sp underflow.
Patch422: gdb-infcall-sp-underflow.patch
@ -678,7 +672,6 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc-exp.c gdb/p-exp.c
%patch391 -p1
%patch392 -p1
%patch397 -p1
%patch400 -p1
%patch403 -p1
%patch404 -p1
%patch405 -p1
@ -689,7 +682,6 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc-exp.c gdb/p-exp.c
%patch408 -p1
%patch412 -p1
%patch417 -p1
%patch421 -p1
%patch422 -p1
%patch425 -p1
@ -699,7 +691,7 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc-exp.c gdb/p-exp.c
# Patch415: gdb-6.6-buildid-locate-core-as-arg.patch
# Currently disabled for RHEL as it is a new experimental feature not present
# in FSF GDB and possibly affecting new user scripts.
%if 0%{!?rhel:1}
%if 0%{?rhel:1}
%patch415 -p1 -R
%endif
%if 0%{!?el5:1}
@ -1024,6 +1016,9 @@ fi
%endif
%changelog
* Sun Mar 7 2010 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.0.90.20100306-18.fc13
- archer-jankratochvil-fedora13 commit: 59c35a31f0981a0f0b884b32c91ae6325b2126cd
* Sun Feb 28 2010 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.0.50.20100203-17.fc13
- Fix false warning: section .gnu.liblist not found in ...
- Fix crash on stale addrinfo->sectindex (more sensitive due to the PIE patch).

View File

@ -1,2 +1,2 @@
179d5e54575f7a4d8dfbe423e1ee6678 gdb-7.0.50.20100203.tar.bz2
9d52988c5b2a2085e0ee5df89393e5a0 gdb-7.0.90.20100306.tar.bz2
04e5c4b1b9e633422cc48990fe61958d libstdc++-v3-python-r155978.tar.bz2