- archer-jankratochvil-fedora13 commit:
59c35a31f0981a0f0b884b32c91ae6325b2126cd
This commit is contained in:
parent
991247c843
commit
03de7209a3
|
@ -1,2 +1,2 @@
|
|||
gdb-7.0.50.20100203.tar.bz2
|
||||
gdb-7.0.90.20100306.tar.bz2
|
||||
libstdc++-v3-python-r155978.tar.bz2
|
||||
|
|
|
@ -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. */
|
||||
|
|
|
@ -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@
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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 (¤t_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)
|
||||
{
|
||||
|
|
3809
gdb-archer.patch
3809
gdb-archer.patch
File diff suppressed because it is too large
Load Diff
|
@ -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)
|
||||
|
|
@ -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];
|
||||
};
|
||||
|
17
gdb.spec
17
gdb.spec
|
@ -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).
|
||||
|
|
Loading…
Reference in New Issue