Rebase to FSF GDB 7.5.50.20130215 (pre-7.6 snapshot).

This commit is contained in:
Jan Kratochvil 2013-02-18 18:14:00 +01:00
parent 99cd04126a
commit ab333d9938
17 changed files with 836 additions and 1368 deletions

2
.gitignore vendored
View File

@ -1,2 +1,2 @@
/gdb-libstdc++-v3-python-r155978.tar.bz2 /gdb-libstdc++-v3-python-r155978.tar.bz2
/gdb-7.5.50.20130118.tar.bz2 /gdb-7.5.50.20130215.tar.bz2

View File

@ -11,10 +11,10 @@
* gdb.texinfo (File Options): Document --readnever. * gdb.texinfo (File Options): Document --readnever.
Index: gdb-7.5.50.20130118/gdb/doc/gdb.texinfo Index: gdb-7.5.50.20130215/gdb/doc/gdb.texinfo
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/doc/gdb.texinfo 2013-01-18 22:54:22.521155527 +0100 --- gdb-7.5.50.20130215.orig/gdb/doc/gdb.texinfo 2013-02-15 22:31:37.000000000 +0100
+++ gdb-7.5.50.20130118/gdb/doc/gdb.texinfo 2013-01-18 22:58:15.064596580 +0100 +++ gdb-7.5.50.20130215/gdb/doc/gdb.texinfo 2013-02-15 22:34:22.381165443 +0100
@@ -1026,6 +1026,12 @@ Read each symbol file's entire symbol ta @@ -1026,6 +1026,12 @@ Read each symbol file's entire symbol ta
the default, which is to read it incrementally as it is needed. the default, which is to read it incrementally as it is needed.
This makes startup slower, but makes future operations faster. This makes startup slower, but makes future operations faster.
@ -28,11 +28,11 @@ Index: gdb-7.5.50.20130118/gdb/doc/gdb.texinfo
@end table @end table
@node Mode Options @node Mode Options
Index: gdb-7.5.50.20130118/gdb/main.c Index: gdb-7.5.50.20130215/gdb/main.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/main.c 2013-01-18 22:54:22.523155531 +0100 --- gdb-7.5.50.20130215.orig/gdb/main.c 2013-02-15 22:31:37.000000000 +0100
+++ gdb-7.5.50.20130118/gdb/main.c 2013-01-18 22:58:15.065596598 +0100 +++ gdb-7.5.50.20130215/gdb/main.c 2013-02-15 22:34:22.382165445 +0100
@@ -445,6 +445,7 @@ captured_main (void *data) @@ -447,6 +447,7 @@ captured_main (void *data)
{"xdb", no_argument, &xdb_commands, 1}, {"xdb", no_argument, &xdb_commands, 1},
{"dbx", no_argument, &dbx_commands, 1}, {"dbx", no_argument, &dbx_commands, 1},
{"readnow", no_argument, &readnow_symbol_files, 1}, {"readnow", no_argument, &readnow_symbol_files, 1},
@ -40,7 +40,7 @@ Index: gdb-7.5.50.20130118/gdb/main.c
{"r", no_argument, &readnow_symbol_files, 1}, {"r", no_argument, &readnow_symbol_files, 1},
{"quiet", no_argument, &quiet, 1}, {"quiet", no_argument, &quiet, 1},
{"q", no_argument, &quiet, 1}, {"q", no_argument, &quiet, 1},
@@ -1164,6 +1165,7 @@ Options:\n\n\ @@ -1165,6 +1166,7 @@ Options:\n\n\
fputs_unfiltered (_("\ fputs_unfiltered (_("\
--quiet Do not print version number on startup.\n\ --quiet Do not print version number on startup.\n\
--readnow Fully read symbol files on first access.\n\ --readnow Fully read symbol files on first access.\n\
@ -48,10 +48,10 @@ Index: gdb-7.5.50.20130118/gdb/main.c
"), stream); "), stream);
fputs_unfiltered (_("\ fputs_unfiltered (_("\
--se=FILE Use FILE as symbol file and executable file.\n\ --se=FILE Use FILE as symbol file and executable file.\n\
Index: gdb-7.5.50.20130118/gdb/symfile.c Index: gdb-7.5.50.20130215/gdb/symfile.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/symfile.c 2013-01-18 22:58:15.065596598 +0100 --- gdb-7.5.50.20130215.orig/gdb/symfile.c 2013-02-01 20:39:03.000000000 +0100
+++ gdb-7.5.50.20130118/gdb/symfile.c 2013-01-18 22:58:31.249619597 +0100 +++ gdb-7.5.50.20130215/gdb/symfile.c 2013-02-15 22:34:22.383165447 +0100
@@ -81,6 +81,7 @@ static void clear_symtab_users_cleanup ( @@ -81,6 +81,7 @@ static void clear_symtab_users_cleanup (
/* Global variables owned by this file. */ /* Global variables owned by this file. */
@ -60,19 +60,19 @@ Index: gdb-7.5.50.20130118/gdb/symfile.c
/* Functions this file defines. */ /* Functions this file defines. */
Index: gdb-7.5.50.20130118/gdb/dwarf2read.c Index: gdb-7.5.50.20130215/gdb/dwarf2read.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/dwarf2read.c 2013-01-18 22:54:22.528155545 +0100 --- gdb-7.5.50.20130215.orig/gdb/dwarf2read.c 2013-02-15 22:31:37.000000000 +0100
+++ gdb-7.5.50.20130118/gdb/dwarf2read.c 2013-01-18 22:59:08.940674035 +0100 +++ gdb-7.5.50.20130215/gdb/dwarf2read.c 2013-02-15 22:34:34.479181584 +0100
@@ -67,6 +67,7 @@ @@ -68,6 +68,7 @@
#include <ctype.h>
#include "gdb_bfd.h" #include "gdb_bfd.h"
#include "f-lang.h" #include "f-lang.h"
#include "source.h"
+#include "top.h" +#include "top.h"
#include <fcntl.h> #include <fcntl.h>
#include "gdb_string.h" #include "gdb_string.h"
@@ -1782,8 +1783,9 @@ dwarf2_has_info (struct objfile *objfile @@ -1793,8 +1794,9 @@ dwarf2_has_info (struct objfile *objfile
(void *) names); (void *) names);
dwarf2_per_objfile->objfile = objfile; dwarf2_per_objfile->objfile = objfile;
} }
@ -84,10 +84,10 @@ Index: gdb-7.5.50.20130118/gdb/dwarf2read.c
} }
/* When loading sections, we look either for uncompressed section or for /* When loading sections, we look either for uncompressed section or for
Index: gdb-7.5.50.20130118/gdb/top.h Index: gdb-7.5.50.20130215/gdb/top.h
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/top.h 2013-01-18 22:54:22.528155545 +0100 --- gdb-7.5.50.20130215.orig/gdb/top.h 2013-01-07 17:40:36.000000000 +0100
+++ gdb-7.5.50.20130118/gdb/top.h 2013-01-18 22:58:15.069596657 +0100 +++ gdb-7.5.50.20130215/gdb/top.h 2013-02-15 22:34:22.389165459 +0100
@@ -58,6 +58,7 @@ extern void set_prompt (const char *s); @@ -58,6 +58,7 @@ extern void set_prompt (const char *s);
/* From random places. */ /* From random places. */

View File

@ -1,16 +1,16 @@
Index: gdb-7.4.50.20120602/gdb/event-top.c Index: gdb-7.5.50.20130215/gdb/event-top.c
=================================================================== ===================================================================
--- gdb-7.4.50.20120602.orig/gdb/event-top.c 2012-06-02 21:08:08.651227347 +0200 --- gdb-7.5.50.20130215.orig/gdb/event-top.c 2013-01-31 19:37:37.000000000 +0100
+++ gdb-7.4.50.20120602/gdb/event-top.c 2012-06-02 21:08:23.479221885 +0200 +++ gdb-7.5.50.20130215/gdb/event-top.c 2013-02-15 22:36:11.217308539 +0100
@@ -36,6 +36,7 @@ @@ -36,6 +36,7 @@
#include "observer.h"
#include "continuations.h" #include "continuations.h"
#include "gdbcmd.h" /* for dont_repeat() */ #include "gdbcmd.h" /* for dont_repeat() */
#include "annotate.h"
+#include "symfile.h" +#include "symfile.h"
/* readline include files. */ /* readline include files. */
#include "readline/readline.h" #include "readline/readline.h"
@@ -176,6 +177,8 @@ rl_callback_read_char_wrapper (gdb_clien @@ -170,6 +171,8 @@ rl_callback_read_char_wrapper (gdb_clien
void void
cli_command_loop (void) cli_command_loop (void)
{ {
@ -19,7 +19,7 @@ Index: gdb-7.4.50.20120602/gdb/event-top.c
display_gdb_prompt (0); display_gdb_prompt (0);
/* Now it's time to start the event loop. */ /* Now it's time to start the event loop. */
@@ -241,6 +244,8 @@ display_gdb_prompt (char *new_prompt) @@ -237,6 +240,8 @@ display_gdb_prompt (char *new_prompt)
/* Reset the nesting depth used when trace-commands is set. */ /* Reset the nesting depth used when trace-commands is set. */
reset_command_nest_depth (); reset_command_nest_depth ();
@ -28,11 +28,11 @@ Index: gdb-7.4.50.20120602/gdb/event-top.c
/* Each interpreter has its own rules on displaying the command /* Each interpreter has its own rules on displaying the command
prompt. */ prompt. */
if (!current_interp_display_prompt_p ()) if (!current_interp_display_prompt_p ())
Index: gdb-7.4.50.20120602/gdb/elfread.c Index: gdb-7.5.50.20130215/gdb/elfread.c
=================================================================== ===================================================================
--- gdb-7.4.50.20120602.orig/gdb/elfread.c 2012-06-02 21:08:08.651227347 +0200 --- gdb-7.5.50.20130215.orig/gdb/elfread.c 2013-02-15 22:35:36.000000000 +0100
+++ gdb-7.4.50.20120602/gdb/elfread.c 2012-06-02 21:08:23.482221882 +0200 +++ gdb-7.5.50.20130215/gdb/elfread.c 2013-02-15 22:35:59.414292874 +0100
@@ -48,6 +48,7 @@ @@ -49,6 +49,7 @@
#include "gdbcore.h" #include "gdbcore.h"
#include "gdbcmd.h" #include "gdbcmd.h"
#include "observer.h" #include "observer.h"
@ -40,7 +40,7 @@ Index: gdb-7.4.50.20120602/gdb/elfread.c
#include <sys/stat.h> #include <sys/stat.h>
extern void _initialize_elfread (void); extern void _initialize_elfread (void);
@@ -1647,8 +1648,361 @@ build_id_to_filename (struct build_id *b @@ -1649,8 +1650,361 @@ build_id_to_filename (struct build_id *b
return retval; return retval;
} }
@ -403,7 +403,7 @@ Index: gdb-7.4.50.20120602/gdb/elfread.c
avoidance. */ avoidance. */
struct missing_filepair struct missing_filepair
@@ -1702,11 +2056,17 @@ missing_filepair_change (void) @@ -1704,11 +2058,17 @@ missing_filepair_change (void)
/* All their memory came just from missing_filepair_OBSTACK. */ /* All their memory came just from missing_filepair_OBSTACK. */
missing_filepair_hash = NULL; missing_filepair_hash = NULL;
} }
@ -421,7 +421,7 @@ Index: gdb-7.4.50.20120602/gdb/elfread.c
missing_filepair_change (); missing_filepair_change ();
} }
@@ -1773,14 +2133,35 @@ debug_print_missing (const char *binary, @@ -1775,14 +2135,35 @@ debug_print_missing (const char *binary,
*slot = missing_filepair; *slot = missing_filepair;
@ -464,11 +464,11 @@ Index: gdb-7.4.50.20120602/gdb/elfread.c
} }
static char * static char *
Index: gdb-7.4.50.20120602/gdb/symfile.h Index: gdb-7.5.50.20130215/gdb/symfile.h
=================================================================== ===================================================================
--- gdb-7.4.50.20120602.orig/gdb/symfile.h 2012-06-02 21:08:08.651227347 +0200 --- gdb-7.5.50.20130215.orig/gdb/symfile.h 2013-02-15 22:35:03.000000000 +0100
+++ gdb-7.4.50.20120602/gdb/symfile.h 2012-06-02 21:08:23.499221877 +0200 +++ gdb-7.5.50.20130215/gdb/symfile.h 2013-02-15 22:35:59.414292874 +0100
@@ -621,6 +621,8 @@ extern struct build_id *build_id_addr_ge @@ -599,6 +599,8 @@ extern struct build_id *build_id_addr_ge
extern char *build_id_to_filename (struct build_id *build_id, extern char *build_id_to_filename (struct build_id *build_id,
char **link_return, int add_debug_suffix); char **link_return, int add_debug_suffix);
extern void debug_print_missing (const char *binary, const char *debug); extern void debug_print_missing (const char *binary, const char *debug);
@ -477,11 +477,11 @@ Index: gdb-7.4.50.20120602/gdb/symfile.h
/* From dwarf2read.c */ /* From dwarf2read.c */
Index: gdb-7.4.50.20120602/gdb/testsuite/lib/gdb.exp Index: gdb-7.5.50.20130215/gdb/testsuite/lib/gdb.exp
=================================================================== ===================================================================
--- gdb-7.4.50.20120602.orig/gdb/testsuite/lib/gdb.exp 2012-06-02 21:08:08.651227347 +0200 --- gdb-7.5.50.20130215.orig/gdb/testsuite/lib/gdb.exp 2013-02-15 22:35:03.000000000 +0100
+++ gdb-7.4.50.20120602/gdb/testsuite/lib/gdb.exp 2012-06-02 21:08:23.510221873 +0200 +++ gdb-7.5.50.20130215/gdb/testsuite/lib/gdb.exp 2013-02-15 22:35:59.415292878 +0100
@@ -1388,7 +1388,7 @@ proc default_gdb_start { } { @@ -1482,7 +1482,7 @@ proc default_gdb_start { } {
warning "Couldn't set the width to 0." warning "Couldn't set the width to 0."
} }
} }
@ -490,11 +490,11 @@ Index: gdb-7.4.50.20120602/gdb/testsuite/lib/gdb.exp
send_gdb "set build-id-verbose 0\n" send_gdb "set build-id-verbose 0\n"
gdb_expect 10 { gdb_expect 10 {
-re "$gdb_prompt $" { -re "$gdb_prompt $" {
Index: gdb-7.4.50.20120602/gdb/testsuite/lib/mi-support.exp Index: gdb-7.5.50.20130215/gdb/testsuite/lib/mi-support.exp
=================================================================== ===================================================================
--- gdb-7.4.50.20120602.orig/gdb/testsuite/lib/mi-support.exp 2012-06-02 21:08:08.651227347 +0200 --- gdb-7.5.50.20130215.orig/gdb/testsuite/lib/mi-support.exp 2013-02-15 22:35:03.000000000 +0100
+++ gdb-7.4.50.20120602/gdb/testsuite/lib/mi-support.exp 2012-06-02 21:08:23.523221869 +0200 +++ gdb-7.5.50.20130215/gdb/testsuite/lib/mi-support.exp 2013-02-15 22:35:59.416292881 +0100
@@ -213,7 +213,7 @@ proc default_mi_gdb_start { args } { @@ -212,7 +212,7 @@ proc default_mi_gdb_start { args } {
warning "Couldn't set the width to 0." warning "Couldn't set the width to 0."
} }
} }
@ -503,10 +503,10 @@ Index: gdb-7.4.50.20120602/gdb/testsuite/lib/mi-support.exp
send_gdb "190-gdb-set build-id-verbose 0\n" send_gdb "190-gdb-set build-id-verbose 0\n"
gdb_expect 10 { gdb_expect 10 {
-re ".*190-gdb-set build-id-verbose 0\r\n190\\\^done\r\n$mi_gdb_prompt$" { -re ".*190-gdb-set build-id-verbose 0\r\n190\\\^done\r\n$mi_gdb_prompt$" {
Index: gdb-7.4.50.20120602/gdb/tui/tui-interp.c Index: gdb-7.5.50.20130215/gdb/tui/tui-interp.c
=================================================================== ===================================================================
--- gdb-7.4.50.20120602.orig/gdb/tui/tui-interp.c 2012-06-02 21:08:08.651227347 +0200 --- gdb-7.5.50.20130215.orig/gdb/tui/tui-interp.c 2013-01-01 07:41:30.000000000 +0100
+++ gdb-7.4.50.20120602/gdb/tui/tui-interp.c 2012-06-02 21:08:23.524221869 +0200 +++ gdb-7.5.50.20130215/gdb/tui/tui-interp.c 2013-02-15 22:35:59.416292881 +0100
@@ -30,6 +30,7 @@ @@ -30,6 +30,7 @@
#include "tui/tui.h" #include "tui/tui.h"
#include "tui/tui-io.h" #include "tui/tui-io.h"
@ -515,10 +515,10 @@ Index: gdb-7.4.50.20120602/gdb/tui/tui-interp.c
/* Set to 1 when the TUI mode must be activated when we first start /* Set to 1 when the TUI mode must be activated when we first start
gdb. */ gdb. */
Index: gdb-7.4.50.20120602/gdb/aclocal.m4 Index: gdb-7.5.50.20130215/gdb/aclocal.m4
=================================================================== ===================================================================
--- gdb-7.4.50.20120602.orig/gdb/aclocal.m4 2012-06-02 21:08:08.651227347 +0200 --- gdb-7.5.50.20130215.orig/gdb/aclocal.m4 2013-01-17 12:06:26.000000000 +0100
+++ gdb-7.4.50.20120602/gdb/aclocal.m4 2012-06-02 21:08:23.545221858 +0200 +++ gdb-7.5.50.20130215/gdb/aclocal.m4 2013-02-15 22:35:59.417292883 +0100
@@ -11,6 +11,164 @@ @@ -11,6 +11,164 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. # PARTICULAR PURPOSE.
@ -684,11 +684,11 @@ Index: gdb-7.4.50.20120602/gdb/aclocal.m4
# AM_CONDITIONAL -*- Autoconf -*- # AM_CONDITIONAL -*- Autoconf -*-
# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
Index: gdb-7.4.50.20120602/gdb/config.in Index: gdb-7.5.50.20130215/gdb/config.in
=================================================================== ===================================================================
--- gdb-7.4.50.20120602.orig/gdb/config.in 2012-06-02 21:08:08.651227347 +0200 --- gdb-7.5.50.20130215.orig/gdb/config.in 2012-12-09 19:39:58.000000000 +0100
+++ gdb-7.4.50.20120602/gdb/config.in 2012-06-02 21:08:23.546221859 +0200 +++ gdb-7.5.50.20130215/gdb/config.in 2013-02-15 22:35:59.417292883 +0100
@@ -36,6 +36,9 @@ @@ -33,6 +33,9 @@
/* Define to BFD's default target vector. */ /* Define to BFD's default target vector. */
#undef DEFAULT_BFD_VEC #undef DEFAULT_BFD_VEC
@ -698,7 +698,7 @@ Index: gdb-7.4.50.20120602/gdb/config.in
/* Define to 1 if translation of program messages to the user's native /* Define to 1 if translation of program messages to the user's native
language is requested. */ language is requested. */
#undef ENABLE_NLS #undef ENABLE_NLS
@@ -216,6 +219,9 @@ @@ -210,6 +213,9 @@
/* Define if Python 2.7 is being used. */ /* Define if Python 2.7 is being used. */
#undef HAVE_LIBPYTHON2_7 #undef HAVE_LIBPYTHON2_7
@ -708,11 +708,11 @@ Index: gdb-7.4.50.20120602/gdb/config.in
/* Define to 1 if you have the <libunwind-ia64.h> header file. */ /* Define to 1 if you have the <libunwind-ia64.h> header file. */
#undef HAVE_LIBUNWIND_IA64_H #undef HAVE_LIBUNWIND_IA64_H
Index: gdb-7.4.50.20120602/gdb/configure Index: gdb-7.5.50.20130215/gdb/configure
=================================================================== ===================================================================
--- gdb-7.4.50.20120602.orig/gdb/configure 2012-06-02 21:08:08.651227347 +0200 --- gdb-7.5.50.20130215.orig/gdb/configure 2013-01-09 18:21:33.000000000 +0100
+++ gdb-7.4.50.20120602/gdb/configure 2012-06-02 21:20:53.245838121 +0200 +++ gdb-7.5.50.20130215/gdb/configure 2013-02-15 22:35:59.422292893 +0100
@@ -680,6 +680,11 @@ REPORT_BUGS_TO @@ -683,6 +683,11 @@ REPORT_BUGS_TO
PKGVERSION PKGVERSION
TARGET_OBS TARGET_OBS
subdirs subdirs
@ -724,7 +724,7 @@ Index: gdb-7.4.50.20120602/gdb/configure
GDB_DATADIR GDB_DATADIR
DEBUGDIR DEBUGDIR
MAKEINFO_EXTRA_FLAGS MAKEINFO_EXTRA_FLAGS
@@ -780,6 +785,7 @@ with_gdb_datadir @@ -783,6 +788,7 @@ with_gdb_datadir
with_relocated_sources with_relocated_sources
with_auto_load_dir with_auto_load_dir
with_auto_load_safe_path with_auto_load_safe_path
@ -732,7 +732,7 @@ Index: gdb-7.4.50.20120602/gdb/configure
enable_targets enable_targets
enable_64_bit_bfd enable_64_bit_bfd
enable_gdbcli enable_gdbcli
@@ -825,6 +831,11 @@ CPPFLAGS @@ -831,6 +837,11 @@ CPPFLAGS
CPP CPP
MAKEINFO MAKEINFO
MAKEINFOFLAGS MAKEINFOFLAGS
@ -744,7 +744,7 @@ Index: gdb-7.4.50.20120602/gdb/configure
YACC YACC
YFLAGS YFLAGS
XMKMF' XMKMF'
@@ -1494,6 +1505,8 @@ Optional Packages: @@ -1501,6 +1512,8 @@ Optional Packages:
[--with-auto-load-dir] [--with-auto-load-dir]
--without-auto-load-safe-path --without-auto-load-safe-path
do not restrict auto-loaded files locations do not restrict auto-loaded files locations
@ -753,7 +753,7 @@ Index: gdb-7.4.50.20120602/gdb/configure
--with-libunwind-ia64 use libunwind frame unwinding for ia64 targets --with-libunwind-ia64 use libunwind frame unwinding for ia64 targets
--with-curses use the curses library instead of the termcap --with-curses use the curses library instead of the termcap
library library
@@ -1535,6 +1548,13 @@ Some influential environment variables: @@ -1545,6 +1558,13 @@ Some influential environment variables:
MAKEINFO Parent configure detects if it is of sufficient version. MAKEINFO Parent configure detects if it is of sufficient version.
MAKEINFOFLAGS MAKEINFOFLAGS
Parameters for MAKEINFO. Parameters for MAKEINFO.
@ -767,7 +767,7 @@ Index: gdb-7.4.50.20120602/gdb/configure
YACC The `Yet Another C Compiler' implementation to use. Defaults to YACC The `Yet Another C Compiler' implementation to use. Defaults to
the first program found out of: `bison -y', `byacc', `yacc'. the first program found out of: `bison -y', `byacc', `yacc'.
YFLAGS The list of arguments that will be passed by default to $YACC. YFLAGS The list of arguments that will be passed by default to $YACC.
@@ -5015,6 +5035,491 @@ _ACEOF @@ -5030,6 +5050,491 @@ _ACEOF
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_auto_load_safe_path" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_auto_load_safe_path" >&5
$as_echo "$with_auto_load_safe_path" >&6; } $as_echo "$with_auto_load_safe_path" >&6; }
@ -1259,10 +1259,10 @@ Index: gdb-7.4.50.20120602/gdb/configure
subdirs="$subdirs testsuite" subdirs="$subdirs testsuite"
Index: gdb-7.4.50.20120602/gdb/configure.ac Index: gdb-7.5.50.20130215/gdb/configure.ac
=================================================================== ===================================================================
--- gdb-7.4.50.20120602.orig/gdb/configure.ac 2012-06-02 21:08:08.651227347 +0200 --- gdb-7.5.50.20130215.orig/gdb/configure.ac 2013-01-09 18:21:35.000000000 +0100
+++ gdb-7.4.50.20120602/gdb/configure.ac 2012-06-02 21:08:23.560221855 +0200 +++ gdb-7.5.50.20130215/gdb/configure.ac 2013-02-15 22:35:59.423292895 +0100
@@ -166,6 +166,199 @@ AC_DEFINE_DIR(AUTO_LOAD_SAFE_PATH, escap @@ -166,6 +166,199 @@ AC_DEFINE_DIR(AUTO_LOAD_SAFE_PATH, escap
[Directories safe to hold auto-loaded files.]) [Directories safe to hold auto-loaded files.])
AC_MSG_RESULT([$with_auto_load_safe_path]) AC_MSG_RESULT([$with_auto_load_safe_path])
@ -1463,11 +1463,11 @@ Index: gdb-7.4.50.20120602/gdb/configure.ac
AC_CONFIG_SUBDIRS(testsuite) AC_CONFIG_SUBDIRS(testsuite)
# Check whether to support alternative target configurations # Check whether to support alternative target configurations
Index: gdb-7.4.50.20120602/gdb/corelow.c Index: gdb-7.5.50.20130215/gdb/corelow.c
=================================================================== ===================================================================
--- gdb-7.4.50.20120602.orig/gdb/corelow.c 2012-06-02 21:08:08.651227347 +0200 --- gdb-7.5.50.20130215.orig/gdb/corelow.c 2013-02-15 22:35:03.000000000 +0100
+++ gdb-7.4.50.20120602/gdb/corelow.c 2012-06-02 21:08:23.561221855 +0200 +++ gdb-7.5.50.20130215/gdb/corelow.c 2013-02-15 22:35:59.423292895 +0100
@@ -317,7 +317,7 @@ build_id_locate_exec (int from_tty) @@ -313,7 +313,7 @@ build_id_locate_exec (int from_tty)
symfile_objfile->flags |= OBJF_BUILD_ID_CORE_LOADED; symfile_objfile->flags |= OBJF_BUILD_ID_CORE_LOADED;
} }
else else

View File

@ -1,8 +1,8 @@
Index: gdb-7.4.91.20120801/gdb/corelow.c Index: gdb-7.5.50.20130215/gdb/corelow.c
=================================================================== ===================================================================
--- gdb-7.4.91.20120801.orig/gdb/corelow.c 2012-08-01 18:36:51.000000000 +0200 --- gdb-7.5.50.20130215.orig/gdb/corelow.c 2013-01-31 19:37:37.000000000 +0100
+++ gdb-7.4.91.20120801/gdb/corelow.c 2012-08-01 18:37:44.584925750 +0200 +++ gdb-7.5.50.20130215/gdb/corelow.c 2013-02-15 22:35:03.278219844 +0100
@@ -47,6 +47,9 @@ @@ -46,6 +46,9 @@
#include "progspace.h" #include "progspace.h"
#include "objfiles.h" #include "objfiles.h"
#include "gdb_bfd.h" #include "gdb_bfd.h"
@ -12,7 +12,7 @@ Index: gdb-7.4.91.20120801/gdb/corelow.c
#ifndef O_LARGEFILE #ifndef O_LARGEFILE
#define O_LARGEFILE 0 #define O_LARGEFILE 0
@@ -274,6 +277,52 @@ add_to_thread_list (bfd *abfd, asection @@ -271,6 +274,52 @@ add_to_thread_list (bfd *abfd, asection
inferior_ptid = ptid; /* Yes, make it current. */ inferior_ptid = ptid; /* Yes, make it current. */
} }
@ -65,7 +65,7 @@ Index: gdb-7.4.91.20120801/gdb/corelow.c
/* This routine opens and sets up the core file bfd. */ /* This routine opens and sets up the core file bfd. */
static void static void
@@ -418,6 +467,14 @@ core_open (char *filename, int from_tty) @@ -409,6 +458,14 @@ core_open (char *filename, int from_tty)
switch_to_thread (thread->ptid); switch_to_thread (thread->ptid);
} }
@ -80,7 +80,7 @@ Index: gdb-7.4.91.20120801/gdb/corelow.c
post_create_inferior (&core_ops, from_tty); post_create_inferior (&core_ops, from_tty);
/* Now go through the target stack looking for threads since there /* Now go through the target stack looking for threads since there
@@ -939,4 +996,11 @@ _initialize_corelow (void) @@ -978,4 +1035,11 @@ _initialize_corelow (void)
init_core_ops (); init_core_ops ();
add_target (&core_ops); add_target (&core_ops);
@ -92,11 +92,11 @@ Index: gdb-7.4.91.20120801/gdb/corelow.c
+ NULL, NULL, NULL, + NULL, NULL, NULL,
+ &setlist, &showlist); + &setlist, &showlist);
} }
Index: gdb-7.4.91.20120801/gdb/doc/gdb.texinfo Index: gdb-7.5.50.20130215/gdb/doc/gdb.texinfo
=================================================================== ===================================================================
--- gdb-7.4.91.20120801.orig/gdb/doc/gdb.texinfo 2012-08-01 18:36:51.000000000 +0200 --- gdb-7.5.50.20130215.orig/gdb/doc/gdb.texinfo 2013-02-15 22:34:22.000000000 +0100
+++ gdb-7.4.91.20120801/gdb/doc/gdb.texinfo 2012-08-01 18:37:44.598925672 +0200 +++ gdb-7.5.50.20130215/gdb/doc/gdb.texinfo 2013-02-15 22:35:03.287219863 +0100
@@ -16530,6 +16530,27 @@ information files. @@ -16662,6 +16662,27 @@ information files.
@end table @end table
@ -124,11 +124,11 @@ Index: gdb-7.4.91.20120801/gdb/doc/gdb.texinfo
@cindex @code{.gnu_debuglink} sections @cindex @code{.gnu_debuglink} sections
@cindex debug link sections @cindex debug link sections
A debug link is a special section of the executable file named A debug link is a special section of the executable file named
Index: gdb-7.4.91.20120801/gdb/solib-svr4.c Index: gdb-7.5.50.20130215/gdb/solib-svr4.c
=================================================================== ===================================================================
--- gdb-7.4.91.20120801.orig/gdb/solib-svr4.c 2012-08-01 18:36:51.000000000 +0200 --- gdb-7.5.50.20130215.orig/gdb/solib-svr4.c 2013-01-31 14:52:52.000000000 +0100
+++ gdb-7.4.91.20120801/gdb/solib-svr4.c 2012-08-01 18:37:44.599925667 +0200 +++ gdb-7.5.50.20130215/gdb/solib-svr4.c 2013-02-15 22:35:03.287219863 +0100
@@ -1228,9 +1228,52 @@ svr4_read_so_list (CORE_ADDR lm, struct @@ -1224,9 +1224,52 @@ svr4_read_so_list (CORE_ADDR lm, struct
continue; continue;
} }
@ -184,10 +184,10 @@ Index: gdb-7.4.91.20120801/gdb/solib-svr4.c
xfree (buffer); xfree (buffer);
/* If this entry has no name, or its name matches the name /* If this entry has no name, or its name matches the name
Index: gdb-7.4.91.20120801/gdb/elfread.c Index: gdb-7.5.50.20130215/gdb/elfread.c
=================================================================== ===================================================================
--- gdb-7.4.91.20120801.orig/gdb/elfread.c 2012-08-01 18:36:51.000000000 +0200 --- gdb-7.5.50.20130215.orig/gdb/elfread.c 2013-02-01 20:39:03.000000000 +0100
+++ gdb-7.4.91.20120801/gdb/elfread.c 2012-08-01 18:38:08.956790879 +0200 +++ gdb-7.5.50.20130215/gdb/elfread.c 2013-02-15 22:35:36.826263354 +0100
@@ -45,6 +45,11 @@ @@ -45,6 +45,11 @@
#include "regcache.h" #include "regcache.h"
#include "bcache.h" #include "bcache.h"
@ -919,9 +919,9 @@ Index: gdb-7.4.91.20120801/gdb/elfread.c
} }
return NULL; return NULL;
} }
@@ -1436,9 +2038,10 @@ elf_symfile_read (struct objfile *objfil @@ -1444,9 +2046,10 @@ elf_symfile_read (struct objfile *objfil
`.note.gnu.build-id'. */ && objfile->separate_debug_objfile == NULL
else if (!objfile_has_partial_symbols (objfile)) && objfile->separate_debug_objfile_backlink == NULL)
{ {
- char *debugfile; - char *debugfile;
+ char *debugfile, *build_id_filename; + char *debugfile, *build_id_filename;
@ -932,7 +932,7 @@ Index: gdb-7.4.91.20120801/gdb/elfread.c
if (debugfile == NULL) if (debugfile == NULL)
debugfile = find_separate_debug_file_by_debuglink (objfile); debugfile = find_separate_debug_file_by_debuglink (objfile);
@@ -1452,6 +2055,12 @@ elf_symfile_read (struct objfile *objfil @@ -1460,6 +2063,12 @@ elf_symfile_read (struct objfile *objfil
symbol_file_add_separate (abfd, symfile_flags, objfile); symbol_file_add_separate (abfd, symfile_flags, objfile);
do_cleanups (cleanup); do_cleanups (cleanup);
} }
@ -945,7 +945,7 @@ Index: gdb-7.4.91.20120801/gdb/elfread.c
} }
if (symtab_create_debug) if (symtab_create_debug)
@@ -1784,4 +2393,16 @@ _initialize_elfread (void) @@ -1782,4 +2391,16 @@ _initialize_elfread (void)
elf_objfile_gnu_ifunc_cache_data = register_objfile_data (); elf_objfile_gnu_ifunc_cache_data = register_objfile_data ();
gnu_ifunc_fns_p = &elf_gnu_ifunc_fns; gnu_ifunc_fns_p = &elf_gnu_ifunc_fns;
@ -962,11 +962,11 @@ Index: gdb-7.4.91.20120801/gdb/elfread.c
+ +
+ observer_attach_executable_changed (debug_print_executable_changed); + observer_attach_executable_changed (debug_print_executable_changed);
} }
Index: gdb-7.4.91.20120801/gdb/symfile.h Index: gdb-7.5.50.20130215/gdb/symfile.h
=================================================================== ===================================================================
--- gdb-7.4.91.20120801.orig/gdb/symfile.h 2012-08-01 18:36:51.000000000 +0200 --- gdb-7.5.50.20130215.orig/gdb/symfile.h 2013-02-03 17:20:18.000000000 +0100
+++ gdb-7.4.91.20120801/gdb/symfile.h 2012-08-01 18:37:44.600925662 +0200 +++ gdb-7.5.50.20130215/gdb/symfile.h 2013-02-15 22:35:03.288219867 +0100
@@ -615,6 +615,13 @@ void free_symfile_segment_data (struct s @@ -593,6 +593,13 @@ void free_symfile_segment_data (struct s
extern struct cleanup *increment_reading_symtab (void); extern struct cleanup *increment_reading_symtab (void);
@ -980,11 +980,11 @@ Index: gdb-7.4.91.20120801/gdb/symfile.h
/* From dwarf2read.c */ /* From dwarf2read.c */
/* Names for a dwarf2 debugging section. The field NORMAL is the normal /* Names for a dwarf2 debugging section. The field NORMAL is the normal
Index: gdb-7.4.91.20120801/gdb/testsuite/lib/gdb.exp Index: gdb-7.5.50.20130215/gdb/testsuite/lib/gdb.exp
=================================================================== ===================================================================
--- gdb-7.4.91.20120801.orig/gdb/testsuite/lib/gdb.exp 2012-08-01 18:36:51.000000000 +0200 --- gdb-7.5.50.20130215.orig/gdb/testsuite/lib/gdb.exp 2013-02-15 22:31:37.000000000 +0100
+++ gdb-7.4.91.20120801/gdb/testsuite/lib/gdb.exp 2012-08-01 18:37:44.601925656 +0200 +++ gdb-7.5.50.20130215/gdb/testsuite/lib/gdb.exp 2013-02-15 22:35:03.289219870 +0100
@@ -1388,6 +1388,16 @@ proc default_gdb_start { } { @@ -1482,6 +1482,16 @@ proc default_gdb_start { } {
warning "Couldn't set the width to 0." warning "Couldn't set the width to 0."
} }
} }
@ -1001,11 +1001,11 @@ Index: gdb-7.4.91.20120801/gdb/testsuite/lib/gdb.exp
return 0; return 0;
} }
Index: gdb-7.4.91.20120801/gdb/testsuite/lib/mi-support.exp Index: gdb-7.5.50.20130215/gdb/testsuite/lib/mi-support.exp
=================================================================== ===================================================================
--- gdb-7.4.91.20120801.orig/gdb/testsuite/lib/mi-support.exp 2012-07-25 22:35:30.000000000 +0200 --- gdb-7.5.50.20130215.orig/gdb/testsuite/lib/mi-support.exp 2013-01-22 00:57:59.000000000 +0100
+++ gdb-7.4.91.20120801/gdb/testsuite/lib/mi-support.exp 2012-08-01 18:37:44.601925656 +0200 +++ gdb-7.5.50.20130215/gdb/testsuite/lib/mi-support.exp 2013-02-15 22:35:03.289219870 +0100
@@ -213,6 +213,16 @@ proc default_mi_gdb_start { args } { @@ -212,6 +212,16 @@ proc default_mi_gdb_start { args } {
warning "Couldn't set the width to 0." warning "Couldn't set the width to 0."
} }
} }
@ -1022,10 +1022,10 @@ Index: gdb-7.4.91.20120801/gdb/testsuite/lib/mi-support.exp
# If allowing the inferior to have its own PTY then assign the inferior # If allowing the inferior to have its own PTY then assign the inferior
# its own terminal device here. # its own terminal device here.
if { $separate_inferior_pty } { if { $separate_inferior_pty } {
Index: gdb-7.4.91.20120801/gdb/objfiles.h Index: gdb-7.5.50.20130215/gdb/objfiles.h
=================================================================== ===================================================================
--- gdb-7.4.91.20120801.orig/gdb/objfiles.h 2012-08-01 18:36:51.000000000 +0200 --- gdb-7.5.50.20130215.orig/gdb/objfiles.h 2013-01-01 07:32:47.000000000 +0100
+++ gdb-7.4.91.20120801/gdb/objfiles.h 2012-08-01 18:37:44.601925656 +0200 +++ gdb-7.5.50.20130215/gdb/objfiles.h 2013-02-15 22:35:03.290219872 +0100
@@ -432,6 +432,10 @@ struct objfile @@ -432,6 +432,10 @@ struct objfile
#define OBJF_MAINLINE (1 << 5) #define OBJF_MAINLINE (1 << 5)
@ -1037,10 +1037,10 @@ Index: gdb-7.4.91.20120801/gdb/objfiles.h
/* The object file that contains the runtime common minimal symbols /* The object file that contains the runtime common minimal symbols
for SunOS4. Note that this objfile has no associated BFD. */ for SunOS4. Note that this objfile has no associated BFD. */
Index: gdb-7.4.91.20120801/gdb/testsuite/gdb.base/corefile.exp Index: gdb-7.5.50.20130215/gdb/testsuite/gdb.base/corefile.exp
=================================================================== ===================================================================
--- gdb-7.4.91.20120801.orig/gdb/testsuite/gdb.base/corefile.exp 2012-06-21 22:46:21.000000000 +0200 --- gdb-7.5.50.20130215.orig/gdb/testsuite/gdb.base/corefile.exp 2013-01-01 07:33:25.000000000 +0100
+++ gdb-7.4.91.20120801/gdb/testsuite/gdb.base/corefile.exp 2012-08-01 18:37:44.602925650 +0200 +++ gdb-7.5.50.20130215/gdb/testsuite/gdb.base/corefile.exp 2013-02-15 22:35:03.290219872 +0100
@@ -256,3 +256,33 @@ if ![is_remote target] { @@ -256,3 +256,33 @@ if ![is_remote target] {
gdb_exit gdb_exit

View File

@ -21,11 +21,11 @@
Port to GDB-6.8pre. Port to GDB-6.8pre.
Index: gdb-7.4.50.20120714/gdb/inferior.h Index: gdb-7.5.50.20130215/gdb/inferior.h
=================================================================== ===================================================================
--- gdb-7.4.50.20120714.orig/gdb/inferior.h 2012-06-13 20:15:05.000000000 +0200 --- gdb-7.5.50.20130215.orig/gdb/inferior.h 2013-01-16 18:31:38.000000000 +0100
+++ gdb-7.4.50.20120714/gdb/inferior.h 2012-07-14 23:21:01.795161794 +0200 +++ gdb-7.5.50.20130215/gdb/inferior.h 2013-02-15 22:31:42.993944957 +0100
@@ -159,7 +159,15 @@ extern void reopen_exec_file (void); @@ -160,7 +160,15 @@ extern void reopen_exec_file (void);
/* The `resume' routine should only be called in special circumstances. /* The `resume' routine should only be called in special circumstances.
Normally, use `proceed', which handles a lot of bookkeeping. */ Normally, use `proceed', which handles a lot of bookkeeping. */
@ -42,11 +42,11 @@ Index: gdb-7.4.50.20120714/gdb/inferior.h
extern ptid_t user_visible_resume_ptid (int step); extern ptid_t user_visible_resume_ptid (int step);
Index: gdb-7.4.50.20120714/gdb/infrun.c Index: gdb-7.5.50.20130215/gdb/infrun.c
=================================================================== ===================================================================
--- gdb-7.4.50.20120714.orig/gdb/infrun.c 2012-07-01 12:37:04.000000000 +0200 --- gdb-7.5.50.20130215.orig/gdb/infrun.c 2013-01-31 20:18:58.000000000 +0100
+++ gdb-7.4.50.20120714/gdb/infrun.c 2012-07-14 23:21:01.800161767 +0200 +++ gdb-7.5.50.20130215/gdb/infrun.c 2013-02-15 22:34:07.132144519 +0100
@@ -79,7 +79,7 @@ static int follow_fork (void); @@ -81,7 +81,7 @@ static int follow_fork (void);
static void set_schedlock_func (char *args, int from_tty, static void set_schedlock_func (char *args, int from_tty,
struct cmd_list_element *c); struct cmd_list_element *c);
@ -55,7 +55,7 @@ Index: gdb-7.4.50.20120714/gdb/infrun.c
static int currently_stepping_or_nexting_callback (struct thread_info *tp, static int currently_stepping_or_nexting_callback (struct thread_info *tp,
void *data); void *data);
@@ -1672,7 +1672,8 @@ user_visible_resume_ptid (int step) @@ -1709,7 +1709,8 @@ user_visible_resume_ptid (int step)
} }
else if ((scheduler_mode == schedlock_on) else if ((scheduler_mode == schedlock_on)
|| (scheduler_mode == schedlock_step || (scheduler_mode == schedlock_step
@ -65,7 +65,7 @@ Index: gdb-7.4.50.20120714/gdb/infrun.c
{ {
/* User-settable 'scheduler' mode requires solo thread resume. */ /* User-settable 'scheduler' mode requires solo thread resume. */
resume_ptid = inferior_ptid; resume_ptid = inferior_ptid;
@@ -1690,7 +1691,7 @@ user_visible_resume_ptid (int step) @@ -1727,7 +1728,7 @@ user_visible_resume_ptid (int step)
STEP nonzero if we should step (zero to continue instead). STEP nonzero if we should step (zero to continue instead).
SIG is the signal to give the inferior (zero for none). */ SIG is the signal to give the inferior (zero for none). */
void void
@ -74,7 +74,7 @@ Index: gdb-7.4.50.20120714/gdb/infrun.c
{ {
int should_resume = 1; int should_resume = 1;
struct cleanup *old_cleanups = make_cleanup (resume_cleanups, 0); struct cleanup *old_cleanups = make_cleanup (resume_cleanups, 0);
@@ -1723,9 +1724,13 @@ resume (int step, enum gdb_signal sig) @@ -1760,9 +1761,13 @@ resume (int step, enum gdb_signal sig)
if (debug_infrun) if (debug_infrun)
fprintf_unfiltered (gdb_stdlog, fprintf_unfiltered (gdb_stdlog,
@ -90,48 +90,48 @@ Index: gdb-7.4.50.20120714/gdb/infrun.c
target_pid_to_str (inferior_ptid), target_pid_to_str (inferior_ptid),
paddress (gdbarch, pc)); paddress (gdbarch, pc));
@@ -2102,7 +2107,7 @@ proceed (CORE_ADDR addr, enum gdb_signal @@ -2140,7 +2145,7 @@ proceed (CORE_ADDR addr, enum gdb_signal
struct thread_info *tp;
CORE_ADDR pc; CORE_ADDR pc;
struct address_space *aspace; struct address_space *aspace;
- int oneproc = 0; /* GDB may force the inferior to step due to various reasons. */
- int force_step = 0;
+ enum resume_step resume_step = RESUME_STEP_CONTINUE; + enum resume_step resume_step = RESUME_STEP_CONTINUE;
/* If we're stopped at a fork/vfork, follow the branch set by the /* If we're stopped at a fork/vfork, follow the branch set by the
"set follow-fork-mode" command; otherwise, we'll just proceed "set follow-fork-mode" command; otherwise, we'll just proceed
@@ -2142,13 +2147,13 @@ proceed (CORE_ADDR addr, enum gdb_signal @@ -2180,13 +2185,13 @@ proceed (CORE_ADDR addr, enum gdb_signal
actually be executing the breakpoint insn anyway. actually be executing the breakpoint insn anyway.
We'll be (un-)executing the previous instruction. */ We'll be (un-)executing the previous instruction. */
- oneproc = 1; - force_step = 1;
+ resume_step = RESUME_STEP_USER; + resume_step = RESUME_STEP_USER;
else if (gdbarch_single_step_through_delay_p (gdbarch) else if (gdbarch_single_step_through_delay_p (gdbarch)
&& gdbarch_single_step_through_delay (gdbarch, && gdbarch_single_step_through_delay (gdbarch,
get_current_frame ())) get_current_frame ()))
/* We stepped onto an instruction that needs to be stepped /* We stepped onto an instruction that needs to be stepped
again before re-inserting the breakpoint, do so. */ again before re-inserting the breakpoint, do so. */
- oneproc = 1; - force_step = 1;
+ resume_step = RESUME_STEP_USER; + resume_step = RESUME_STEP_USER;
} }
else else
{ {
@@ -2179,13 +2184,13 @@ proceed (CORE_ADDR addr, enum gdb_signal @@ -2217,13 +2222,13 @@ proceed (CORE_ADDR addr, enum gdb_signal
is required it returns TRUE and sets the current thread to is required it returns TRUE and sets the current thread to
the old thread. */ the old thread. */
if (prepare_to_proceed (step)) if (prepare_to_proceed (step))
- oneproc = 1; - force_step = 1;
+ resume_step = RESUME_STEP_USER; + resume_step = RESUME_STEP_USER;
} }
/* prepare_to_proceed may change the current thread. */ /* prepare_to_proceed may change the current thread. */
tp = inferior_thread (); tp = inferior_thread ();
- if (oneproc) - if (force_step)
+ if (resume_step == RESUME_STEP_USER) + if (resume_step == RESUME_STEP_USER)
{ {
tp->control.trap_expected = 1; tp->control.trap_expected = 1;
/* If displaced stepping is enabled, we can step over the /* If displaced stepping is enabled, we can step over the
@@ -2272,8 +2277,13 @@ proceed (CORE_ADDR addr, enum gdb_signal @@ -2310,9 +2315,13 @@ proceed (CORE_ADDR addr, enum gdb_signal
/* Reset to normal state. */ /* Reset to normal state. */
init_infwait_state (); init_infwait_state ();
@ -141,12 +141,13 @@ Index: gdb-7.4.50.20120714/gdb/infrun.c
+ resume_step = RESUME_STEP_NEEDED; + resume_step = RESUME_STEP_NEEDED;
+ +
/* Resume inferior. */ /* Resume inferior. */
- resume (oneproc || step || bpstat_should_step (), tp->suspend.stop_signal); - resume (force_step || step || bpstat_should_step (),
- tp->suspend.stop_signal);
+ resume (resume_step, tp->suspend.stop_signal); + resume (resume_step, tp->suspend.stop_signal);
/* Wait for it to stop (if not standalone) /* Wait for it to stop (if not standalone)
and in any case decode why it stopped, and act accordingly. */ and in any case decode why it stopped, and act accordingly. */
@@ -5205,13 +5215,18 @@ process_event_stop_test: @@ -5247,13 +5256,18 @@ process_event_stop_test:
/* Is thread TP in the middle of single-stepping? */ /* Is thread TP in the middle of single-stepping? */
@ -170,11 +171,11 @@ Index: gdb-7.4.50.20120714/gdb/infrun.c
} }
/* Returns true if any thread *but* the one passed in "data" is in the /* Returns true if any thread *but* the one passed in "data" is in the
Index: gdb-7.4.50.20120714/gdb/linux-nat.c Index: gdb-7.5.50.20130215/gdb/linux-nat.c
=================================================================== ===================================================================
--- gdb-7.4.50.20120714.orig/gdb/linux-nat.c 2012-07-07 14:13:56.000000000 +0200 --- gdb-7.5.50.20130215.orig/gdb/linux-nat.c 2013-02-13 15:59:49.000000000 +0100
+++ gdb-7.4.50.20120714/gdb/linux-nat.c 2012-07-14 23:21:01.803161750 +0200 +++ gdb-7.5.50.20130215/gdb/linux-nat.c 2013-02-15 22:31:42.997944967 +0100
@@ -2982,7 +2982,11 @@ static int @@ -2971,7 +2971,11 @@ static int
select_singlestep_lwp_callback (struct lwp_info *lp, void *data) select_singlestep_lwp_callback (struct lwp_info *lp, void *data)
{ {
if (lp->last_resume_kind == resume_step if (lp->last_resume_kind == resume_step
@ -187,10 +188,10 @@ Index: gdb-7.4.50.20120714/gdb/linux-nat.c
return 1; return 1;
else else
return 0; return 0;
Index: gdb-7.4.50.20120714/gdb/linux-nat.h Index: gdb-7.5.50.20130215/gdb/linux-nat.h
=================================================================== ===================================================================
--- gdb-7.4.50.20120714.orig/gdb/linux-nat.h 2012-07-06 18:52:20.000000000 +0200 --- gdb-7.5.50.20130215.orig/gdb/linux-nat.h 2013-02-13 15:59:49.000000000 +0100
+++ gdb-7.4.50.20120714/gdb/linux-nat.h 2012-07-14 23:21:17.414075355 +0200 +++ gdb-7.5.50.20130215/gdb/linux-nat.h 2013-02-15 22:31:42.998944969 +0100
@@ -73,8 +73,8 @@ struct lwp_info @@ -73,8 +73,8 @@ struct lwp_info
/* If non-zero, a pending wait status. */ /* If non-zero, a pending wait status. */
int status; int status;

View File

@ -1,8 +1,8 @@
Index: gdb-7.4.50.20120703/gdb/linux-nat.c Index: gdb-7.5.50.20130215/gdb/linux-nat.c
=================================================================== ===================================================================
--- gdb-7.4.50.20120703.orig/gdb/linux-nat.c 2012-07-03 17:46:55.000000000 +0200 --- gdb-7.5.50.20130215.orig/gdb/linux-nat.c 2013-02-15 22:38:05.000000000 +0100
+++ gdb-7.4.50.20120703/gdb/linux-nat.c 2012-07-03 17:57:29.608734933 +0200 +++ gdb-7.5.50.20130215/gdb/linux-nat.c 2013-02-15 22:44:59.638985719 +0100
@@ -180,6 +180,9 @@ blocked. */ @@ -181,6 +181,9 @@ blocked. */
static struct target_ops *linux_ops; static struct target_ops *linux_ops;
static struct target_ops linux_ops_saved; static struct target_ops linux_ops_saved;
@ -12,7 +12,7 @@ Index: gdb-7.4.50.20120703/gdb/linux-nat.c
/* The method to call, if any, when a new thread is attached. */ /* The method to call, if any, when a new thread is attached. */
static void (*linux_nat_new_thread) (struct lwp_info *); static void (*linux_nat_new_thread) (struct lwp_info *);
@@ -909,7 +912,14 @@ holding the child stopped. Try \"set de @@ -914,7 +917,14 @@ holding the child stopped. Try \"set de
parent_inf->waiting_for_vfork_done = 0; parent_inf->waiting_for_vfork_done = 0;
} }
else if (detach_fork) else if (detach_fork)
@ -28,7 +28,7 @@ Index: gdb-7.4.50.20120703/gdb/linux-nat.c
/* Note that the detach above makes PARENT_INF dangling. */ /* Note that the detach above makes PARENT_INF dangling. */
@@ -1377,6 +1387,7 @@ linux_nat_post_attach_wait (ptid_t ptid, @@ -1362,6 +1372,7 @@ linux_nat_post_attach_wait (ptid_t ptid,
if (debug_linux_nat) if (debug_linux_nat)
fprintf_unfiltered (gdb_stdlog, fprintf_unfiltered (gdb_stdlog,
"LNPAW: Attaching to a stopped process\n"); "LNPAW: Attaching to a stopped process\n");
@ -36,7 +36,7 @@ Index: gdb-7.4.50.20120703/gdb/linux-nat.c
/* The process is definitely stopped. It is in a job control /* The process is definitely stopped. It is in a job control
stop, unless the kernel predates the TASK_STOPPED / stop, unless the kernel predates the TASK_STOPPED /
@@ -1805,6 +1816,9 @@ get_pending_status (struct lwp_info *lp, @@ -1790,6 +1801,9 @@ get_pending_status (struct lwp_info *lp,
gdb_signal_to_string (signo)); gdb_signal_to_string (signo));
} }
@ -46,7 +46,7 @@ Index: gdb-7.4.50.20120703/gdb/linux-nat.c
return 0; return 0;
} }
@@ -1918,6 +1932,8 @@ linux_nat_detach (struct target_ops *ops @@ -1900,6 +1914,8 @@ linux_nat_detach (struct target_ops *ops
} }
else else
linux_ops->to_detach (ops, args, from_tty); linux_ops->to_detach (ops, args, from_tty);
@ -55,7 +55,7 @@ Index: gdb-7.4.50.20120703/gdb/linux-nat.c
} }
/* Resume LP. */ /* Resume LP. */
@@ -2104,6 +2120,14 @@ linux_nat_resume (struct target_ops *ops @@ -2086,6 +2102,14 @@ linux_nat_resume (struct target_ops *ops
linux_nat_resume_callback. */ linux_nat_resume_callback. */
lp->stopped = 0; lp->stopped = 0;
@ -70,19 +70,19 @@ Index: gdb-7.4.50.20120703/gdb/linux-nat.c
if (resume_many) if (resume_many)
iterate_over_lwps (ptid, linux_nat_resume_callback, NULL); iterate_over_lwps (ptid, linux_nat_resume_callback, NULL);
@@ -4129,6 +4153,8 @@ linux_nat_mourn_inferior (struct target_ @@ -4137,6 +4161,8 @@ linux_nat_mourn_inferior (struct target_
there are other viable forks to debug. Delete the exiting
one and context-switch to the first available. */ /* Let the arch-specific native code know this process is gone. */
linux_fork_mourn_inferior (); linux_nat_forget_process (pid);
+ +
+ pid_was_stopped = 0; + pid_was_stopped = 0;
} }
/* Convert a native/host siginfo object, into/from the siginfo in the /* Convert a native/host siginfo object, into/from the siginfo in the
Index: gdb-7.4.50.20120703/gdb/testsuite/gdb.threads/attach-stopped.exp Index: gdb-7.5.50.20130215/gdb/testsuite/gdb.threads/attach-stopped.exp
=================================================================== ===================================================================
--- gdb-7.4.50.20120703.orig/gdb/testsuite/gdb.threads/attach-stopped.exp 2012-06-26 21:23:20.000000000 +0200 --- gdb-7.5.50.20130215.orig/gdb/testsuite/gdb.threads/attach-stopped.exp 2013-01-01 07:41:27.000000000 +0100
+++ gdb-7.4.50.20120703/gdb/testsuite/gdb.threads/attach-stopped.exp 2012-07-03 17:56:43.797790120 +0200 +++ gdb-7.5.50.20130215/gdb/testsuite/gdb.threads/attach-stopped.exp 2013-02-15 22:44:23.262930312 +0100
@@ -61,7 +61,65 @@ proc corefunc { threadtype } { @@ -61,7 +61,65 @@ proc corefunc { threadtype } {
gdb_reinitialize_dir $srcdir/$subdir gdb_reinitialize_dir $srcdir/$subdir
gdb_load ${binfile} gdb_load ${binfile}

View File

@ -1,280 +0,0 @@
Index: gdb-7.5.50.20130118/bfd/elf-bfd.h
===================================================================
--- gdb-7.5.50.20130118.orig/bfd/elf-bfd.h 2013-01-18 23:02:54.809004473 +0100
+++ gdb-7.5.50.20130118/bfd/elf-bfd.h 2013-01-18 23:02:59.316010755 +0100
@@ -2242,8 +2242,10 @@ extern Elf_Internal_Phdr * _bfd_elf_find
/* Exported interface for writing elf corefile notes. */
extern char *elfcore_write_note
(bfd *, char *, int *, const char *, int, const void *, int);
+struct elf_prpsinfo;
+typedef struct elf_prpsinfo prpsinfo_t;
extern char *elfcore_write_prpsinfo
- (bfd *, char *, int *, const char *, const char *);
+ (bfd *, char *, int *, const prpsinfo_t *);
extern char *elfcore_write_prstatus
(bfd *, char *, int *, long, int, const void *);
extern char * elfcore_write_pstatus
Index: gdb-7.5.50.20130118/bfd/elf.c
===================================================================
--- gdb-7.5.50.20130118.orig/bfd/elf.c 2013-01-18 23:02:54.812004479 +0100
+++ gdb-7.5.50.20130118/bfd/elf.c 2013-01-18 23:02:59.319010836 +0100
@@ -9103,56 +9103,61 @@ char *
elfcore_write_prpsinfo (bfd *abfd,
char *buf,
int *bufsiz,
- const char *fname,
- const char *psargs)
+ const prpsinfo_t *input)
{
const struct elf_backend_data *bed = get_elf_backend_data (abfd);
if (bed->elf_backend_write_core_note != NULL)
{
char *ret;
+ char fname[sizeof (input->pr_fname) + 1];
+ char psargs[sizeof (input->pr_psargs) + 1];
+
+ strncpy (fname, input->pr_fname, sizeof (input->pr_fname));
+ fname[sizeof (input->pr_fname)] = 0;
+ strncpy (psargs, input->pr_psargs, sizeof (input->pr_psargs));
+ psargs[sizeof (input->pr_psargs)] = 0;
+
ret = (*bed->elf_backend_write_core_note) (abfd, buf, bufsiz,
NT_PRPSINFO, fname, psargs);
if (ret != NULL)
return ret;
}
-#if defined (HAVE_PRPSINFO_T) || defined (HAVE_PSINFO_T)
-#if defined (HAVE_PRPSINFO32_T) || defined (HAVE_PSINFO32_T)
+#if defined (HAVE_PRPSINFO_T)
+#if defined (HAVE_PRPSINFO32_T)
if (bed->s->elfclass == ELFCLASS32)
{
-#if defined (HAVE_PSINFO32_T)
- psinfo32_t data;
- int note_type = NT_PSINFO;
-#else
prpsinfo32_t data;
int note_type = NT_PRPSINFO;
-#endif
- memset (&data, 0, sizeof (data));
- strncpy (data.pr_fname, fname, sizeof (data.pr_fname));
- strncpy (data.pr_psargs, psargs, sizeof (data.pr_psargs));
+ data.pr_state = input->pr_state;
+ data.pr_sname = input->pr_sname;
+ data.pr_zomb = input->pr_zomb;
+ data.pr_nice = input->pr_nice;
+ data.pr_flag = input->pr_flag;
+ data.pr_uid = input->pr_uid;
+ data.pr_gid = input->pr_gid;
+ data.pr_pid = input->pr_pid;
+ data.pr_ppid = input->pr_ppid;
+ data.pr_pgrp = input->pr_pgrp;
+ data.pr_sid = input->pr_sid;
+ BFD_ASSERT (sizeof (data.pr_fname) == sizeof (input->pr_fname));
+ memcpy (data.pr_fname, input->pr_fname, sizeof (data.pr_fname));
+ BFD_ASSERT (sizeof (data.pr_psargs) == sizeof (input->pr_psargs));
+ memcpy (data.pr_psargs, input->pr_psargs, sizeof (data.pr_psargs));
return elfcore_write_note (abfd, buf, bufsiz,
"CORE", note_type, &data, sizeof (data));
}
else
#endif
{
-#if defined (HAVE_PSINFO_T)
- psinfo_t data;
- int note_type = NT_PSINFO;
-#else
- prpsinfo_t data;
int note_type = NT_PRPSINFO;
-#endif
- memset (&data, 0, sizeof (data));
- strncpy (data.pr_fname, fname, sizeof (data.pr_fname));
- strncpy (data.pr_psargs, psargs, sizeof (data.pr_psargs));
return elfcore_write_note (abfd, buf, bufsiz,
- "CORE", note_type, &data, sizeof (data));
+ "CORE", note_type, input, sizeof (*input));
}
-#endif /* PSINFO_T or PRPSINFO_T */
+#endif /* PRPSINFO_T */
free (buf);
return NULL;
Index: gdb-7.5.50.20130118/gdb/procfs.c
===================================================================
--- gdb-7.5.50.20130118.orig/gdb/procfs.c 2013-01-18 23:02:54.815004487 +0100
+++ gdb-7.5.50.20130118/gdb/procfs.c 2013-01-18 23:02:59.320010861 +0100
@@ -5502,6 +5502,7 @@ procfs_make_note_section (bfd *obfd, int
note_data = (char *) elfcore_write_prpsinfo (obfd,
note_data,
note_size,
+ NULL,
fname,
psargs);
Index: gdb-7.5.50.20130118/gdb/linux-tdep.c
===================================================================
--- gdb-7.5.50.20130118.orig/gdb/linux-tdep.c 2013-01-18 23:02:54.816004489 +0100
+++ gdb-7.5.50.20130118/gdb/linux-tdep.c 2013-01-18 23:03:10.727027317 +0100
@@ -32,6 +32,7 @@
#include "cli/cli-utils.h"
#include "arch-utils.h"
#include "gdb_obstack.h"
+#include <sys/procfs.h>
#include <ctype.h>
@@ -1153,6 +1154,131 @@ linux_corefile_thread_callback (struct t
return !args->note_data;
}
+/* Should be always true for Linux */
+#define HAVE_PRPSINFO_T 1
+
+#if defined (HAVE_PRPSINFO_T)
+
+/* Fills struct elf_prpsinfo{32,64} as much as possible, imitate Linux kernel
+ binfmt_elf.c. Unknown values are filled with zeroes. The structure is
+ malloced. */
+
+static const prpsinfo_t *
+fill_prpsinfo (void)
+{
+ struct stat sb;
+ char filename[sizeof ("/proc//cmdline") + sizeof (int) * 3 + 2];
+ char buf[1024];
+ char proc_state[5];
+ char proc_cmdline[sizeof (((struct elf_prpsinfo*)0)->pr_psargs) + 1];
+ unsigned flags;
+ long proc_nice;
+ unsigned proc_ppid;
+ unsigned proc_pgid;
+ unsigned proc_sid;
+ pid_t pid;
+ int fd, n;
+ char *cp, *proc_comm, *state_s;
+ /* String comes from Linux kernel binfmt_elf.c FILL_PSINFO but it is already
+ obsolete there to <linux/sched.h> TASK_* constants. */
+ const char state_string[] = "RSDTZW";
+ int state_num;
+ static prpsinfo_t retval;
+
+ /* Get /proc/$PID/stat. */
+ pid = ptid_get_pid (inferior_ptid);
+ sprintf (filename, "/proc/%u/stat", (unsigned)pid);
+ fd = open (filename, O_RDONLY);
+ if (fd < 0)
+ return NULL;
+ fstat (fd, &sb); /* No error checking (can it ever happen?). */
+ n = read (fd, buf, sizeof (buf) - 1);
+ close (fd);
+ if (n < 0)
+ return NULL;
+ buf[n] = 0;
+
+ cp = strrchr (buf, ')'); /* Split into "PID (COMM" and "<rest>". */
+ if (!cp)
+ return NULL;
+ *cp = 0;
+
+ /* Grab COMM. */
+ proc_comm = strchr (buf, '(');
+ if (!proc_comm)
+ return NULL;
+ proc_comm++;
+
+ /* Read /proc/$PID/cmdline. */
+ proc_cmdline[0] = 0;
+ strcpy (strrchr (filename, '/'), "/cmdline");
+ fd = open (filename, O_RDONLY);
+ if (fd >= 0)
+ {
+ int n;
+
+ n = read (fd, proc_cmdline, sizeof (proc_cmdline) - 1);
+ if (n < 0)
+ n = 0;
+ proc_cmdline[n] = 0;
+ while (n--) /* Replace NULs with spaces. */
+ if (proc_cmdline[n] == 0)
+ proc_cmdline[n] = ' ';
+ close (fd);
+ }
+
+ /* Parse /proc/$PID/stat. */
+ n = sscanf (cp + 2, /* skip ") " */
+ "%4s %u " /* state, ppid */
+ "%u %u %*s %*s " /* pgid, sid, tty, tpgid */
+ "%u %*s %*s %*s " /* flags, min_flt, cmin_flt, maj_flt */
+ "%*s " /* cmaj_flt */
+ "%*s %*s " /* utime, stime */
+ "%*s %*s %*s " /* cutime, cstime, priority */
+ "%ld " /* nice */
+ /*"%*s %*s " timeout, it_real_value */
+ /*"%lu " start_time */
+ /*"%lu " vsize */
+ /*"%lu " rss */
+ /*"%lu %lu %lu " rss_rlim, start_code, end_code */
+ /*"%lu %lu %lu " start_stack, kstk_esp, kstk_eip */
+ /*"%u %u %u %u " signal, blocked, sigignore, sigcatch */
+ /*"%lu %lu %lu" wchan, nswap, cnswap */
+ , proc_state, &proc_ppid,
+ &proc_pgid, &proc_sid,
+ &flags,
+ &proc_nice);
+ if (n != 6)
+ return NULL;
+
+ state_s = strchr (state_string, proc_state[0]);
+ if (state_s != NULL)
+ state_num = state_s - state_string;
+ else
+ {
+ /* 0 means Running, some more unusal state would be better. */
+ state_num = 0;
+ }
+
+ memset (&retval, 0, sizeof (retval));
+ retval.pr_state = state_num;
+ retval.pr_sname = proc_state[0];
+ retval.pr_zomb = (proc_state[0] == 'Z');
+ retval.pr_nice = proc_nice;
+ retval.pr_flag = flags;
+ retval.pr_uid = sb.st_uid;
+ retval.pr_gid = sb.st_gid;
+ retval.pr_pid = pid;
+ retval.pr_ppid = proc_ppid;
+ retval.pr_pgrp = proc_pgid;
+ retval.pr_sid = proc_sid;
+ strncpy (retval.pr_fname, proc_comm, sizeof (retval.pr_fname));
+ strncpy (retval.pr_psargs, proc_cmdline, sizeof (retval.pr_psargs));
+
+ return &retval;
+}
+#endif
+
/* Fills the "to_make_corefile_note" target vector. Builds the note
section for a corefile, and returns it in a malloc buffer. */
@@ -1168,16 +1294,9 @@ linux_make_corefile_notes (struct gdbarc
/* Process information. */
if (get_exec_file (0))
{
- const char *fname = lbasename (get_exec_file (0));
- char *psargs = xstrdup (fname);
+ const prpsinfo_t *data = fill_prpsinfo ();
- if (get_inferior_args ())
- psargs = reconcat (psargs, psargs, " ", get_inferior_args (),
- (char *) NULL);
-
- note_data = elfcore_write_prpsinfo (obfd, note_data, note_size,
- fname, psargs);
- xfree (psargs);
+ note_data = elfcore_write_prpsinfo (obfd, note_data, note_size, data);
if (!note_data)
return NULL;

View File

@ -1,8 +1,8 @@
Index: gdb-7.5.50.20130118/gdb/breakpoint.c Index: gdb-7.5.50.20130215/gdb/breakpoint.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/breakpoint.c 2013-01-18 23:09:53.727597584 +0100 --- gdb-7.5.50.20130215.orig/gdb/breakpoint.c 2013-02-15 22:31:37.000000000 +0100
+++ gdb-7.5.50.20130118/gdb/breakpoint.c 2013-01-18 23:10:20.158635065 +0100 +++ gdb-7.5.50.20130215/gdb/breakpoint.c 2013-02-15 22:37:08.216381988 +0100
@@ -15993,6 +15993,50 @@ initialize_breakpoint_ops (void) @@ -16020,6 +16020,50 @@ initialize_breakpoint_ops (void)
static struct cmd_list_element *enablebreaklist = NULL; static struct cmd_list_element *enablebreaklist = NULL;
void void
@ -53,23 +53,23 @@ Index: gdb-7.5.50.20130118/gdb/breakpoint.c
_initialize_breakpoint (void) _initialize_breakpoint (void)
{ {
struct cmd_list_element *c; struct cmd_list_element *c;
Index: gdb-7.5.50.20130118/gdb/breakpoint.h Index: gdb-7.5.50.20130215/gdb/breakpoint.h
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/breakpoint.h 2013-01-18 23:09:51.671594585 +0100 --- gdb-7.5.50.20130215.orig/gdb/breakpoint.h 2013-02-03 16:57:06.000000000 +0100
+++ gdb-7.5.50.20130118/gdb/breakpoint.h 2013-01-18 23:09:53.728597586 +0100 +++ gdb-7.5.50.20130215/gdb/breakpoint.h 2013-02-15 22:37:19.025395693 +0100
@@ -1550,4 +1550,7 @@ extern struct gdbarch *get_sal_arch (str @@ -1556,4 +1556,7 @@ extern void handle_solib_event (void);
extern void handle_solib_event (void); extern void breakpoint_free_objfile (struct objfile *objfile);
+extern void breakpoints_relocate (struct objfile *objfile, +extern void breakpoints_relocate (struct objfile *objfile,
+ struct section_offsets *delta); + struct section_offsets *delta);
+ +
#endif /* !defined (BREAKPOINT_H) */ #endif /* !defined (BREAKPOINT_H) */
Index: gdb-7.5.50.20130118/gdb/objfiles.c Index: gdb-7.5.50.20130215/gdb/objfiles.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/objfiles.c 2013-01-18 23:09:51.671594585 +0100 --- gdb-7.5.50.20130215.orig/gdb/objfiles.c 2013-02-03 16:57:07.000000000 +0100
+++ gdb-7.5.50.20130118/gdb/objfiles.c 2013-01-18 23:09:53.729597588 +0100 +++ gdb-7.5.50.20130215/gdb/objfiles.c 2013-02-15 22:37:08.217381990 +0100
@@ -826,6 +826,11 @@ objfile_relocate1 (struct objfile *objfi @@ -831,6 +831,11 @@ objfile_relocate1 (struct objfile *objfi
objfile->sf->sym_probe_fns->sym_relocate_probe (objfile, objfile->sf->sym_probe_fns->sym_relocate_probe (objfile,
new_offsets, delta); new_offsets, delta);

View File

@ -2,7 +2,7 @@ http://sourceware.org/gdb/wiki/ProjectArcher
http://sourceware.org/gdb/wiki/ArcherBranchManagement http://sourceware.org/gdb/wiki/ArcherBranchManagement
GIT snapshot: GIT snapshot:
commit f1f762361e5e8a4fabdab16463ecb1fd9ba1e5e9 commit e72ce29f8e339fc6fffd73e9ff4b854b6f2f1452
branch `archer' - the merge of branches: branch `archer' - the merge of branches:
archer-jankratochvil-vla archer-jankratochvil-vla
@ -10,10 +10,10 @@ archer-tromey-python
diff --git a/gdb/Makefile.in b/gdb/Makefile.in diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index 7305e6d..fff8cb2 100644 index ed30db5..4356be7 100644
--- a/gdb/Makefile.in --- a/gdb/Makefile.in
+++ b/gdb/Makefile.in +++ b/gdb/Makefile.in
@@ -1308,6 +1308,12 @@ stamp-h: $(srcdir)/config.in config.status @@ -1313,6 +1313,12 @@ stamp-h: $(srcdir)/config.in config.status
CONFIG_LINKS= \ CONFIG_LINKS= \
$(SHELL) config.status $(SHELL) config.status
@ -27,10 +27,10 @@ index 7305e6d..fff8cb2 100644
$(SHELL) config.status --recheck $(SHELL) config.status --recheck
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index b4849a9..a6e6ca2 100644 index 634e761..60276dc 100644
--- a/gdb/ada-lang.c --- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c +++ b/gdb/ada-lang.c
@@ -12263,6 +12263,7 @@ ada_operator_length (const struct expression *exp, int pc, int *oplenp, @@ -12262,6 +12262,7 @@ ada_operator_length (const struct expression *exp, int pc, int *oplenp,
static int static int
ada_operator_check (struct expression *exp, int pos, ada_operator_check (struct expression *exp, int pos,
@ -38,7 +38,7 @@ index b4849a9..a6e6ca2 100644
int (*objfile_func) (struct objfile *objfile, void *data), int (*objfile_func) (struct objfile *objfile, void *data),
void *data) void *data)
{ {
@@ -12277,12 +12278,15 @@ ada_operator_check (struct expression *exp, int pos, @@ -12276,12 +12277,15 @@ ada_operator_check (struct expression *exp, int pos,
break; break;
default: default:
@ -94,10 +94,10 @@ index 02e7e8b..2931401 100644
+ +
#endif /* BLOCK_H */ #endif /* BLOCK_H */
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index 3ad9885..e28b44e 100644 index fb57a57..5c03b1c 100644
--- a/gdb/breakpoint.c --- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c +++ b/gdb/breakpoint.c
@@ -15641,6 +15641,24 @@ all_tracepoints (void) @@ -15656,6 +15656,24 @@ all_tracepoints (void)
return tp_vec; return tp_vec;
} }
@ -122,7 +122,7 @@ index 3ad9885..e28b44e 100644
/* This help string is used for the break, hbreak, tbreak and thbreak /* This help string is used for the break, hbreak, tbreak and thbreak
commands. It is defined as a macro to prevent duplication. commands. It is defined as a macro to prevent duplication.
@@ -16612,4 +16630,7 @@ agent-printf \"printf format string\", arg1, arg2, arg3, ..., argn\n\ @@ -16639,4 +16657,7 @@ agent-printf \"printf format string\", arg1, arg2, arg3, ..., argn\n\
automatic_hardware_breakpoints = 1; automatic_hardware_breakpoints = 1;
observer_attach_about_to_proceed (breakpoint_about_to_proceed); observer_attach_about_to_proceed (breakpoint_about_to_proceed);
@ -131,10 +131,10 @@ index 3ad9885..e28b44e 100644
+#endif +#endif
} }
diff --git a/gdb/c-typeprint.c b/gdb/c-typeprint.c diff --git a/gdb/c-typeprint.c b/gdb/c-typeprint.c
index a6db162..ddfc6a9 100644 index ca8d89b..811ad72 100644
--- a/gdb/c-typeprint.c --- a/gdb/c-typeprint.c
+++ b/gdb/c-typeprint.c +++ b/gdb/c-typeprint.c
@@ -692,7 +692,13 @@ c_type_print_varspec_suffix (struct type *type, @@ -689,7 +689,13 @@ c_type_print_varspec_suffix (struct type *type,
fprintf_filtered (stream, (is_vector ? fprintf_filtered (stream, (is_vector ?
" __attribute__ ((vector_size(" : "[")); " __attribute__ ((vector_size(" : "["));
@ -187,7 +187,7 @@ index d98ac77..e248399 100644
FLAGS_TO_PASS = \ FLAGS_TO_PASS = \
"prefix=$(prefix)" \ "prefix=$(prefix)" \
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index 728e44b..3659139 100644 index e8ac8c5..b18ccd6 100644
--- a/gdb/doc/gdb.texinfo --- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo
@@ -1217,6 +1217,16 @@ for remote debugging. @@ -1217,6 +1217,16 @@ for remote debugging.
@ -207,7 +207,7 @@ index 728e44b..3659139 100644
@c resolve the situation of these eventually @c resolve the situation of these eventually
@item -tui @item -tui
@cindex @code{--tui} @cindex @code{--tui}
@@ -22738,8 +22748,6 @@ containing @code{end}. For example: @@ -22786,8 +22796,6 @@ containing @code{end}. For example:
@smallexample @smallexample
(@value{GDBP}) python (@value{GDBP}) python
@ -216,7 +216,7 @@ index 728e44b..3659139 100644
>print 23 >print 23
>end >end
23 23
@@ -22753,6 +22761,14 @@ controlled using @code{set python print-stack}: if @code{full}, then @@ -22801,6 +22809,14 @@ controlled using @code{set python print-stack}: if @code{full}, then
full Python stack printing is enabled; if @code{none}, then Python stack full Python stack printing is enabled; if @code{none}, then Python stack
and message printing is disabled; if @code{message}, the default, only and message printing is disabled; if @code{message}, the default, only
the message component of the error is printed. the message component of the error is printed.
@ -231,7 +231,7 @@ index 728e44b..3659139 100644
@end table @end table
It is also possible to execute a Python script from the @value{GDBN} It is also possible to execute a Python script from the @value{GDBN}
@@ -22774,6 +22790,14 @@ and thus is always available. @@ -22822,6 +22838,14 @@ and thus is always available.
@cindex python api @cindex python api
@cindex programming in python @cindex programming in python
@ -376,11 +376,11 @@ index 4a75c26..91446fe 100644
@node Language Support @node Language Support
diff --git a/gdb/doc/observer.texi b/gdb/doc/observer.texi diff --git a/gdb/doc/observer.texi b/gdb/doc/observer.texi
index 87c08e1..cc8f498 100644 index adb7085..5ec5b5a 100644
--- a/gdb/doc/observer.texi --- a/gdb/doc/observer.texi
+++ b/gdb/doc/observer.texi +++ b/gdb/doc/observer.texi
@@ -246,6 +246,11 @@ The trace state variable @var{name} is deleted. If @var{name} is @@ -249,6 +249,11 @@ The trace state variable @var{tsv} is deleted. If @var{tsv} is
@code{NULL}, all trace state variables are deleted. The trace state value @var{tsv} is modified.
@end deftypefun @end deftypefun
+@c @deftypefun void mark_used (void) +@c @deftypefun void mark_used (void)
@ -428,10 +428,10 @@ index e85486a..e7ac799 100644
/* The location of a value. */ /* The location of a value. */
diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c
index 2282feb..13e7bbc 100644 index 002387e..2e0e722 100644
--- a/gdb/dwarf2loc.c --- a/gdb/dwarf2loc.c
+++ b/gdb/dwarf2loc.c +++ b/gdb/dwarf2loc.c
@@ -293,6 +293,9 @@ struct dwarf_expr_baton @@ -298,6 +298,9 @@ struct dwarf_expr_baton
{ {
struct frame_info *frame; struct frame_info *frame;
struct dwarf2_per_cu_data *per_cu; struct dwarf2_per_cu_data *per_cu;
@ -441,7 +441,7 @@ index 2282feb..13e7bbc 100644
}; };
/* Helper functions for dwarf2_evaluate_loc_desc. */ /* Helper functions for dwarf2_evaluate_loc_desc. */
@@ -356,16 +359,14 @@ static void @@ -361,16 +364,14 @@ static void
dwarf_expr_frame_base_1 (struct symbol *framefunc, CORE_ADDR pc, dwarf_expr_frame_base_1 (struct symbol *framefunc, CORE_ADDR pc,
const gdb_byte **start, size_t *length) const gdb_byte **start, size_t *length)
{ {
@ -460,7 +460,7 @@ index 2282feb..13e7bbc 100644
{ {
struct dwarf2_locexpr_baton *symbaton; struct dwarf2_locexpr_baton *symbaton;
@@ -378,10 +379,23 @@ dwarf_expr_frame_base_1 (struct symbol *framefunc, CORE_ADDR pc, @@ -383,10 +384,23 @@ dwarf_expr_frame_base_1 (struct symbol *framefunc, CORE_ADDR pc,
else else
*length = 0; *length = 0;
} }
@ -485,7 +485,7 @@ index 2282feb..13e7bbc 100644
} }
/* Helper function for dwarf2_evaluate_loc_desc. Computes the CFA for /* Helper function for dwarf2_evaluate_loc_desc. Computes the CFA for
@@ -448,6 +462,85 @@ dwarf_expr_dwarf_call (struct dwarf_expr_context *ctx, cu_offset die_offset) @@ -453,6 +467,85 @@ dwarf_expr_dwarf_call (struct dwarf_expr_context *ctx, cu_offset die_offset)
ctx->funcs->get_frame_pc, ctx->baton); ctx->funcs->get_frame_pc, ctx->baton);
} }
@ -571,7 +571,7 @@ index 2282feb..13e7bbc 100644
/* Callback function for dwarf2_evaluate_loc_desc. */ /* Callback function for dwarf2_evaluate_loc_desc. */
static struct type * static struct type *
@@ -1150,10 +1243,12 @@ dwarf_expr_push_dwarf_reg_entry_value (struct dwarf_expr_context *ctx, @@ -1155,10 +1248,12 @@ dwarf_expr_push_dwarf_reg_entry_value (struct dwarf_expr_context *ctx,
saved_ctx.gdbarch = ctx->gdbarch; saved_ctx.gdbarch = ctx->gdbarch;
saved_ctx.addr_size = ctx->addr_size; saved_ctx.addr_size = ctx->addr_size;
@ -584,7 +584,7 @@ index 2282feb..13e7bbc 100644
ctx->offset = dwarf2_per_cu_text_offset (baton_local.per_cu); ctx->offset = dwarf2_per_cu_text_offset (baton_local.per_cu);
ctx->baton = &baton_local; ctx->baton = &baton_local;
@@ -1161,10 +1256,95 @@ dwarf_expr_push_dwarf_reg_entry_value (struct dwarf_expr_context *ctx, @@ -1166,10 +1261,95 @@ dwarf_expr_push_dwarf_reg_entry_value (struct dwarf_expr_context *ctx,
ctx->gdbarch = saved_ctx.gdbarch; ctx->gdbarch = saved_ctx.gdbarch;
ctx->addr_size = saved_ctx.addr_size; ctx->addr_size = saved_ctx.addr_size;
@ -680,7 +680,7 @@ index 2282feb..13e7bbc 100644
/* Callback function for dwarf2_evaluate_loc_desc. /* Callback function for dwarf2_evaluate_loc_desc.
Fetch the address indexed by DW_OP_GNU_addr_index. */ Fetch the address indexed by DW_OP_GNU_addr_index. */
@@ -2100,22 +2280,6 @@ invalid_synthetic_pointer (void) @@ -2105,22 +2285,6 @@ invalid_synthetic_pointer (void)
"referenced via synthetic pointer")); "referenced via synthetic pointer"));
} }
@ -703,7 +703,7 @@ index 2282feb..13e7bbc 100644
/* Evaluate a location description, starting at DATA and with length /* Evaluate a location description, starting at DATA and with length
SIZE, to find the current location of variable of TYPE in the SIZE, to find the current location of variable of TYPE in the
context of FRAME. BYTE_OFFSET is applied after the contents are context of FRAME. BYTE_OFFSET is applied after the contents are
@@ -2128,7 +2292,6 @@ dwarf2_evaluate_loc_desc_full (struct type *type, struct frame_info *frame, @@ -2133,7 +2297,6 @@ dwarf2_evaluate_loc_desc_full (struct type *type, struct frame_info *frame,
LONGEST byte_offset) LONGEST byte_offset)
{ {
struct value *retval; struct value *retval;
@ -711,7 +711,7 @@ index 2282feb..13e7bbc 100644
struct dwarf_expr_context *ctx; struct dwarf_expr_context *ctx;
struct cleanup *old_chain, *value_chain; struct cleanup *old_chain, *value_chain;
struct objfile *objfile = dwarf2_per_cu_objfile (per_cu); struct objfile *objfile = dwarf2_per_cu_objfile (per_cu);
@@ -2140,29 +2303,18 @@ dwarf2_evaluate_loc_desc_full (struct type *type, struct frame_info *frame, @@ -2145,29 +2308,18 @@ dwarf2_evaluate_loc_desc_full (struct type *type, struct frame_info *frame,
if (size == 0) if (size == 0)
return allocate_optimized_out_value (type); return allocate_optimized_out_value (type);
@ -742,7 +742,7 @@ index 2282feb..13e7bbc 100644
retval = allocate_value (type); retval = allocate_value (type);
mark_value_bytes_unavailable (retval, 0, TYPE_LENGTH (type)); mark_value_bytes_unavailable (retval, 0, TYPE_LENGTH (type));
return retval; return retval;
@@ -2226,6 +2378,16 @@ dwarf2_evaluate_loc_desc_full (struct type *type, struct frame_info *frame, @@ -2231,6 +2383,16 @@ dwarf2_evaluate_loc_desc_full (struct type *type, struct frame_info *frame,
int in_stack_memory = dwarf_expr_fetch_in_stack_memory (ctx, 0); int in_stack_memory = dwarf_expr_fetch_in_stack_memory (ctx, 0);
do_cleanups (value_chain); do_cleanups (value_chain);
@ -759,7 +759,7 @@ index 2282feb..13e7bbc 100644
retval = allocate_value_lazy (type); retval = allocate_value_lazy (type);
VALUE_LVAL (retval) = lval_memory; VALUE_LVAL (retval) = lval_memory;
if (in_stack_memory) if (in_stack_memory)
@@ -4143,8 +4305,7 @@ loclist_tracepoint_var_ref (struct symbol *symbol, struct gdbarch *gdbarch, @@ -4147,8 +4309,7 @@ loclist_tracepoint_var_ref (struct symbol *symbol, struct gdbarch *gdbarch,
dlbaton->per_cu); dlbaton->per_cu);
} }
@ -769,7 +769,7 @@ index 2282feb..13e7bbc 100644
const struct symbol_computed_ops dwarf2_loclist_funcs = { const struct symbol_computed_ops dwarf2_loclist_funcs = {
loclist_read_variable, loclist_read_variable,
loclist_read_variable_at_entry, loclist_read_variable_at_entry,
@@ -4153,6 +4314,48 @@ const struct symbol_computed_ops dwarf2_loclist_funcs = { @@ -4157,6 +4318,48 @@ const struct symbol_computed_ops dwarf2_loclist_funcs = {
loclist_tracepoint_var_ref loclist_tracepoint_var_ref
}; };
@ -839,10 +839,10 @@ index 36641b3..1394578 100644
/* Compile a DWARF location expression to an agent expression. /* Compile a DWARF location expression to an agent expression.
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index 7a58c45..98aebad 100644 index d26e7c8..9fbe61e 100644
--- a/gdb/dwarf2read.c --- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c
@@ -1613,6 +1613,9 @@ static void fill_in_loclist_baton (struct dwarf2_cu *cu, @@ -1624,6 +1624,9 @@ static void fill_in_loclist_baton (struct dwarf2_cu *cu,
struct dwarf2_loclist_baton *baton, struct dwarf2_loclist_baton *baton,
struct attribute *attr); struct attribute *attr);
@ -852,7 +852,7 @@ index 7a58c45..98aebad 100644
static void dwarf2_symbol_mark_computed (struct attribute *attr, static void dwarf2_symbol_mark_computed (struct attribute *attr,
struct symbol *sym, struct symbol *sym,
struct dwarf2_cu *cu); struct dwarf2_cu *cu);
@@ -1645,6 +1648,9 @@ static void age_cached_comp_units (void); @@ -1656,6 +1659,9 @@ static void age_cached_comp_units (void);
static void free_one_cached_comp_unit (struct dwarf2_per_cu_data *); static void free_one_cached_comp_unit (struct dwarf2_per_cu_data *);
@ -862,7 +862,7 @@ index 7a58c45..98aebad 100644
static struct type *set_die_type (struct die_info *, struct type *, static struct type *set_die_type (struct die_info *, struct type *,
struct dwarf2_cu *); struct dwarf2_cu *);
@@ -1673,6 +1679,9 @@ static struct type *get_die_type_at_offset (sect_offset, @@ -1684,6 +1690,9 @@ static struct type *get_die_type_at_offset (sect_offset,
static struct type *get_die_type (struct die_info *die, struct dwarf2_cu *cu); static struct type *get_die_type (struct die_info *die, struct dwarf2_cu *cu);
@ -872,7 +872,7 @@ index 7a58c45..98aebad 100644
static void dwarf2_release_queue (void *dummy); static void dwarf2_release_queue (void *dummy);
static void queue_comp_unit (struct dwarf2_per_cu_data *per_cu, static void queue_comp_unit (struct dwarf2_per_cu_data *per_cu,
@@ -11677,6 +11686,29 @@ process_enumeration_scope (struct die_info *die, struct dwarf2_cu *cu) @@ -11702,6 +11711,29 @@ process_enumeration_scope (struct die_info *die, struct dwarf2_cu *cu)
new_symbol (die, this_type, cu); new_symbol (die, this_type, cu);
} }
@ -902,16 +902,16 @@ index 7a58c45..98aebad 100644
/* Extract all information from a DW_TAG_array_type DIE and put it in /* Extract all information from a DW_TAG_array_type DIE and put it in
the DIE's type field. For now, this only handles one dimensional the DIE's type field. For now, this only handles one dimensional
arrays. */ arrays. */
@@ -11690,7 +11722,7 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu) @@ -11715,7 +11747,7 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu)
struct type *element_type, *range_type, *index_type; struct type *element_type, *range_type, *index_type;
struct type **range_types = NULL; struct type **range_types = NULL;
struct attribute *attr; struct attribute *attr;
- int ndim = 0; - int ndim = 0;
+ int ndim = 0, i; + int ndim = 0, i;
struct cleanup *back_to; struct cleanup *back_to;
char *name; const char *name;
@@ -11743,17 +11775,19 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu) @@ -11768,17 +11800,19 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu)
type = element_type; type = element_type;
if (read_array_order (die, cu) == DW_ORD_col_major) if (read_array_order (die, cu) == DW_ORD_col_major)
@ -942,7 +942,7 @@ index 7a58c45..98aebad 100644
/* Understand Dwarf2 support for vector types (like they occur on /* Understand Dwarf2 support for vector types (like they occur on
the PowerPC w/ AltiVec). Gcc just adds another attribute to the the PowerPC w/ AltiVec). Gcc just adds another attribute to the
@@ -12379,29 +12413,114 @@ read_tag_string_type (struct die_info *die, struct dwarf2_cu *cu) @@ -12413,29 +12447,114 @@ read_tag_string_type (struct die_info *die, struct dwarf2_cu *cu)
struct gdbarch *gdbarch = get_objfile_arch (objfile); struct gdbarch *gdbarch = get_objfile_arch (objfile);
struct type *type, *range_type, *index_type, *char_type; struct type *type, *range_type, *index_type, *char_type;
struct attribute *attr; struct attribute *attr;
@ -1070,16 +1070,16 @@ index 7a58c45..98aebad 100644
char_type = language_string_char_type (cu->language_defn, gdbarch); char_type = language_string_char_type (cu->language_defn, gdbarch);
type = create_string_type (NULL, char_type, range_type); type = create_string_type (NULL, char_type, range_type);
@@ -12705,7 +12824,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) @@ -12739,7 +12858,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
struct type *base_type; struct type *base_type;
struct type *range_type; struct type *range_type;
struct attribute *attr; struct attribute *attr;
- LONGEST low, high; - LONGEST low, high;
+ LONGEST low; + LONGEST low;
int low_default_is_valid; int low_default_is_valid;
char *name; const char *name;
LONGEST negative_mask; LONGEST negative_mask;
@@ -12761,42 +12880,6 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) @@ -12795,42 +12914,6 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
"- DIE at 0x%x [in module %s]"), "- DIE at 0x%x [in module %s]"),
die->offset.sect_off, cu->objfile->name); die->offset.sect_off, cu->objfile->name);
@ -1122,7 +1122,7 @@ index 7a58c45..98aebad 100644
/* Dwarf-2 specifications explicitly allows to create subrange types /* Dwarf-2 specifications explicitly allows to create subrange types
without specifying a base type. without specifying a base type.
In that case, the base type must be set to the type of In that case, the base type must be set to the type of
@@ -12835,24 +12918,163 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) @@ -12869,24 +12952,163 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
} }
} }
@ -1300,7 +1300,7 @@ index 7a58c45..98aebad 100644
name = dwarf2_name (die, cu); name = dwarf2_name (die, cu);
if (name) if (name)
@@ -15712,10 +15934,12 @@ var_decode_location (struct attribute *attr, struct symbol *sym, @@ -15746,10 +15968,12 @@ var_decode_location (struct attribute *attr, struct symbol *sym,
(i.e. when the value of a register or memory location is (i.e. when the value of a register or memory location is
referenced, or a thread-local block, etc.). Then again, it might referenced, or a thread-local block, etc.). Then again, it might
not be worthwhile. I'm assuming that it isn't unless performance not be worthwhile. I'm assuming that it isn't unless performance
@ -1315,7 +1315,7 @@ index 7a58c45..98aebad 100644
if (SYMBOL_COMPUTED_OPS (sym) == &dwarf2_loclist_funcs) if (SYMBOL_COMPUTED_OPS (sym) == &dwarf2_loclist_funcs)
cu->has_loclist = 1; cu->has_loclist = 1;
@@ -15756,6 +15980,8 @@ new_symbol_full (struct die_info *die, struct type *type, struct dwarf2_cu *cu, @@ -15790,6 +16014,8 @@ new_symbol_full (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
else else
sym = OBSTACK_ZALLOC (&objfile->objfile_obstack, struct symbol); sym = OBSTACK_ZALLOC (&objfile->objfile_obstack, struct symbol);
OBJSTAT (objfile, n_syms++); OBJSTAT (objfile, n_syms++);
@ -1324,7 +1324,7 @@ index 7a58c45..98aebad 100644
/* Cache this symbol's name and the name's demangled form (if any). */ /* Cache this symbol's name and the name's demangled form (if any). */
SYMBOL_SET_LANGUAGE (sym, cu->language); SYMBOL_SET_LANGUAGE (sym, cu->language);
@@ -16565,6 +16791,9 @@ read_type_die_1 (struct die_info *die, struct dwarf2_cu *cu) @@ -16599,6 +16825,9 @@ read_type_die_1 (struct die_info *die, struct dwarf2_cu *cu)
break; break;
} }
@ -1334,7 +1334,7 @@ index 7a58c45..98aebad 100644
return this_type; return this_type;
} }
@@ -18999,62 +19228,100 @@ fill_in_loclist_baton (struct dwarf2_cu *cu, @@ -19043,62 +19272,100 @@ fill_in_loclist_baton (struct dwarf2_cu *cu,
baton->from_dwo = cu->dwo_unit != NULL; baton->from_dwo = cu->dwo_unit != NULL;
} }
@ -1473,7 +1473,7 @@ index 7a58c45..98aebad 100644
} }
} }
@@ -19425,6 +19692,25 @@ per_cu_offset_and_type_eq (const void *item_lhs, const void *item_rhs) @@ -19469,6 +19736,25 @@ per_cu_offset_and_type_eq (const void *item_lhs, const void *item_rhs)
&& ofs_lhs->offset.sect_off == ofs_rhs->offset.sect_off); && ofs_lhs->offset.sect_off == ofs_rhs->offset.sect_off);
} }
@ -1499,7 +1499,7 @@ index 7a58c45..98aebad 100644
/* Set the type associated with DIE to TYPE. Save it in CU's hash /* Set the type associated with DIE to TYPE. Save it in CU's hash
table if necessary. For convenience, return TYPE. table if necessary. For convenience, return TYPE.
@@ -19449,6 +19735,8 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu) @@ -19493,6 +19779,8 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
struct dwarf2_per_cu_offset_and_type **slot, ofs; struct dwarf2_per_cu_offset_and_type **slot, ofs;
struct objfile *objfile = cu->objfile; struct objfile *objfile = cu->objfile;
@ -1509,7 +1509,7 @@ index 7a58c45..98aebad 100644
initialized (if not already set). There are a few types where initialized (if not already set). There are a few types where
we should not be doing so, because the type-specific area is we should not be doing so, because the type-specific area is
diff --git a/gdb/eval.c b/gdb/eval.c diff --git a/gdb/eval.c b/gdb/eval.c
index c9630df..b797189 100644 index d7f80e2..8eca4c8 100644
--- a/gdb/eval.c --- a/gdb/eval.c
+++ b/gdb/eval.c +++ b/gdb/eval.c
@@ -41,6 +41,7 @@ @@ -41,6 +41,7 @@
@ -1762,7 +1762,7 @@ index c9630df..b797189 100644
pc = (*pos)++; pc = (*pos)++;
op = exp->elts[pc].opcode; op = exp->elts[pc].opcode;
@@ -1779,6 +1971,8 @@ evaluate_subexp_standard (struct type *expect_type, @@ -1776,6 +1968,8 @@ evaluate_subexp_standard (struct type *expect_type,
/* First determine the type code we are dealing with. */ /* First determine the type code we are dealing with. */
arg1 = evaluate_subexp (NULL_TYPE, exp, pos, noside); arg1 = evaluate_subexp (NULL_TYPE, exp, pos, noside);
@ -1771,7 +1771,7 @@ index c9630df..b797189 100644
type = check_typedef (value_type (arg1)); type = check_typedef (value_type (arg1));
code = TYPE_CODE (type); code = TYPE_CODE (type);
@@ -1799,23 +1993,13 @@ evaluate_subexp_standard (struct type *expect_type, @@ -1796,23 +1990,13 @@ evaluate_subexp_standard (struct type *expect_type,
code = TYPE_CODE (type); code = TYPE_CODE (type);
} }
} }
@ -1797,7 +1797,7 @@ index c9630df..b797189 100644
case TYPE_CODE_PTR: case TYPE_CODE_PTR:
case TYPE_CODE_FUNC: case TYPE_CODE_FUNC:
@@ -2242,49 +2426,6 @@ evaluate_subexp_standard (struct type *expect_type, @@ -2239,49 +2423,6 @@ evaluate_subexp_standard (struct type *expect_type,
} }
return (arg1); return (arg1);
@ -1847,7 +1847,7 @@ index c9630df..b797189 100644
case BINOP_LOGICAL_AND: case BINOP_LOGICAL_AND:
arg1 = evaluate_subexp (NULL_TYPE, exp, pos, noside); arg1 = evaluate_subexp (NULL_TYPE, exp, pos, noside);
if (noside == EVAL_SKIP) if (noside == EVAL_SKIP)
@@ -2516,15 +2657,23 @@ evaluate_subexp_standard (struct type *expect_type, @@ -2513,15 +2654,23 @@ evaluate_subexp_standard (struct type *expect_type,
if (expect_type && TYPE_CODE (expect_type) == TYPE_CODE_PTR) if (expect_type && TYPE_CODE (expect_type) == TYPE_CODE_PTR)
expect_type = TYPE_TARGET_TYPE (check_typedef (expect_type)); expect_type = TYPE_TARGET_TYPE (check_typedef (expect_type));
arg1 = evaluate_subexp (expect_type, exp, pos, noside); arg1 = evaluate_subexp (expect_type, exp, pos, noside);
@ -1873,7 +1873,7 @@ index c9630df..b797189 100644
else if (noside == EVAL_AVOID_SIDE_EFFECTS) else if (noside == EVAL_AVOID_SIDE_EFFECTS)
{ {
type = check_typedef (value_type (arg1)); type = check_typedef (value_type (arg1));
@@ -2533,12 +2682,18 @@ evaluate_subexp_standard (struct type *expect_type, @@ -2530,12 +2679,18 @@ evaluate_subexp_standard (struct type *expect_type,
/* In C you can dereference an array to get the 1st elt. */ /* In C you can dereference an array to get the 1st elt. */
|| TYPE_CODE (type) == TYPE_CODE_ARRAY || TYPE_CODE (type) == TYPE_CODE_ARRAY
) )
@ -1897,7 +1897,7 @@ index c9630df..b797189 100644
else else
error (_("Attempt to take contents of a non-pointer value.")); error (_("Attempt to take contents of a non-pointer value."));
} }
@@ -2548,9 +2703,14 @@ evaluate_subexp_standard (struct type *expect_type, @@ -2545,9 +2700,14 @@ evaluate_subexp_standard (struct type *expect_type,
do. "long long" variables are rare enough that do. "long long" variables are rare enough that
BUILTIN_TYPE_LONGEST would seem to be a mistake. */ BUILTIN_TYPE_LONGEST would seem to be a mistake. */
if (TYPE_CODE (type) == TYPE_CODE_INT) if (TYPE_CODE (type) == TYPE_CODE_INT)
@ -1915,7 +1915,7 @@ index c9630df..b797189 100644
case UNOP_ADDR: case UNOP_ADDR:
/* C++: check for and handle pointer to members. */ /* C++: check for and handle pointer to members. */
@@ -2963,7 +3123,7 @@ evaluate_subexp_with_coercion (struct expression *exp, @@ -2960,7 +3120,7 @@ evaluate_subexp_with_coercion (struct expression *exp,
{ {
enum exp_opcode op; enum exp_opcode op;
int pc; int pc;
@ -1924,7 +1924,7 @@ index c9630df..b797189 100644
struct symbol *var; struct symbol *var;
struct type *type; struct type *type;
@@ -2974,13 +3134,18 @@ evaluate_subexp_with_coercion (struct expression *exp, @@ -2971,13 +3131,18 @@ evaluate_subexp_with_coercion (struct expression *exp,
{ {
case OP_VAR_VALUE: case OP_VAR_VALUE:
var = exp->elts[pc + 2].symbol; var = exp->elts[pc + 2].symbol;
@ -1944,7 +1944,7 @@ index c9630df..b797189 100644
return value_cast (lookup_pointer_type (TYPE_TARGET_TYPE (type)), return value_cast (lookup_pointer_type (TYPE_TARGET_TYPE (type)),
val); val);
} }
@@ -3038,9 +3203,13 @@ evaluate_subexp_for_sizeof (struct expression *exp, int *pos) @@ -3035,9 +3200,13 @@ evaluate_subexp_for_sizeof (struct expression *exp, int *pos)
case OP_VAR_VALUE: case OP_VAR_VALUE:
(*pos) += 4; (*pos) += 4;
@ -1961,7 +1961,7 @@ index c9630df..b797189 100644
default: default:
val = evaluate_subexp (NULL_TYPE, exp, pos, EVAL_AVOID_SIDE_EFFECTS); val = evaluate_subexp (NULL_TYPE, exp, pos, EVAL_AVOID_SIDE_EFFECTS);
@@ -3071,18 +3240,25 @@ parse_and_eval_type (char *p, int length) @@ -3068,18 +3237,25 @@ parse_and_eval_type (char *p, int length)
int int
calc_f77_array_dims (struct type *array_type) calc_f77_array_dims (struct type *array_type)
{ {
@ -2096,7 +2096,7 @@ index aa33231..df998c4 100644
{ {
case TYPE_CODE_ARRAY: case TYPE_CODE_ARRAY:
diff --git a/gdb/f-valprint.c b/gdb/f-valprint.c diff --git a/gdb/f-valprint.c b/gdb/f-valprint.c
index 22cca83..b2a2cc3 100644 index d01d6ec..8a21149 100644
--- a/gdb/f-valprint.c --- a/gdb/f-valprint.c
+++ b/gdb/f-valprint.c +++ b/gdb/f-valprint.c
@@ -51,15 +51,17 @@ int f77_array_offset_tbl[MAX_FORTRAN_DIMS + 1][2]; @@ -51,15 +51,17 @@ int f77_array_offset_tbl[MAX_FORTRAN_DIMS + 1][2];
@ -2382,7 +2382,7 @@ index ffb7f53..a2e7e94 100644
b internal_error b internal_error
diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
index 5885241..a3db66a 100644 index 12730d7..5a614e0 100644
--- a/gdb/gdbtypes.c --- a/gdb/gdbtypes.c
+++ b/gdb/gdbtypes.c +++ b/gdb/gdbtypes.c
@@ -37,6 +37,9 @@ @@ -37,6 +37,9 @@
@ -2709,7 +2709,7 @@ index 5885241..a3db66a 100644
} }
type = make_qualified_type (type, instance_flags, NULL); type = make_qualified_type (type, instance_flags, NULL);
@@ -3387,33 +3522,42 @@ type_pair_eq (const void *item_lhs, const void *item_rhs) @@ -3384,33 +3519,42 @@ type_pair_eq (const void *item_lhs, const void *item_rhs)
} }
/* Allocate the hash table used by copy_type_recursive to walk /* Allocate the hash table used by copy_type_recursive to walk
@ -2767,7 +2767,7 @@ index 5885241..a3db66a 100644
return type; return type;
/* This type shouldn't be pointing to any types in other objfiles; /* This type shouldn't be pointing to any types in other objfiles;
@@ -3428,9 +3572,10 @@ copy_type_recursive (struct objfile *objfile, @@ -3425,9 +3569,10 @@ copy_type_recursive (struct objfile *objfile,
new_type = alloc_type_arch (get_type_arch (type)); new_type = alloc_type_arch (get_type_arch (type));
/* We must add the new type to the hash table immediately, in case /* We must add the new type to the hash table immediately, in case
@ -2781,7 +2781,7 @@ index 5885241..a3db66a 100644
stored->old = type; stored->old = type;
stored->new = new_type; stored->new = new_type;
*slot = stored; *slot = stored;
@@ -3441,6 +3586,21 @@ copy_type_recursive (struct objfile *objfile, @@ -3438,6 +3583,21 @@ copy_type_recursive (struct objfile *objfile,
TYPE_OBJFILE_OWNED (new_type) = 0; TYPE_OBJFILE_OWNED (new_type) = 0;
TYPE_OWNER (new_type).gdbarch = get_type_arch (type); TYPE_OWNER (new_type).gdbarch = get_type_arch (type);
@ -2803,7 +2803,7 @@ index 5885241..a3db66a 100644
if (TYPE_NAME (type)) if (TYPE_NAME (type))
TYPE_NAME (new_type) = xstrdup (TYPE_NAME (type)); TYPE_NAME (new_type) = xstrdup (TYPE_NAME (type));
if (TYPE_TAG_NAME (type)) if (TYPE_TAG_NAME (type))
@@ -3449,12 +3609,48 @@ copy_type_recursive (struct objfile *objfile, @@ -3446,12 +3606,48 @@ copy_type_recursive (struct objfile *objfile,
TYPE_INSTANCE_FLAGS (new_type) = TYPE_INSTANCE_FLAGS (type); TYPE_INSTANCE_FLAGS (new_type) = TYPE_INSTANCE_FLAGS (type);
TYPE_LENGTH (new_type) = TYPE_LENGTH (type); TYPE_LENGTH (new_type) = TYPE_LENGTH (type);
@ -2852,7 +2852,7 @@ index 5885241..a3db66a 100644
TYPE_FIELDS (new_type) = XCALLOC (nfields, struct field); TYPE_FIELDS (new_type) = XCALLOC (nfields, struct field);
for (i = 0; i < nfields; i++) for (i = 0; i < nfields; i++)
{ {
@@ -3463,8 +3659,8 @@ copy_type_recursive (struct objfile *objfile, @@ -3460,8 +3656,8 @@ copy_type_recursive (struct objfile *objfile,
TYPE_FIELD_BITSIZE (new_type, i) = TYPE_FIELD_BITSIZE (type, i); TYPE_FIELD_BITSIZE (new_type, i) = TYPE_FIELD_BITSIZE (type, i);
if (TYPE_FIELD_TYPE (type, i)) if (TYPE_FIELD_TYPE (type, i))
TYPE_FIELD_TYPE (new_type, i) TYPE_FIELD_TYPE (new_type, i)
@ -2863,7 +2863,7 @@ index 5885241..a3db66a 100644
if (TYPE_FIELD_NAME (type, i)) if (TYPE_FIELD_NAME (type, i))
TYPE_FIELD_NAME (new_type, i) = TYPE_FIELD_NAME (new_type, i) =
xstrdup (TYPE_FIELD_NAME (type, i)); xstrdup (TYPE_FIELD_NAME (type, i));
@@ -3495,24 +3691,184 @@ copy_type_recursive (struct objfile *objfile, @@ -3492,24 +3688,184 @@ copy_type_recursive (struct objfile *objfile,
} }
} }
@ -3055,7 +3055,7 @@ index 5885241..a3db66a 100644
/* Maybe copy the type_specific bits. /* Maybe copy the type_specific bits.
NOTE drow/2005-12-09: We do not copy the C++-specific bits like NOTE drow/2005-12-09: We do not copy the C++-specific bits like
@@ -3529,6 +3885,17 @@ copy_type_recursive (struct objfile *objfile, @@ -3526,6 +3882,17 @@ copy_type_recursive (struct objfile *objfile,
return new_type; return new_type;
} }
@ -3073,7 +3073,7 @@ index 5885241..a3db66a 100644
/* Make a copy of the given TYPE, except that the pointer & reference /* Make a copy of the given TYPE, except that the pointer & reference
types are not preserved. types are not preserved.
@@ -4093,6 +4460,13 @@ void @@ -4090,6 +4457,13 @@ void
_initialize_gdbtypes (void) _initialize_gdbtypes (void)
{ {
gdbtypes_data = gdbarch_data_register_post_init (gdbtypes_post_init); gdbtypes_data = gdbarch_data_register_post_init (gdbtypes_post_init);
@ -3088,7 +3088,7 @@ index 5885241..a3db66a 100644
add_setshow_zuinteger_cmd ("overload", no_class, &overload_debug, add_setshow_zuinteger_cmd ("overload", no_class, &overload_debug,
diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
index 8b340a3..aea1c96 100644 index 0ca7a87..c6029dc 100644
--- a/gdb/gdbtypes.h --- a/gdb/gdbtypes.h
+++ b/gdb/gdbtypes.h +++ b/gdb/gdbtypes.h
@@ -226,6 +226,11 @@ enum type_instance_flag_value @@ -226,6 +226,11 @@ enum type_instance_flag_value
@ -3320,7 +3320,7 @@ index 8b340a3..aea1c96 100644
extern struct type *copy_type (const struct type *type); extern struct type *copy_type (const struct type *type);
diff --git a/gdb/main.c b/gdb/main.c diff --git a/gdb/main.c b/gdb/main.c
index c9439bb..6c4acc4 100644 index 06f3feb..141a01b 100644
--- a/gdb/main.c --- a/gdb/main.c
+++ b/gdb/main.c +++ b/gdb/main.c
@@ -37,6 +37,7 @@ @@ -37,6 +37,7 @@
@ -3340,7 +3340,7 @@ index c9439bb..6c4acc4 100644
/* These are static so that we can take their address in an /* These are static so that we can take their address in an
initializer. */ initializer. */
static int print_help; static int print_help;
@@ -502,10 +505,14 @@ captured_main (void *data) @@ -504,10 +507,14 @@ captured_main (void *data)
{"args", no_argument, &set_args, 1}, {"args", no_argument, &set_args, 1},
{"l", required_argument, 0, 'l'}, {"l", required_argument, 0, 'l'},
{"return-child-result", no_argument, &return_child_result, 1}, {"return-child-result", no_argument, &return_child_result, 1},
@ -3356,7 +3356,7 @@ index c9439bb..6c4acc4 100644
{ {
int option_index; int option_index;
@@ -523,6 +530,9 @@ captured_main (void *data) @@ -525,6 +532,9 @@ captured_main (void *data)
case 0: case 0:
/* Long option that just sets a flag. */ /* Long option that just sets a flag. */
break; break;
@ -3366,7 +3366,7 @@ index c9439bb..6c4acc4 100644
case OPT_SE: case OPT_SE:
symarg = optarg; symarg = optarg;
execarg = optarg; execarg = optarg;
@@ -731,7 +741,31 @@ captured_main (void *data) @@ -733,7 +743,31 @@ captured_main (void *data)
/* Now that gdb_init has created the initial inferior, we're in /* Now that gdb_init has created the initial inferior, we're in
position to set args for that inferior. */ position to set args for that inferior. */
@ -3399,7 +3399,7 @@ index c9439bb..6c4acc4 100644
{ {
/* The remaining options are the command-line options for the /* The remaining options are the command-line options for the
inferior. The first one is the sym/exec file, and the rest inferior. The first one is the sym/exec file, and the rest
@@ -1011,7 +1045,8 @@ captured_main (void *data) @@ -1013,7 +1047,8 @@ captured_main (void *data)
/* Read in the old history after all the command files have been /* Read in the old history after all the command files have been
read. */ read. */
@ -3409,7 +3409,7 @@ index c9439bb..6c4acc4 100644
if (batch_flag) if (batch_flag)
{ {
@@ -1022,13 +1057,25 @@ captured_main (void *data) @@ -1024,13 +1059,25 @@ captured_main (void *data)
/* Show time and/or space usage. */ /* Show time and/or space usage. */
do_cleanups (pre_stat_chain); do_cleanups (pre_stat_chain);
@ -3441,7 +3441,7 @@ index c9439bb..6c4acc4 100644
} }
/* No exit -- exit is through quit_command. */ /* No exit -- exit is through quit_command. */
} }
@@ -1060,7 +1107,12 @@ print_gdb_help (struct ui_file *stream) @@ -1062,7 +1109,12 @@ print_gdb_help (struct ui_file *stream)
fputs_unfiltered (_("\ fputs_unfiltered (_("\
This is the GNU debugger. Usage:\n\n\ This is the GNU debugger. Usage:\n\n\
gdb [options] [executable-file [core-file or process-id]]\n\ gdb [options] [executable-file [core-file or process-id]]\n\
@ -3455,7 +3455,7 @@ index c9439bb..6c4acc4 100644
Options:\n\n\ Options:\n\n\
"), stream); "), stream);
fputs_unfiltered (_("\ fputs_unfiltered (_("\
@@ -1103,7 +1155,13 @@ Options:\n\n\ @@ -1104,7 +1156,13 @@ Options:\n\n\
fputs_unfiltered (_(" files.\n\ fputs_unfiltered (_(" files.\n\
--nh Do not read "), stream); --nh Do not read "), stream);
fputs_unfiltered (gdbinit, stream); fputs_unfiltered (gdbinit, stream);
@ -3681,18 +3681,18 @@ index 8d25311..233ed46 100644
void *data), void *data),
void *data); void *data);
diff --git a/gdb/printcmd.c b/gdb/printcmd.c diff --git a/gdb/printcmd.c b/gdb/printcmd.c
index a576d88..273a5e1 100644 index 155703d..545a615 100644
--- a/gdb/printcmd.c --- a/gdb/printcmd.c
+++ b/gdb/printcmd.c +++ b/gdb/printcmd.c
@@ -50,6 +50,7 @@ @@ -51,6 +51,7 @@
#include "arch-utils.h"
#include "cli/cli-utils.h" #include "cli/cli-utils.h"
#include "format.h" #include "format.h"
#include "source.h"
+#include "dwarf2loc.h" +#include "dwarf2loc.h"
#ifdef TUI #ifdef TUI
#include "tui/tui.h" /* For tui_active et al. */ #include "tui/tui.h" /* For tui_active et al. */
@@ -966,6 +967,11 @@ print_command_1 (char *exp, int voidprint) @@ -967,6 +968,11 @@ print_command_1 (char *exp, int voidprint)
else else
val = access_value_history (0); val = access_value_history (0);
@ -3704,7 +3704,7 @@ index a576d88..273a5e1 100644
if (voidprint || (val && value_type (val) && if (voidprint || (val && value_type (val) &&
TYPE_CODE (value_type (val)) != TYPE_CODE_VOID)) TYPE_CODE (value_type (val)) != TYPE_CODE_VOID))
{ {
@@ -1038,6 +1044,9 @@ output_command (char *exp, int from_tty) @@ -1039,6 +1045,9 @@ output_command (char *exp, int from_tty)
val = evaluate_expression (expr); val = evaluate_expression (expr);
@ -3714,7 +3714,7 @@ index a576d88..273a5e1 100644
annotate_value_begin (value_type (val)); annotate_value_begin (value_type (val));
get_formatted_print_options (&opts, format); get_formatted_print_options (&opts, format);
@@ -1466,6 +1475,24 @@ x_command (char *exp, int from_tty) @@ -1467,6 +1476,24 @@ x_command (char *exp, int from_tty)
set_internalvar (lookup_internalvar ("__"), last_examine_value); set_internalvar (lookup_internalvar ("__"), last_examine_value);
} }
} }
@ -3739,7 +3739,7 @@ index a576d88..273a5e1 100644
/* Add an expression to the auto-display chain. /* Add an expression to the auto-display chain.
@@ -1963,6 +1990,10 @@ print_variable_and_value (const char *name, struct symbol *var, @@ -1964,6 +1991,10 @@ print_variable_and_value (const char *name, struct symbol *var,
struct value_print_options opts; struct value_print_options opts;
val = read_var_value (var, frame); val = read_var_value (var, frame);
@ -3750,7 +3750,7 @@ index a576d88..273a5e1 100644
get_user_print_options (&opts); get_user_print_options (&opts);
opts.deref_ref = 1; opts.deref_ref = 1;
common_val_print (val, stream, indent, &opts, current_language); common_val_print (val, stream, indent, &opts, current_language);
@@ -2602,4 +2633,8 @@ Show printing of source filename and line number with <symbol>."), NULL, @@ -2613,4 +2644,8 @@ Show printing of source filename and line number with <symbol>."), NULL,
add_com ("eval", no_class, eval_command, _("\ add_com ("eval", no_class, eval_command, _("\
Convert \"printf format string\", arg1, arg2, arg3, ..., argn to\n\ Convert \"printf format string\", arg1, arg2, arg3, ..., argn to\n\
a command line, and call it.")); a command line, and call it."));
@ -4522,7 +4522,7 @@ index 0000000..debb3bb
+ +
+InScope () +InScope ()
diff --git a/gdb/python/py-type.c b/gdb/python/py-type.c diff --git a/gdb/python/py-type.c b/gdb/python/py-type.c
index 31b7776..56085d1 100644 index 051cff0..e2f2ebe 100644
--- a/gdb/python/py-type.c --- a/gdb/python/py-type.c
+++ b/gdb/python/py-type.c +++ b/gdb/python/py-type.c
@@ -31,6 +31,8 @@ @@ -31,6 +31,8 @@
@ -4762,7 +4762,7 @@ index 11cc038..ef238f6 100644
diff --git a/gdb/python/python.c b/gdb/python/python.c diff --git a/gdb/python/python.c b/gdb/python/python.c
index b0f71a2..d2248c1 100644 index 8dd65a1..82c6c86 100644
--- a/gdb/python/python.c --- a/gdb/python/python.c
+++ b/gdb/python/python.c +++ b/gdb/python/python.c
@@ -66,6 +66,8 @@ static const char *gdbpy_should_print_stack = python_excp_message; @@ -66,6 +66,8 @@ static const char *gdbpy_should_print_stack = python_excp_message;
@ -4828,7 +4828,7 @@ index b0f71a2..d2248c1 100644
static PyObject * static PyObject *
gdbpy_get_current_progspace (PyObject *unused1, PyObject *unused2) gdbpy_get_current_progspace (PyObject *unused1, PyObject *unused2)
@@ -1734,6 +1783,8 @@ static PyMethodDef GdbMethods[] = @@ -1733,6 +1782,8 @@ static PyMethodDef GdbMethods[] =
"Get a value from history" }, "Get a value from history" },
{ "execute", (PyCFunction) execute_gdb_command, METH_VARARGS | METH_KEYWORDS, { "execute", (PyCFunction) execute_gdb_command, METH_VARARGS | METH_KEYWORDS,
"Execute a gdb command" }, "Execute a gdb command" },
@ -4851,10 +4851,10 @@ index 24e3077..0443087 100644
int embedded_offset, CORE_ADDR address, int embedded_offset, CORE_ADDR address,
struct ui_file *stream, int recurse, struct ui_file *stream, int recurse,
diff --git a/gdb/stack.c b/gdb/stack.c diff --git a/gdb/stack.c b/gdb/stack.c
index a9dabb5..6c78436 100644 index 147d815..51115cf 100644
--- a/gdb/stack.c --- a/gdb/stack.c
+++ b/gdb/stack.c +++ b/gdb/stack.c
@@ -510,6 +510,10 @@ print_frame_args (struct symbol *func, struct frame_info *frame, @@ -508,6 +508,10 @@ print_frame_args (struct symbol *func, struct frame_info *frame,
stb = mem_fileopen (); stb = mem_fileopen ();
old_chain = make_cleanup_ui_file_delete (stb); old_chain = make_cleanup_ui_file_delete (stb);
@ -7929,7 +7929,7 @@ index 0000000..4747ea9
+ write (*,*) a ! break-static + write (*,*) a ! break-static
+end +end
diff --git a/gdb/testsuite/gdb.gdb/selftest.exp b/gdb/testsuite/gdb.gdb/selftest.exp diff --git a/gdb/testsuite/gdb.gdb/selftest.exp b/gdb/testsuite/gdb.gdb/selftest.exp
index 351fa87..0b5db6e 100644 index 55e13cf..441c28b 100644
--- a/gdb/testsuite/gdb.gdb/selftest.exp --- a/gdb/testsuite/gdb.gdb/selftest.exp
+++ b/gdb/testsuite/gdb.gdb/selftest.exp +++ b/gdb/testsuite/gdb.gdb/selftest.exp
@@ -91,6 +91,10 @@ proc do_steps_and_nexts {} { @@ -91,6 +91,10 @@ proc do_steps_and_nexts {} {
@ -7977,7 +7977,7 @@ index 0000000..ebced3c
+} +}
diff --git a/gdb/testsuite/gdb.mi/mi2-var-stale-type.exp b/gdb/testsuite/gdb.mi/mi2-var-stale-type.exp diff --git a/gdb/testsuite/gdb.mi/mi2-var-stale-type.exp b/gdb/testsuite/gdb.mi/mi2-var-stale-type.exp
new file mode 100644 new file mode 100644
index 0000000..74a104e index 0000000..99b6cc7
--- /dev/null --- /dev/null
+++ b/gdb/testsuite/gdb.mi/mi2-var-stale-type.exp +++ b/gdb/testsuite/gdb.mi/mi2-var-stale-type.exp
@@ -0,0 +1,57 @@ @@ -0,0 +1,57 @@
@ -8027,7 +8027,7 @@ index 0000000..74a104e
+set func "main" +set func "main"
+ +
+mi_gdb_test "-break-insert -t $srcfile:$line" \ +mi_gdb_test "-break-insert -t $srcfile:$line" \
+ "\\^done,bkpt=\{number=\"\[0-9\]+\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"$func\(\\\(.*\\\)\)?\",file=\".*\",line=\"$line\",times=\"0\",original-location=\".*\"\}" \ + "\\^done,bkpt=\{number=\"\[0-9\]+\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"$func\(\\\(.*\\\)\)?\",file=\".*\",fullname=\".*\",line=\"$line\",\[^\r\n\]*,original-location=\".*\"\}" \
+ "breakpoint at $func" + "breakpoint at $func"
+ +
+if { [mi_run_cmd] < 0 } { +if { [mi_run_cmd] < 0 } {
@ -8338,10 +8338,10 @@ index 0000000..295602d
+ writeln(s); { set breakpoint 2 here } + writeln(s); { set breakpoint 2 here }
+end. +end.
diff --git a/gdb/testsuite/gdb.python/py-frame.exp b/gdb/testsuite/gdb.python/py-frame.exp diff --git a/gdb/testsuite/gdb.python/py-frame.exp b/gdb/testsuite/gdb.python/py-frame.exp
index aa4d937..60d2cc8 100644 index 806da94..b22231a 100644
--- a/gdb/testsuite/gdb.python/py-frame.exp --- a/gdb/testsuite/gdb.python/py-frame.exp
+++ b/gdb/testsuite/gdb.python/py-frame.exp +++ b/gdb/testsuite/gdb.python/py-frame.exp
@@ -90,3 +90,5 @@ gdb_test "python print ('result = %s' % f0.read_var ('variable_which_surely_does @@ -94,3 +94,5 @@ gdb_test "python print ('result = %s' % f0.read_var ('variable_which_surely_does
gdb_test "python print ('result = %s' % f0.read_var ('a'))" " = 1" "test Frame.read_var - success" gdb_test "python print ('result = %s' % f0.read_var ('a'))" " = 1" "test Frame.read_var - success"
gdb_test "python print ('result = %s' % (gdb.selected_frame () == f1))" " = True" "test gdb.selected_frame" gdb_test "python print ('result = %s' % (gdb.selected_frame () == f1))" " = True" "test gdb.selected_frame"
@ -8427,7 +8427,7 @@ index 569fb02..cacecf4 100644
set pascal_init_done 1 set pascal_init_done 1
} }
diff --git a/gdb/top.c b/gdb/top.c diff --git a/gdb/top.c b/gdb/top.c
index e9d6c1c..7fe6ad1 100644 index e9a40fc..de051c8 100644
--- a/gdb/top.c --- a/gdb/top.c
+++ b/gdb/top.c +++ b/gdb/top.c
@@ -350,6 +350,9 @@ prepare_execute_command (void) @@ -350,6 +350,9 @@ prepare_execute_command (void)
@ -8479,10 +8479,10 @@ index 2d5a6af..5251e3f 100644
get_user_print_options (&opts); get_user_print_options (&opts);
diff --git a/gdb/utils.c b/gdb/utils.c diff --git a/gdb/utils.c b/gdb/utils.c
index 8bae4eb..6eb5877 100644 index eb99f4b..2e17e8e 100644
--- a/gdb/utils.c --- a/gdb/utils.c
+++ b/gdb/utils.c +++ b/gdb/utils.c
@@ -1821,6 +1821,36 @@ set_batch_flag_and_make_cleanup_restore_page_info (void) @@ -1804,6 +1804,36 @@ set_batch_flag_and_make_cleanup_restore_page_info (void)
return back_to; return back_to;
} }
@ -8520,10 +8520,10 @@ index 8bae4eb..6eb5877 100644
static void static void
diff --git a/gdb/utils.h b/gdb/utils.h diff --git a/gdb/utils.h b/gdb/utils.h
index 6983a53..0efa553 100644 index 52bcaff..6ab417b 100644
--- a/gdb/utils.h --- a/gdb/utils.h
+++ b/gdb/utils.h +++ b/gdb/utils.h
@@ -380,4 +380,6 @@ extern int myread (int, char *, int); @@ -375,4 +375,6 @@ extern int myread (int, char *, int);
extern ULONGEST align_up (ULONGEST v, int n); extern ULONGEST align_up (ULONGEST v, int n);
extern ULONGEST align_down (ULONGEST v, int n); extern ULONGEST align_down (ULONGEST v, int n);
@ -8531,7 +8531,7 @@ index 6983a53..0efa553 100644
+ +
#endif /* UTILS_H */ #endif /* UTILS_H */
diff --git a/gdb/valarith.c b/gdb/valarith.c diff --git a/gdb/valarith.c b/gdb/valarith.c
index 074cf36..5c44edc 100644 index 18c14fc..0a3a3aa 100644
--- a/gdb/valarith.c --- a/gdb/valarith.c
+++ b/gdb/valarith.c +++ b/gdb/valarith.c
@@ -195,7 +195,10 @@ value_subscripted_rvalue (struct value *array, LONGEST index, int lowerbound) @@ -195,7 +195,10 @@ value_subscripted_rvalue (struct value *array, LONGEST index, int lowerbound)
@ -8558,7 +8558,7 @@ index 074cf36..5c44edc 100644
} }
diff --git a/gdb/valops.c b/gdb/valops.c diff --git a/gdb/valops.c b/gdb/valops.c
index e3d36a1..a6bda4d 100644 index 93c09d8..aef0991 100644
--- a/gdb/valops.c --- a/gdb/valops.c
+++ b/gdb/valops.c +++ b/gdb/valops.c
@@ -45,6 +45,7 @@ @@ -45,6 +45,7 @@
@ -8569,7 +8569,7 @@ index e3d36a1..a6bda4d 100644
extern unsigned int overload_debug; extern unsigned int overload_debug;
/* Local functions. */ /* Local functions. */
@@ -919,6 +920,65 @@ value_one (struct type *type) @@ -903,6 +904,65 @@ value_one (struct type *type)
return val; return val;
} }
@ -8635,7 +8635,7 @@ index e3d36a1..a6bda4d 100644
/* Helper function for value_at, value_at_lazy, and value_at_lazy_stack. */ /* Helper function for value_at, value_at_lazy, and value_at_lazy_stack. */
static struct value * static struct value *
@@ -981,7 +1041,8 @@ int @@ -965,7 +1025,8 @@ int
value_fetch_lazy (struct value *val) value_fetch_lazy (struct value *val)
{ {
gdb_assert (value_lazy (val)); gdb_assert (value_lazy (val));
@ -8645,7 +8645,7 @@ index e3d36a1..a6bda4d 100644
if (value_bitsize (val)) if (value_bitsize (val))
{ {
/* To read a lazy bitfield, read the entire enclosing value. This /* To read a lazy bitfield, read the entire enclosing value. This
@@ -1014,13 +1075,24 @@ value_fetch_lazy (struct value *val) @@ -998,13 +1059,24 @@ value_fetch_lazy (struct value *val)
} }
else if (VALUE_LVAL (val) == lval_memory) else if (VALUE_LVAL (val) == lval_memory)
{ {
@ -8718,7 +8718,7 @@ index e3d36a1..a6bda4d 100644
} }
/* Given a value which is a function, return a value which is a pointer /* Given a value which is a function, return a value which is a pointer
@@ -3724,6 +3812,8 @@ value_slice (struct value *array, int lowbound, int length) @@ -3721,6 +3809,8 @@ value_slice (struct value *array, int lowbound, int length)
TYPE_TARGET_TYPE (range_type), TYPE_TARGET_TYPE (range_type),
lowbound, lowbound,
lowbound + length - 1); lowbound + length - 1);
@ -8728,7 +8728,7 @@ index e3d36a1..a6bda4d 100644
{ {
struct type *element_type = TYPE_TARGET_TYPE (array_type); struct type *element_type = TYPE_TARGET_TYPE (array_type);
diff --git a/gdb/valprint.c b/gdb/valprint.c diff --git a/gdb/valprint.c b/gdb/valprint.c
index 42dacc5..6977f62 100644 index 05d6c3e..5430e66 100644
--- a/gdb/valprint.c --- a/gdb/valprint.c
+++ b/gdb/valprint.c +++ b/gdb/valprint.c
@@ -37,6 +37,7 @@ @@ -37,6 +37,7 @@
@ -8747,7 +8747,7 @@ index 42dacc5..6977f62 100644
return 0; return 0;
default: default:
return 1; return 1;
@@ -1605,6 +1605,7 @@ val_print_array_elements (struct type *type, @@ -1604,6 +1604,7 @@ val_print_array_elements (struct type *type,
{ {
unsigned int things_printed = 0; unsigned int things_printed = 0;
unsigned len; unsigned len;
@ -8755,7 +8755,7 @@ index 42dacc5..6977f62 100644
struct type *elttype, *index_type; struct type *elttype, *index_type;
unsigned eltlen; unsigned eltlen;
/* Position of the array element we are examining to see /* Position of the array element we are examining to see
@@ -1613,9 +1614,33 @@ val_print_array_elements (struct type *type, @@ -1612,9 +1613,33 @@ val_print_array_elements (struct type *type,
/* Number of repetitions we have detected so far. */ /* Number of repetitions we have detected so far. */
unsigned int reps; unsigned int reps;
LONGEST low_bound, high_bound; LONGEST low_bound, high_bound;
@ -8791,7 +8791,7 @@ index 42dacc5..6977f62 100644
index_type = TYPE_INDEX_TYPE (type); index_type = TYPE_INDEX_TYPE (type);
if (get_array_bounds (type, &low_bound, &high_bound)) if (get_array_bounds (type, &low_bound, &high_bound))
@@ -1702,6 +1727,8 @@ val_print_array_elements (struct type *type, @@ -1701,6 +1726,8 @@ val_print_array_elements (struct type *type,
{ {
fprintf_filtered (stream, "..."); fprintf_filtered (stream, "...");
} }
@ -8801,7 +8801,7 @@ index 42dacc5..6977f62 100644
/* Read LEN bytes of target memory at address MEMADDR, placing the /* Read LEN bytes of target memory at address MEMADDR, placing the
diff --git a/gdb/value.c b/gdb/value.c diff --git a/gdb/value.c b/gdb/value.c
index ec4b090..96a308f 100644 index 4b70ece..7449c2a 100644
--- a/gdb/value.c --- a/gdb/value.c
+++ b/gdb/value.c +++ b/gdb/value.c
@@ -42,6 +42,7 @@ @@ -42,6 +42,7 @@
@ -8812,7 +8812,7 @@ index ec4b090..96a308f 100644
/* Prototypes for exported functions. */ /* Prototypes for exported functions. */
@@ -1440,12 +1441,15 @@ void @@ -1435,12 +1436,15 @@ void
set_value_component_location (struct value *component, set_value_component_location (struct value *component,
const struct value *whole) const struct value *whole)
{ {
@ -8828,7 +8828,7 @@ index ec4b090..96a308f 100644
if (whole->lval == lval_computed) if (whole->lval == lval_computed)
{ {
const struct lval_funcs *funcs = whole->location.computed.funcs; const struct lval_funcs *funcs = whole->location.computed.funcs;
@@ -1453,6 +1457,12 @@ set_value_component_location (struct value *component, @@ -1448,6 +1452,12 @@ set_value_component_location (struct value *component,
if (funcs->copy_closure) if (funcs->copy_closure)
component->location.computed.closure = funcs->copy_closure (whole); component->location.computed.closure = funcs->copy_closure (whole);
} }
@ -8841,7 +8841,7 @@ index ec4b090..96a308f 100644
} }
@@ -1586,6 +1596,31 @@ show_values (char *num_exp, int from_tty) @@ -1581,6 +1591,31 @@ show_values (char *num_exp, int from_tty)
num_exp[1] = '\0'; num_exp[1] = '\0';
} }
} }
@ -8873,7 +8873,7 @@ index ec4b090..96a308f 100644
/* Internal variables. These are variables within the debugger /* Internal variables. These are variables within the debugger
that hold values assigned by debugger commands. that hold values assigned by debugger commands.
@@ -2121,6 +2156,38 @@ call_internal_function (struct gdbarch *gdbarch, @@ -2116,6 +2151,38 @@ call_internal_function (struct gdbarch *gdbarch,
return (*ifn->handler) (gdbarch, language, ifn->cookie, argc, argv); return (*ifn->handler) (gdbarch, language, ifn->cookie, argc, argv);
} }
@ -8912,7 +8912,7 @@ index ec4b090..96a308f 100644
/* The 'function' command. This does nothing -- it is just a /* The 'function' command. This does nothing -- it is just a
placeholder to let "help function NAME" work. This is also used as placeholder to let "help function NAME" work. This is also used as
the implementation of the sub-command that is created when the implementation of the sub-command that is created when
@@ -2168,11 +2235,10 @@ preserve_one_value (struct value *value, struct objfile *objfile, @@ -2163,11 +2230,10 @@ preserve_one_value (struct value *value, struct objfile *objfile,
htab_t copied_types) htab_t copied_types)
{ {
if (TYPE_OBJFILE (value->type) == objfile) if (TYPE_OBJFILE (value->type) == objfile)
@ -8926,7 +8926,7 @@ index ec4b090..96a308f 100644
copied_types); copied_types);
} }
@@ -2187,7 +2253,7 @@ preserve_one_internalvar (struct internalvar *var, struct objfile *objfile, @@ -2182,7 +2248,7 @@ preserve_one_internalvar (struct internalvar *var, struct objfile *objfile,
case INTERNALVAR_INTEGER: case INTERNALVAR_INTEGER:
if (var->u.integer.type && TYPE_OBJFILE (var->u.integer.type) == objfile) if (var->u.integer.type && TYPE_OBJFILE (var->u.integer.type) == objfile)
var->u.integer.type var->u.integer.type
@ -8935,7 +8935,7 @@ index ec4b090..96a308f 100644
break; break;
case INTERNALVAR_VALUE: case INTERNALVAR_VALUE:
@@ -3285,10 +3351,27 @@ readjust_indirect_value_type (struct value *value, struct type *enc_type, @@ -3280,10 +3346,27 @@ readjust_indirect_value_type (struct value *value, struct type *enc_type,
struct value * struct value *
coerce_ref (struct value *arg) coerce_ref (struct value *arg)
{ {
@ -8964,7 +8964,7 @@ index ec4b090..96a308f 100644
retval = coerce_ref_if_computed (arg); retval = coerce_ref_if_computed (arg);
if (retval) if (retval)
return retval; return retval;
@@ -3400,4 +3483,10 @@ VARIABLE is already initialized.")); @@ -3405,4 +3488,10 @@ VARIABLE is already initialized."));
add_prefix_cmd ("function", no_class, function_command, _("\ add_prefix_cmd ("function", no_class, function_command, _("\
Placeholder command for showing help on convenience functions."), Placeholder command for showing help on convenience functions."),
&functionlist, "function ", 0, &cmdlist); &functionlist, "function ", 0, &cmdlist);
@ -8976,10 +8976,10 @@ index ec4b090..96a308f 100644
+#endif +#endif
} }
diff --git a/gdb/value.h b/gdb/value.h diff --git a/gdb/value.h b/gdb/value.h
index 67f1d04..2d2b830 100644 index c10c3ec..8d07348 100644
--- a/gdb/value.h --- a/gdb/value.h
+++ b/gdb/value.h +++ b/gdb/value.h
@@ -533,6 +533,10 @@ extern struct value *value_from_decfloat (struct type *type, @@ -537,6 +537,10 @@ extern struct value *value_from_decfloat (struct type *type,
const gdb_byte *decbytes); const gdb_byte *decbytes);
extern struct value *value_from_history_ref (char *, char **); extern struct value *value_from_history_ref (char *, char **);

View File

@ -37,10 +37,10 @@ gdb/gdbserver/
(linux_create_inferior, linux_tracefork_child): Call it instead of (linux_create_inferior, linux_tracefork_child): Call it instead of
direct ptrace. direct ptrace.
Index: gdb-7.5.50.20130118/gdb/common/linux-ptrace.c Index: gdb-7.5.50.20130215/gdb/common/linux-ptrace.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/common/linux-ptrace.c 2013-01-18 23:18:47.313360065 +0100 --- gdb-7.5.50.20130215.orig/gdb/common/linux-ptrace.c 2013-01-08 20:38:51.000000000 +0100
+++ gdb-7.5.50.20130118/gdb/common/linux-ptrace.c 2013-01-18 23:19:27.269417051 +0100 +++ gdb-7.5.50.20130215/gdb/common/linux-ptrace.c 2013-02-15 22:38:05.782456279 +0100
@@ -29,6 +29,10 @@ @@ -29,6 +29,10 @@
#include "gdb_assert.h" #include "gdb_assert.h"
#include "gdb_wait.h" #include "gdb_wait.h"
@ -81,10 +81,10 @@ Index: gdb-7.5.50.20130118/gdb/common/linux-ptrace.c
+ "(gdb) shell sudo setsebool deny_ptrace=0")); + "(gdb) shell sudo setsebool deny_ptrace=0"));
+#endif /* HAVE_LIBSELINUX */ +#endif /* HAVE_LIBSELINUX */
+} +}
Index: gdb-7.5.50.20130118/gdb/common/linux-ptrace.h Index: gdb-7.5.50.20130215/gdb/common/linux-ptrace.h
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/common/linux-ptrace.h 2013-01-18 23:18:47.313360065 +0100 --- gdb-7.5.50.20130215.orig/gdb/common/linux-ptrace.h 2013-01-01 07:32:54.000000000 +0100
+++ gdb-7.5.50.20130118/gdb/common/linux-ptrace.h 2013-01-18 23:19:04.990385360 +0100 +++ gdb-7.5.50.20130215/gdb/common/linux-ptrace.h 2013-02-15 22:38:05.782456279 +0100
@@ -69,5 +69,6 @@ struct buffer; @@ -69,5 +69,6 @@ struct buffer;
extern void linux_ptrace_attach_warnings (pid_t pid, struct buffer *buffer); extern void linux_ptrace_attach_warnings (pid_t pid, struct buffer *buffer);
@ -92,10 +92,10 @@ Index: gdb-7.5.50.20130118/gdb/common/linux-ptrace.h
+extern void linux_ptrace_create_warnings (struct buffer *buffer); +extern void linux_ptrace_create_warnings (struct buffer *buffer);
#endif /* COMMON_LINUX_PTRACE_H */ #endif /* COMMON_LINUX_PTRACE_H */
Index: gdb-7.5.50.20130118/gdb/configure.ac Index: gdb-7.5.50.20130215/gdb/configure.ac
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/configure.ac 2013-01-18 23:18:47.315360069 +0100 --- gdb-7.5.50.20130215.orig/gdb/configure.ac 2013-02-15 22:37:57.000000000 +0100
+++ gdb-7.5.50.20130118/gdb/configure.ac 2013-01-18 23:19:04.991385362 +0100 +++ gdb-7.5.50.20130215/gdb/configure.ac 2013-02-15 22:38:05.783456281 +0100
@@ -2068,6 +2068,10 @@ then @@ -2068,6 +2068,10 @@ then
[Define if you support the personality syscall.]) [Define if you support the personality syscall.])
fi fi
@ -107,10 +107,10 @@ Index: gdb-7.5.50.20130118/gdb/configure.ac
dnl Handle optional features that can be enabled. dnl Handle optional features that can be enabled.
# Support for --with-sysroot is a copy of GDB_AC_WITH_DIR, # Support for --with-sysroot is a copy of GDB_AC_WITH_DIR,
Index: gdb-7.5.50.20130118/gdb/gdbserver/configure.ac Index: gdb-7.5.50.20130215/gdb/gdbserver/configure.ac
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/gdbserver/configure.ac 2013-01-18 23:18:47.315360069 +0100 --- gdb-7.5.50.20130215.orig/gdb/gdbserver/configure.ac 2013-01-01 07:33:00.000000000 +0100
+++ gdb-7.5.50.20130118/gdb/gdbserver/configure.ac 2013-01-18 23:19:04.991385362 +0100 +++ gdb-7.5.50.20130215/gdb/gdbserver/configure.ac 2013-02-15 22:38:05.783456281 +0100
@@ -451,6 +451,10 @@ if $want_ipa ; then @@ -451,6 +451,10 @@ if $want_ipa ; then
fi fi
fi fi
@ -122,11 +122,11 @@ Index: gdb-7.5.50.20130118/gdb/gdbserver/configure.ac
AC_SUBST(GDBSERVER_DEPFILES) AC_SUBST(GDBSERVER_DEPFILES)
AC_SUBST(GDBSERVER_LIBS) AC_SUBST(GDBSERVER_LIBS)
AC_SUBST(USE_THREAD_DB) AC_SUBST(USE_THREAD_DB)
Index: gdb-7.5.50.20130118/gdb/gdbserver/linux-low.c Index: gdb-7.5.50.20130215/gdb/gdbserver/linux-low.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/gdbserver/linux-low.c 2013-01-18 23:18:47.317360073 +0100 --- gdb-7.5.50.20130215.orig/gdb/gdbserver/linux-low.c 2013-02-04 18:47:00.000000000 +0100
+++ gdb-7.5.50.20130118/gdb/gdbserver/linux-low.c 2013-01-18 23:19:04.993385366 +0100 +++ gdb-7.5.50.20130215/gdb/gdbserver/linux-low.c 2013-02-15 22:39:54.256591069 +0100
@@ -601,6 +601,28 @@ add_lwp (ptid_t ptid) @@ -602,6 +602,29 @@ add_lwp (ptid_t ptid)
return lwp; return lwp;
} }
@ -139,7 +139,8 @@ Index: gdb-7.5.50.20130118/gdb/gdbserver/linux-low.c
+ struct buffer buffer; + struct buffer buffer;
+ +
+ errno = 0; + errno = 0;
+ if (ptrace (PTRACE_TRACEME, 0, NULL, NULL) == 0) + if (ptrace (PTRACE_TRACEME, 0,
+ (PTRACE_ARG3_TYPE) 0, (PTRACE_ARG4_TYPE) 0) == 0)
+ return; + return;
+ +
+ save_errno = errno; + save_errno = errno;
@ -155,28 +156,28 @@ Index: gdb-7.5.50.20130118/gdb/gdbserver/linux-low.c
/* Start an inferior process and returns its pid. /* Start an inferior process and returns its pid.
ALLARGS is a vector of program-name and args. */ ALLARGS is a vector of program-name and args. */
@@ -641,7 +663,7 @@ linux_create_inferior (char *program, ch @@ -642,7 +665,7 @@ linux_create_inferior (char *program, ch
if (pid == 0) if (pid == 0)
{ {
- ptrace (PTRACE_TRACEME, 0, 0, 0); - ptrace (PTRACE_TRACEME, 0, (PTRACE_ARG3_TYPE) 0, (PTRACE_ARG4_TYPE) 0);
+ linux_traceme (program); + linux_traceme (program);
#ifndef __ANDROID__ /* Bionic doesn't use SIGRTMIN the way glibc does. */ #ifndef __ANDROID__ /* Bionic doesn't use SIGRTMIN the way glibc does. */
signal (__SIGRTMIN + 1, SIG_DFL); signal (__SIGRTMIN + 1, SIG_DFL);
@@ -4574,7 +4596,7 @@ linux_tracefork_grandchild (void *arg) @@ -4587,7 +4610,7 @@ linux_tracefork_grandchild (void *arg)
static int static int
linux_tracefork_child (void *arg) linux_tracefork_child (void *arg)
{ {
- ptrace (PTRACE_TRACEME, 0, 0, 0); - ptrace (PTRACE_TRACEME, 0, (PTRACE_ARG3_TYPE) 0, (PTRACE_ARG4_TYPE) 0);
+ linux_traceme ("PTRACE_O_TRACEFORK test"); + linux_traceme ("PTRACE_O_TRACEFORK test");
kill (getpid (), SIGSTOP); kill (getpid (), SIGSTOP);
#if !(defined(__UCLIBC__) && defined(HAS_NOMMU)) #if !(defined(__UCLIBC__) && defined(HAS_NOMMU))
Index: gdb-7.5.50.20130118/gdb/inf-ptrace.c Index: gdb-7.5.50.20130215/gdb/inf-ptrace.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/inf-ptrace.c 2013-01-18 23:18:47.318360076 +0100 --- gdb-7.5.50.20130215.orig/gdb/inf-ptrace.c 2013-01-01 07:32:45.000000000 +0100
+++ gdb-7.5.50.20130118/gdb/inf-ptrace.c 2013-01-18 23:19:04.993385366 +0100 +++ gdb-7.5.50.20130215/gdb/inf-ptrace.c 2013-02-15 22:38:05.786456289 +0100
@@ -104,7 +104,15 @@ static void @@ -104,7 +104,15 @@ static void
inf_ptrace_me (void) inf_ptrace_me (void)
{ {
@ -193,11 +194,11 @@ Index: gdb-7.5.50.20130118/gdb/inf-ptrace.c
} }
/* Start a new inferior Unix child process. EXEC_FILE is the file to /* Start a new inferior Unix child process. EXEC_FILE is the file to
Index: gdb-7.5.50.20130118/gdb/linux-nat.c Index: gdb-7.5.50.20130215/gdb/linux-nat.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/linux-nat.c 2013-01-18 23:18:47.320360083 +0100 --- gdb-7.5.50.20130215.orig/gdb/linux-nat.c 2013-02-15 22:34:44.000000000 +0100
+++ gdb-7.5.50.20130118/gdb/linux-nat.c 2013-01-18 23:19:04.994385369 +0100 +++ gdb-7.5.50.20130215/gdb/linux-nat.c 2013-02-15 22:38:05.787456291 +0100
@@ -1578,6 +1578,7 @@ linux_nat_create_inferior (struct target @@ -1557,6 +1557,7 @@ linux_nat_create_inferior (struct target
#ifdef HAVE_PERSONALITY #ifdef HAVE_PERSONALITY
int personality_orig = 0, personality_set = 0; int personality_orig = 0, personality_set = 0;
#endif /* HAVE_PERSONALITY */ #endif /* HAVE_PERSONALITY */
@ -205,7 +206,7 @@ Index: gdb-7.5.50.20130118/gdb/linux-nat.c
/* The fork_child mechanism is synchronous and calls target_wait, so /* The fork_child mechanism is synchronous and calls target_wait, so
we have to mask the async mode. */ we have to mask the async mode. */
@@ -1602,7 +1603,10 @@ linux_nat_create_inferior (struct target @@ -1581,7 +1582,10 @@ linux_nat_create_inferior (struct target
/* Make sure we report all signals during startup. */ /* Make sure we report all signals during startup. */
linux_nat_pass_signals (0, NULL); linux_nat_pass_signals (0, NULL);
@ -217,7 +218,7 @@ Index: gdb-7.5.50.20130118/gdb/linux-nat.c
#ifdef HAVE_PERSONALITY #ifdef HAVE_PERSONALITY
if (personality_set) if (personality_set)
@@ -1614,6 +1618,24 @@ linux_nat_create_inferior (struct target @@ -1593,6 +1597,24 @@ linux_nat_create_inferior (struct target
safe_strerror (errno)); safe_strerror (errno));
} }
#endif /* HAVE_PERSONALITY */ #endif /* HAVE_PERSONALITY */

View File

@ -1,99 +0,0 @@
http://sourceware.org/ml/gdb-patches/2013-01/msg00469.html
Subject: [patch] Fix gdb.fortran/common-block.exp crash in PIE mode
Hi Tom,
runtest F90_FOR_TARGET="gfortran -fPIE -pie" gdb.fortran/common-block.exp
crashes GDB as function relocate_one_symbol
if ((SYMBOL_CLASS (sym) == LOC_LABEL
|| SYMBOL_CLASS (sym) == LOC_STATIC)
&& SYMBOL_SECTION (sym) >= 0)
SYMBOL_VALUE_ADDRESS (sym) += ANOFFSET (delta, SYMBOL_SECTION (sym));
corrupts SYMBOL_VALUE_COMMON_BLOCK
struct common_block *common_block;
as it thinks it can update it like SYMBOL_VALUE_ADDRESS
CORE_ADDR address;
due to its LOC_STATIC.
No regressions on {x86_64,x86_64-m32,i686}-fedora18-linux-gnu and in PIE mode.
Thanks,
Jan
gdb/
2013-01-19 Jan Kratochvil <jan.kratochvil@redhat.com>
Fix gdb.fortran/common-block.exp crash in PIE mode.
* dwarf2read.c (new_symbol_full) <DW_TAG_common_block>: Use
LOC_COMMON_BLOCK.
* f-valprint.c (info_common_command_for_block): Expect
LOC_COMMON_BLOCK in gdb_assert.
* symtab.h (struct general_symbol_info): Update comment for the
common_block member.
(domain_enum): Extend comment for the COMMON_BLOCK_DOMAIN member.
(enum address_class): New member LOC_COMMON_BLOCK.
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index 7a58c45..364e6af 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -16071,7 +16071,7 @@ new_symbol_full (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
list_to_add = &global_symbols;
break;
case DW_TAG_common_block:
- SYMBOL_CLASS (sym) = LOC_STATIC;
+ SYMBOL_CLASS (sym) = LOC_COMMON_BLOCK;
SYMBOL_DOMAIN (sym) = COMMON_BLOCK_DOMAIN;
add_symbol_to_list (sym, cu->list_in_scope);
break;
diff --git a/gdb/f-valprint.c b/gdb/f-valprint.c
index 22cca83..d01d6ec 100644
--- a/gdb/f-valprint.c
+++ b/gdb/f-valprint.c
@@ -427,7 +427,7 @@ info_common_command_for_block (struct block *block, const char *comname,
struct common_block *common = SYMBOL_VALUE_COMMON_BLOCK (sym);
size_t index;
- gdb_assert (SYMBOL_CLASS (sym) == LOC_STATIC);
+ gdb_assert (SYMBOL_CLASS (sym) == LOC_COMMON_BLOCK);
if (comname && (!SYMBOL_LINKAGE_NAME (sym)
|| strcmp (comname, SYMBOL_LINKAGE_NAME (sym)) != 0))
diff --git a/gdb/symtab.h b/gdb/symtab.h
index c334a3a..b992266 100644
--- a/gdb/symtab.h
+++ b/gdb/symtab.h
@@ -120,7 +120,7 @@ struct general_symbol_info
CORE_ADDR address;
- /* A common block. Used with COMMON_BLOCK_DOMAIN. */
+ /* A common block. Used with LOC_COMMON_BLOCK. */
struct common_block *common_block;
@@ -414,7 +414,8 @@ typedef enum domain_enum_tag
LABEL_DOMAIN,
- /* Fortran common blocks. Their naming must be separate from VAR_DOMAIN. */
+ /* Fortran common blocks. Their naming must be separate from VAR_DOMAIN.
+ They also always use LOC_COMMON_BLOCK. */
COMMON_BLOCK_DOMAIN
} domain_enum;
@@ -533,6 +534,10 @@ enum address_class
/* The variable's address is computed by a set of location
functions (see "struct symbol_computed_ops" below). */
LOC_COMPUTED,
+
+ /* The variable uses general_symbol_info->value->common_block field.
+ It also always uses COMMON_BLOCK_DOMAIN. */
+ LOC_COMMON_BLOCK,
};
/* The methods needed to implement LOC_COMPUTED. These methods can

View File

@ -81,24 +81,24 @@ gdb/testsuite
* gdb.base/break-dlmopen.c: Likewise. * gdb.base/break-dlmopen.c: Likewise.
* gdb.base/break-dlmopen-solib.c: Likewise. * gdb.base/break-dlmopen-solib.c: Likewise.
Index: gdb-7.5.50.20130118/gdb/breakpoint.h Index: gdb-7.5.50.20130215/gdb/breakpoint.h
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/breakpoint.h 2013-01-18 23:57:14.782978485 +0100 --- gdb-7.5.50.20130215.orig/gdb/breakpoint.h 2013-02-15 22:37:19.000000000 +0100
+++ gdb-7.5.50.20130118/gdb/breakpoint.h 2013-01-18 23:57:50.511792890 +0100 +++ gdb-7.5.50.20130215/gdb/breakpoint.h 2013-02-15 22:37:47.185432296 +0100
@@ -1548,8 +1548,6 @@ extern int user_breakpoint_p (struct bre @@ -1552,8 +1552,6 @@ extern int user_breakpoint_p (struct bre
/* Attempt to determine architecture of location identified by SAL. */ /* Attempt to determine architecture of location identified by SAL. */
extern struct gdbarch *get_sal_arch (struct symtab_and_line sal); extern struct gdbarch *get_sal_arch (struct symtab_and_line sal);
-extern void handle_solib_event (void); -extern void handle_solib_event (void);
- -
extern void breakpoints_relocate (struct objfile *objfile, extern void breakpoint_free_objfile (struct objfile *objfile);
struct section_offsets *delta);
Index: gdb-7.5.50.20130118/gdb/breakpoint.c extern void breakpoints_relocate (struct objfile *objfile,
Index: gdb-7.5.50.20130215/gdb/breakpoint.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/breakpoint.c 2013-01-18 23:57:14.782978485 +0100 --- gdb-7.5.50.20130215.orig/gdb/breakpoint.c 2013-02-15 22:37:30.000000000 +0100
+++ gdb-7.5.50.20130118/gdb/breakpoint.c 2013-01-18 23:57:50.514792879 +0100 +++ gdb-7.5.50.20130215/gdb/breakpoint.c 2013-02-15 22:37:35.755417584 +0100
@@ -5254,7 +5254,7 @@ bpstat_stop_status (struct address_space @@ -5250,7 +5250,7 @@ bpstat_stop_status (struct address_space
{ {
if (bs->breakpoint_at && bs->breakpoint_at->type == bp_shlib_event) if (bs->breakpoint_at && bs->breakpoint_at->type == bp_shlib_event)
{ {
@ -107,7 +107,7 @@ Index: gdb-7.5.50.20130118/gdb/breakpoint.c
break; break;
} }
} }
@@ -5350,25 +5350,6 @@ handle_jit_event (void) @@ -5346,25 +5346,6 @@ handle_jit_event (void)
target_terminal_inferior (); target_terminal_inferior ();
} }
@ -133,10 +133,10 @@ Index: gdb-7.5.50.20130118/gdb/breakpoint.c
/* Prepare WHAT final decision for infrun. */ /* Prepare WHAT final decision for infrun. */
/* Decide what infrun needs to do with this bpstat. */ /* Decide what infrun needs to do with this bpstat. */
Index: gdb-7.5.50.20130118/gdb/solib.h Index: gdb-7.5.50.20130215/gdb/solib.h
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/solib.h 2013-01-18 23:57:14.782978485 +0100 --- gdb-7.5.50.20130215.orig/gdb/solib.h 2013-01-01 07:32:51.000000000 +0100
+++ gdb-7.5.50.20130118/gdb/solib.h 2013-01-18 23:57:50.515792875 +0100 +++ gdb-7.5.50.20130215/gdb/solib.h 2013-02-15 22:37:35.757417588 +0100
@@ -20,6 +20,9 @@ @@ -20,6 +20,9 @@
#ifndef SOLIB_H #ifndef SOLIB_H
#define SOLIB_H #define SOLIB_H
@ -163,10 +163,10 @@ Index: gdb-7.5.50.20130118/gdb/solib.h
+extern void update_solib_breakpoints (void); +extern void update_solib_breakpoints (void);
+ +
#endif /* SOLIB_H */ #endif /* SOLIB_H */
Index: gdb-7.5.50.20130118/gdb/solib.c Index: gdb-7.5.50.20130215/gdb/solib.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/solib.c 2013-01-18 23:57:14.782978485 +0100 --- gdb-7.5.50.20130215.orig/gdb/solib.c 2013-02-15 22:37:04.000000000 +0100
+++ gdb-7.5.50.20130118/gdb/solib.c 2013-01-18 23:58:09.144716601 +0100 +++ gdb-7.5.50.20130215/gdb/solib.c 2013-02-15 22:37:35.757417588 +0100
@@ -1221,6 +1221,42 @@ no_shared_libraries (char *ignored, int @@ -1221,6 +1221,42 @@ no_shared_libraries (char *ignored, int
objfile_purge_solibs (); objfile_purge_solibs ();
} }
@ -210,10 +210,10 @@ Index: gdb-7.5.50.20130118/gdb/solib.c
/* Reload shared libraries, but avoid reloading the same symbol file /* Reload shared libraries, but avoid reloading the same symbol file
we already have loaded. */ we already have loaded. */
Index: gdb-7.5.50.20130118/gdb/solist.h Index: gdb-7.5.50.20130215/gdb/solist.h
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/solist.h 2013-01-18 23:57:14.782978485 +0100 --- gdb-7.5.50.20130215.orig/gdb/solist.h 2013-01-01 07:32:51.000000000 +0100
+++ gdb-7.5.50.20130118/gdb/solist.h 2013-01-18 23:57:50.515792875 +0100 +++ gdb-7.5.50.20130215/gdb/solist.h 2013-02-15 22:37:35.758417590 +0100
@@ -22,6 +22,8 @@ @@ -22,6 +22,8 @@
#define SO_NAME_MAX_PATH_SIZE 512 /* FIXME: Should be dynamic */ #define SO_NAME_MAX_PATH_SIZE 512 /* FIXME: Should be dynamic */
/* For domain_enum domain. */ /* For domain_enum domain. */
@ -244,10 +244,10 @@ Index: gdb-7.5.50.20130118/gdb/solist.h
}; };
/* Free the memory associated with a (so_list *). */ /* Free the memory associated with a (so_list *). */
Index: gdb-7.5.50.20130118/gdb/infrun.c Index: gdb-7.5.50.20130215/gdb/infrun.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/infrun.c 2013-01-18 23:57:14.782978485 +0100 --- gdb-7.5.50.20130215.orig/gdb/infrun.c 2013-02-15 22:37:04.000000000 +0100
+++ gdb-7.5.50.20130118/gdb/infrun.c 2013-01-18 23:57:50.517792865 +0100 +++ gdb-7.5.50.20130215/gdb/infrun.c 2013-02-15 22:37:35.760417594 +0100
@@ -369,6 +369,16 @@ static struct symbol *step_start_functio @@ -369,6 +369,16 @@ static struct symbol *step_start_functio
/* Nonzero if we want to give control to the user when we're notified /* Nonzero if we want to give control to the user when we're notified
of shared library events by the dynamic linker. */ of shared library events by the dynamic linker. */
@ -265,7 +265,7 @@ Index: gdb-7.5.50.20130118/gdb/infrun.c
static void static void
show_stop_on_solib_events (struct ui_file *file, int from_tty, show_stop_on_solib_events (struct ui_file *file, int from_tty,
struct cmd_list_element *c, const char *value) struct cmd_list_element *c, const char *value)
@@ -3347,7 +3357,7 @@ handle_inferior_event (struct execution_ @@ -3346,7 +3356,7 @@ handle_inferior_event (struct execution_
context_switch (ecs->ptid); context_switch (ecs->ptid);
regcache = get_thread_regcache (ecs->ptid); regcache = get_thread_regcache (ecs->ptid);
@ -274,7 +274,7 @@ Index: gdb-7.5.50.20130118/gdb/infrun.c
ecs->event_thread->control.stop_bpstat ecs->event_thread->control.stop_bpstat
= bpstat_stop_status (get_regcache_aspace (regcache), = bpstat_stop_status (get_regcache_aspace (regcache),
@@ -7327,7 +7337,7 @@ Show stopping for shared library events. @@ -7334,7 +7344,7 @@ Show stopping for shared library events.
If nonzero, gdb will give control to the user when the dynamic linker\n\ If nonzero, gdb will give control to the user when the dynamic linker\n\
notifies gdb of shared library events. The most common event of interest\n\ notifies gdb of shared library events. The most common event of interest\n\
to the user would be loading/unloading of a new library."), to the user would be loading/unloading of a new library."),
@ -283,10 +283,10 @@ Index: gdb-7.5.50.20130118/gdb/infrun.c
show_stop_on_solib_events, show_stop_on_solib_events,
&setlist, &showlist); &setlist, &showlist);
Index: gdb-7.5.50.20130118/gdb/solib-svr4.c Index: gdb-7.5.50.20130215/gdb/solib-svr4.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/solib-svr4.c 2013-01-18 23:57:45.430815943 +0100 --- gdb-7.5.50.20130215.orig/gdb/solib-svr4.c 2013-02-15 22:37:30.000000000 +0100
+++ gdb-7.5.50.20130118/gdb/solib-svr4.c 2013-01-18 23:57:50.519792858 +0100 +++ gdb-7.5.50.20130215/gdb/solib-svr4.c 2013-02-15 22:37:35.761417596 +0100
@@ -46,10 +46,12 @@ @@ -46,10 +46,12 @@
#include "auxv.h" #include "auxv.h"
#include "exceptions.h" #include "exceptions.h"
@ -540,7 +540,7 @@ Index: gdb-7.5.50.20130118/gdb/solib-svr4.c
/* Find r_brk from the inferior's debug base. */ /* Find r_brk from the inferior's debug base. */
static CORE_ADDR static CORE_ADDR
@@ -1163,15 +1290,17 @@ svr4_default_sos (void) @@ -1161,15 +1288,17 @@ svr4_default_sos (void)
return new; return new;
} }
@ -565,7 +565,7 @@ Index: gdb-7.5.50.20130118/gdb/solib-svr4.c
for (; lm != 0; prev_lm = lm, lm = next_lm) for (; lm != 0; prev_lm = lm, lm = next_lm)
{ {
@@ -1188,7 +1317,7 @@ svr4_read_so_list (CORE_ADDR lm, struct @@ -1185,7 +1314,7 @@ svr4_read_so_list (CORE_ADDR lm, struct
if (new->lm_info == NULL) if (new->lm_info == NULL)
{ {
do_cleanups (old_chain); do_cleanups (old_chain);
@ -574,7 +574,7 @@ Index: gdb-7.5.50.20130118/gdb/solib-svr4.c
} }
next_lm = new->lm_info->l_next; next_lm = new->lm_info->l_next;
@@ -1199,7 +1328,7 @@ svr4_read_so_list (CORE_ADDR lm, struct @@ -1196,7 +1325,7 @@ svr4_read_so_list (CORE_ADDR lm, struct
paddress (target_gdbarch (), prev_lm), paddress (target_gdbarch (), prev_lm),
paddress (target_gdbarch (), new->lm_info->l_prev)); paddress (target_gdbarch (), new->lm_info->l_prev));
do_cleanups (old_chain); do_cleanups (old_chain);
@ -583,7 +583,7 @@ Index: gdb-7.5.50.20130118/gdb/solib-svr4.c
} }
/* For SVR4 versions, the first entry in the link map is for the /* For SVR4 versions, the first entry in the link map is for the
@@ -1294,20 +1423,61 @@ svr4_read_so_list (CORE_ADDR lm, struct @@ -1291,20 +1420,61 @@ svr4_read_so_list (CORE_ADDR lm, struct
**link_ptr_ptr = new; **link_ptr_ptr = new;
*link_ptr_ptr = &new->next; *link_ptr_ptr = &new->next;
} }
@ -648,7 +648,7 @@ Index: gdb-7.5.50.20130118/gdb/solib-svr4.c
/* Fall back to manual examination of the target if the packet is not /* Fall back to manual examination of the target if the packet is not
supported or gdbserver failed to find DT_DEBUG. gdb.server/solib-list.exp supported or gdbserver failed to find DT_DEBUG. gdb.server/solib-list.exp
@@ -1330,6 +1500,10 @@ svr4_current_sos (void) @@ -1327,6 +1497,10 @@ svr4_current_sos (void)
info = get_svr4_info (); info = get_svr4_info ();
@ -659,7 +659,7 @@ Index: gdb-7.5.50.20130118/gdb/solib-svr4.c
/* Always locate the debug struct, in case it has moved. */ /* Always locate the debug struct, in case it has moved. */
info->debug_base = 0; info->debug_base = 0;
locate_base (info); locate_base (info);
@@ -1339,35 +1513,12 @@ svr4_current_sos (void) @@ -1336,35 +1510,12 @@ svr4_current_sos (void)
if (! info->debug_base) if (! info->debug_base)
return svr4_default_sos (); return svr4_default_sos ();
@ -698,7 +698,7 @@ Index: gdb-7.5.50.20130118/gdb/solib-svr4.c
} }
/* Get the address of the link_map for a given OBJFILE. */ /* Get the address of the link_map for a given OBJFILE. */
@@ -1452,6 +1603,498 @@ exec_entry_point (struct bfd *abfd, stru @@ -1449,6 +1600,498 @@ exec_entry_point (struct bfd *abfd, stru
return gdbarch_addr_bits_remove (target_gdbarch (), addr); return gdbarch_addr_bits_remove (target_gdbarch (), addr);
} }
@ -1197,7 +1197,7 @@ Index: gdb-7.5.50.20130118/gdb/solib-svr4.c
/* Helper function for gdb_bfd_lookup_symbol. */ /* Helper function for gdb_bfd_lookup_symbol. */
static int static int
@@ -1504,6 +2147,9 @@ enable_break (struct svr4_info *info, in @@ -1501,6 +2144,9 @@ enable_break (struct svr4_info *info, in
info->interp_text_sect_low = info->interp_text_sect_high = 0; info->interp_text_sect_low = info->interp_text_sect_high = 0;
info->interp_plt_sect_low = info->interp_plt_sect_high = 0; info->interp_plt_sect_low = info->interp_plt_sect_high = 0;
@ -1207,7 +1207,7 @@ Index: gdb-7.5.50.20130118/gdb/solib-svr4.c
/* If we already have a shared library list in the target, and /* If we already have a shared library list in the target, and
r_debug contains r_brk, set the breakpoint there - this should r_debug contains r_brk, set the breakpoint there - this should
mean r_brk has already been relocated. Assume the dynamic linker mean r_brk has already been relocated. Assume the dynamic linker
@@ -1535,7 +2181,7 @@ enable_break (struct svr4_info *info, in @@ -1532,7 +2178,7 @@ enable_break (struct svr4_info *info, in
That knowledge is encoded in the address, if it's Thumb the low bit That knowledge is encoded in the address, if it's Thumb the low bit
is 1. However, we've stripped that info above and it's not clear is 1. However, we've stripped that info above and it's not clear
what all the consequences are of passing a non-addr_bits_remove'd what all the consequences are of passing a non-addr_bits_remove'd
@ -1216,7 +1216,7 @@ Index: gdb-7.5.50.20130118/gdb/solib-svr4.c
find_pc_section verifies we know about the address and have some find_pc_section verifies we know about the address and have some
hope of computing the right kind of breakpoint to use (via hope of computing the right kind of breakpoint to use (via
symbol info). It does mean that GDB needs to be pointed at a symbol info). It does mean that GDB needs to be pointed at a
@@ -1573,7 +2219,7 @@ enable_break (struct svr4_info *info, in @@ -1570,7 +2216,7 @@ enable_break (struct svr4_info *info, in
+ bfd_section_size (tmp_bfd, interp_sect); + bfd_section_size (tmp_bfd, interp_sect);
} }
@ -1225,7 +1225,7 @@ Index: gdb-7.5.50.20130118/gdb/solib-svr4.c
return 1; return 1;
} }
} }
@@ -1731,7 +2377,8 @@ enable_break (struct svr4_info *info, in @@ -1728,7 +2374,8 @@ enable_break (struct svr4_info *info, in
if (sym_addr != 0) if (sym_addr != 0)
{ {
@ -1235,7 +1235,7 @@ Index: gdb-7.5.50.20130118/gdb/solib-svr4.c
xfree (interp_name); xfree (interp_name);
return 1; return 1;
} }
@@ -1757,7 +2404,7 @@ enable_break (struct svr4_info *info, in @@ -1754,7 +2401,7 @@ enable_break (struct svr4_info *info, in
sym_addr = gdbarch_convert_from_func_ptr_addr (target_gdbarch (), sym_addr = gdbarch_convert_from_func_ptr_addr (target_gdbarch (),
sym_addr, sym_addr,
&current_target); &current_target);
@ -1244,7 +1244,7 @@ Index: gdb-7.5.50.20130118/gdb/solib-svr4.c
return 1; return 1;
} }
} }
@@ -1773,7 +2420,7 @@ enable_break (struct svr4_info *info, in @@ -1770,7 +2417,7 @@ enable_break (struct svr4_info *info, in
sym_addr = gdbarch_convert_from_func_ptr_addr (target_gdbarch (), sym_addr = gdbarch_convert_from_func_ptr_addr (target_gdbarch (),
sym_addr, sym_addr,
&current_target); &current_target);
@ -1253,7 +1253,7 @@ Index: gdb-7.5.50.20130118/gdb/solib-svr4.c
return 1; return 1;
} }
} }
@@ -2269,6 +2916,9 @@ svr4_solib_create_inferior_hook (int fro @@ -2266,6 +2913,9 @@ svr4_solib_create_inferior_hook (int fro
info = get_svr4_info (); info = get_svr4_info ();
@ -1263,17 +1263,17 @@ Index: gdb-7.5.50.20130118/gdb/solib-svr4.c
/* Relocate the main executable if necessary. */ /* Relocate the main executable if necessary. */
svr4_relocate_main_executable (); svr4_relocate_main_executable ();
@@ -2510,4 +3160,6 @@ _initialize_svr4_solib (void) @@ -2507,4 +3157,6 @@ _initialize_svr4_solib (void)
svr4_so_ops.lookup_lib_global_symbol = elf_lookup_lib_symbol; svr4_so_ops.lookup_lib_global_symbol = elf_lookup_lib_symbol;
svr4_so_ops.same = svr4_same; svr4_so_ops.same = svr4_same;
svr4_so_ops.keep_data_in_core = svr4_keep_data_in_core; svr4_so_ops.keep_data_in_core = svr4_keep_data_in_core;
+ svr4_so_ops.handle_solib_event = svr4_handle_solib_event; + svr4_so_ops.handle_solib_event = svr4_handle_solib_event;
+ svr4_so_ops.update_breakpoints = svr4_update_solib_event_breakpoints; + svr4_so_ops.update_breakpoints = svr4_update_solib_event_breakpoints;
} }
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-dlmopen-solib.c Index: gdb-7.5.50.20130215/gdb/testsuite/gdb.base/break-dlmopen-solib.c
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-dlmopen-solib.c 2013-01-18 23:57:50.519792858 +0100 +++ gdb-7.5.50.20130215/gdb/testsuite/gdb.base/break-dlmopen-solib.c 2013-02-15 22:37:35.761417596 +0100
@@ -0,0 +1,24 @@ @@ -0,0 +1,24 @@
+/* Copyright 2012 Free Software Foundation, Inc. +/* Copyright 2012 Free Software Foundation, Inc.
+ +
@ -1299,10 +1299,10 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-dlmopen-solib.c
+ +
+ return 0; + return 0;
+} +}
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-dlmopen.c Index: gdb-7.5.50.20130215/gdb/testsuite/gdb.base/break-dlmopen.c
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-dlmopen.c 2013-01-18 23:57:50.519792858 +0100 +++ gdb-7.5.50.20130215/gdb/testsuite/gdb.base/break-dlmopen.c 2013-02-15 22:37:35.762417598 +0100
@@ -0,0 +1,58 @@ @@ -0,0 +1,58 @@
+/* Copyright 2012 Free Software Foundation, Inc. +/* Copyright 2012 Free Software Foundation, Inc.
+ +
@ -1362,10 +1362,10 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-dlmopen.c
+ +
+ return 0; + return 0;
+} +}
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-dlmopen.exp Index: gdb-7.5.50.20130215/gdb/testsuite/gdb.base/break-dlmopen.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-dlmopen.exp 2013-01-18 23:57:50.519792858 +0100 +++ gdb-7.5.50.20130215/gdb/testsuite/gdb.base/break-dlmopen.exp 2013-02-15 22:37:35.762417598 +0100
@@ -0,0 +1,125 @@ @@ -0,0 +1,125 @@
+# Copyright 2012 Free Software Foundation, Inc. +# Copyright 2012 Free Software Foundation, Inc.
+ +
@ -1492,10 +1492,10 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-dlmopen.exp
+ gdb_test "c" {Breakpoint [0-9]+, .* in stop \(\)} + gdb_test "c" {Breakpoint [0-9]+, .* in stop \(\)}
+ check_info_shared "info sharedlibrary #7" 0 + check_info_shared "info sharedlibrary #7" 0
+} +}
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-interp.exp Index: gdb-7.5.50.20130215/gdb/testsuite/gdb.base/break-interp.exp
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.base/break-interp.exp 2013-01-18 23:57:14.782978485 +0100 --- gdb-7.5.50.20130215.orig/gdb/testsuite/gdb.base/break-interp.exp 2013-01-01 07:33:25.000000000 +0100
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-interp.exp 2013-01-18 23:57:50.520792854 +0100 +++ gdb-7.5.50.20130215/gdb/testsuite/gdb.base/break-interp.exp 2013-02-15 22:37:35.762417598 +0100
@@ -109,12 +109,19 @@ proc strip_debug {dest} { @@ -109,12 +109,19 @@ proc strip_debug {dest} {
} }
} }
@ -1591,10 +1591,10 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-interp.exp
# Use two separate gdb_test_multiple statements to avoid timeouts due # Use two separate gdb_test_multiple statements to avoid timeouts due
# to slow processing of wildcard capturing long output # to slow processing of wildcard capturing long output
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-probes-solib.c Index: gdb-7.5.50.20130215/gdb/testsuite/gdb.base/break-probes-solib.c
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-probes-solib.c 2013-01-18 23:57:50.520792854 +0100 +++ gdb-7.5.50.20130215/gdb/testsuite/gdb.base/break-probes-solib.c 2013-02-15 22:37:35.762417598 +0100
@@ -0,0 +1,24 @@ @@ -0,0 +1,24 @@
+/* Copyright 2012 Free Software Foundation, Inc. +/* Copyright 2012 Free Software Foundation, Inc.
+ +
@ -1620,10 +1620,10 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-probes-solib.c
+ +
+ return 0; + return 0;
+} +}
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-probes.c Index: gdb-7.5.50.20130215/gdb/testsuite/gdb.base/break-probes.c
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-probes.c 2013-01-18 23:57:50.520792854 +0100 +++ gdb-7.5.50.20130215/gdb/testsuite/gdb.base/break-probes.c 2013-02-15 22:37:35.763417600 +0100
@@ -0,0 +1,26 @@ @@ -0,0 +1,26 @@
+/* Copyright 2012 Free Software Foundation, Inc. +/* Copyright 2012 Free Software Foundation, Inc.
+ +
@ -1651,10 +1651,10 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-probes.c
+ +
+ return 0; + return 0;
+} +}
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-probes.exp Index: gdb-7.5.50.20130215/gdb/testsuite/gdb.base/break-probes.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-probes.exp 2013-01-18 23:57:50.520792854 +0100 +++ gdb-7.5.50.20130215/gdb/testsuite/gdb.base/break-probes.exp 2013-02-15 22:37:35.763417600 +0100
@@ -0,0 +1,76 @@ @@ -0,0 +1,76 @@
+# Copyright 2012 Free Software Foundation, Inc. +# Copyright 2012 Free Software Foundation, Inc.
+ +
@ -1732,10 +1732,10 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-probes.exp
+ # Call something to ensure that relocation occurred + # Call something to ensure that relocation occurred
+ gdb_test "call foo(23)" "foo 23.*\\\$.* = .*" + gdb_test "call foo(23)" "foo 23.*\\\$.* = .*"
+} +}
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/info-shared-solib1.c Index: gdb-7.5.50.20130215/gdb/testsuite/gdb.base/info-shared-solib1.c
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/info-shared-solib1.c 2013-01-18 23:57:50.520792854 +0100 +++ gdb-7.5.50.20130215/gdb/testsuite/gdb.base/info-shared-solib1.c 2013-02-15 22:37:35.763417600 +0100
@@ -0,0 +1,24 @@ @@ -0,0 +1,24 @@
+/* Copyright 2012 Free Software Foundation, Inc. +/* Copyright 2012 Free Software Foundation, Inc.
+ +
@ -1761,10 +1761,10 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/info-shared-solib1.c
+ +
+ return 0; + return 0;
+} +}
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/info-shared-solib2.c Index: gdb-7.5.50.20130215/gdb/testsuite/gdb.base/info-shared-solib2.c
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/info-shared-solib2.c 2013-01-18 23:57:50.520792854 +0100 +++ gdb-7.5.50.20130215/gdb/testsuite/gdb.base/info-shared-solib2.c 2013-02-15 22:37:35.763417600 +0100
@@ -0,0 +1,24 @@ @@ -0,0 +1,24 @@
+/* Copyright 2012 Free Software Foundation, Inc. +/* Copyright 2012 Free Software Foundation, Inc.
+ +
@ -1790,10 +1790,10 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/info-shared-solib2.c
+ +
+ return 0; + return 0;
+} +}
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/info-shared.c Index: gdb-7.5.50.20130215/gdb/testsuite/gdb.base/info-shared.c
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/info-shared.c 2013-01-18 23:57:50.520792854 +0100 +++ gdb-7.5.50.20130215/gdb/testsuite/gdb.base/info-shared.c 2013-02-15 22:37:35.763417600 +0100
@@ -0,0 +1,48 @@ @@ -0,0 +1,48 @@
+/* Copyright 2012 Free Software Foundation, Inc. +/* Copyright 2012 Free Software Foundation, Inc.
+ +
@ -1843,10 +1843,10 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/info-shared.c
+ +
+ return 0; + return 0;
+} +}
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/info-shared.exp Index: gdb-7.5.50.20130215/gdb/testsuite/gdb.base/info-shared.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/info-shared.exp 2013-01-18 23:57:50.521792850 +0100 +++ gdb-7.5.50.20130215/gdb/testsuite/gdb.base/info-shared.exp 2013-02-15 22:37:35.764417602 +0100
@@ -0,0 +1,139 @@ @@ -0,0 +1,139 @@
+# Copyright 2012 Free Software Foundation, Inc. +# Copyright 2012 Free Software Foundation, Inc.
+ +

View File

@ -1,142 +0,0 @@
http://sourceware.org/ml/gdb-patches/2013-02/msg00016.html
Subject: [patch] Fix assert crashes with minidebuginfo
Hi Tom,
original bugreport:
https://bugzilla.redhat.com/show_bug.cgi?id=903522
in some cases GDB added separate debug info to minidebuginfo (which itself is
a separate debug info). separate debug info of a separate debug info is not
supported by GDB and it caused a gdb_assert failure.
So the added gdb_assert calls print such violation immediately at
add_separate_debug_objfile, not only in a some rare case found by the
bugreport.
And I have found multiple such fragile checks in GDB so I have protected them
all so that minidebuginfo is always only a sole separate debug info.
No regressions on {x86_64,x86_64-m32,i686}-fedora19pre-linux-gnu.
With the new gdb_asserts (and without the fix) GDB crashes on gdb.gdb/ tests
due to current ncurses-libs-5.9-7.20121017.fc19.x86_64 files.
Thanks,
Jan
gdb/
2013-02-01 Jan Kratochvil <jan.kratochvil@redhat.com>
* elfread.c (elf_symfile_read): Limit separate debug info additions to
files with no separate debug info.
* objfiles.c (add_separate_debug_objfile): Add gdb_assert calls.
* symfile.c (read_symbols): Call find_separate_debug_file_in_section
only for files with no separate debug info.
gdb/testsuite/
2013-02-01 Jan Kratochvil <jan.kratochvil@redhat.com>
* gdb.base/gnu-debugdata.exp): Create ${binfile}.debug,
${binfile}.mini_debuginfo-debuglink, add -k to xz, use now
${binfile}.mini_debuginfo-debuglink and
${binfile}.mini_debuginfo-debuglink.xz.
diff --git a/gdb/elfread.c b/gdb/elfread.c
index 9d630cd..6ca659f 100644
--- a/gdb/elfread.c
+++ b/gdb/elfread.c
@@ -2427,8 +2427,18 @@ elf_symfile_read (struct objfile *objfil
/* If the file has its own symbol tables it has no separate debug
info. `.dynsym'/`.symtab' go to MSYMBOLS, `.debug_info' goes to
SYMTABS/PSYMTABS. `.gnu_debuglink' may no longer be present with
- `.note.gnu.build-id'. */
- else if (!objfile_has_partial_symbols (objfile))
+ `.note.gnu.build-id'.
+
+ .gnu_debugdata is !objfile_has_partial_symbols because it contains only
+ .symtab, not .debug_* section. But if we already added .gnu_debugdata as
+ an objfile via find_separate_debug_file_in_section there was no separate
+ debug info available. Therefore do not attempt to search for another one,
+ objfile->separate_debug_objfile->separate_debug_objfile GDB guarantees to
+ be NULL and we would possibly violate it. */
+
+ else if (!objfile_has_partial_symbols (objfile)
+ && objfile->separate_debug_objfile == NULL
+ && objfile->separate_debug_objfile_backlink == NULL)
{
char *debugfile, *build_id_filename;
diff --git a/gdb/objfiles.c b/gdb/objfiles.c
index 5232c8f..5829699 100644
--- a/gdb/objfiles.c
+++ b/gdb/objfiles.c
@@ -476,6 +476,9 @@ add_separate_debug_objfile (struct objfile *objfile, struct objfile *parent)
/* Must not be already in a list. */
gdb_assert (objfile->separate_debug_objfile_backlink == NULL);
gdb_assert (objfile->separate_debug_objfile_link == NULL);
+ gdb_assert (objfile->separate_debug_objfile == NULL);
+ gdb_assert (parent->separate_debug_objfile_backlink == NULL);
+ gdb_assert (parent->separate_debug_objfile_link == NULL);
objfile->separate_debug_objfile_backlink = parent;
objfile->separate_debug_objfile_link = parent->separate_debug_objfile;
diff --git a/gdb/symfile.c b/gdb/symfile.c
index 63bf329..6f968b7 100644
--- a/gdb/symfile.c
+++ b/gdb/symfile.c
@@ -823,7 +823,12 @@ static void
read_symbols (struct objfile *objfile, int add_flags)
{
(*objfile->sf->sym_read) (objfile, add_flags);
- if (!objfile_has_partial_symbols (objfile))
+
+ /* find_separate_debug_file_in_section should be called only if there is
+ single binary with no existing separate debug info file. */
+ if (!objfile_has_partial_symbols (objfile)
+ && objfile->separate_debug_objfile == NULL
+ && objfile->separate_debug_objfile_backlink == NULL)
{
bfd *abfd = find_separate_debug_file_in_section (objfile);
struct cleanup *cleanup = make_cleanup_bfd_unref (abfd);
diff --git a/gdb/testsuite/gdb.base/gnu-debugdata.exp b/gdb/testsuite/gdb.base/gnu-debugdata.exp
index f34e4e8..55aa3c6 100644
--- a/gdb/testsuite/gdb.base/gnu-debugdata.exp
+++ b/gdb/testsuite/gdb.base/gnu-debugdata.exp
@@ -127,14 +127,30 @@ if {[run "strip" [transform strip] \
return -1
}
+# Separate full debug info into ${binfile}.debug.
+remote_file host delete ${binfile}.debug
+if {[run "copydebug" [transform objcopy] \
+ "--only-keep-debug ${binfile} ${binfile}.debug"]} {
+ return -1
+}
+
+# Add the .gnu_debuglink section to the .gnu_debugdata file.
+# .gnu_debuglink is normally not present in the .gnu_debugdata section but in
+# some files there may be PT_NOTE with NT_GNU_BUILD_ID and GDB could look up
+# the .debug file from it.
+if {[run "addlink" [transform objcopy] \
+ "--add-gnu-debuglink=${binfile}.debug ${binfile}.mini_debuginfo ${binfile}.mini_debuginfo-debuglink"]} {
+ return -1
+}
+
# Inject the compressed data into the .gnu_debugdata section of the
# original binary.
-remote_file host delete ${binfile}.mini_debuginfo.xz
-if {[run "xz" "xz" "${binfile}.mini_debuginfo"]} {
+remote_file host delete ${binfile}.mini_debuginfo-debuglink.xz
+if {[run "xz" "xz" "-k ${binfile}.mini_debuginfo-debuglink"]} {
return -1
}
remote_file host delete ${binfile}.test
-if {[run "objcopy 2" [transform objcopy] "--add-section .gnu_debugdata=${binfile}.mini_debuginfo.xz ${binfile}.strip ${binfile}.test"]} {
+if {[run "objcopy 2" [transform objcopy] "--add-section .gnu_debugdata=${binfile}.mini_debuginfo-debuglink.xz ${binfile}.strip ${binfile}.test"]} {
return -1
}

File diff suppressed because it is too large Load Diff

View File

@ -96,10 +96,10 @@ Content-Type: text/x-patch
Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename=bitpos-wp.patch Content-Disposition: attachment; filename=bitpos-wp.patch
Index: gdb-7.5.50.20130118/gdb/arm-linux-nat.c Index: gdb-7.5.50.20130215/gdb/arm-linux-nat.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/arm-linux-nat.c 2013-01-18 23:34:43.930106839 +0100 --- gdb-7.5.50.20130215.orig/gdb/arm-linux-nat.c 2013-02-15 22:40:18.000000000 +0100
+++ gdb-7.5.50.20130118/gdb/arm-linux-nat.c 2013-01-18 23:34:51.206116513 +0100 +++ gdb-7.5.50.20130215/gdb/arm-linux-nat.c 2013-02-15 22:42:45.988804306 +0100
@@ -1105,7 +1105,7 @@ arm_linux_region_ok_for_hw_watchpoint (C @@ -1105,7 +1105,7 @@ arm_linux_region_ok_for_hw_watchpoint (C
/* Insert a Hardware breakpoint. */ /* Insert a Hardware breakpoint. */
@ -127,11 +127,11 @@ Index: gdb-7.5.50.20130118/gdb/arm-linux-nat.c
{ {
return start <= addr && start + length - 1 >= addr; return start <= addr && start + length - 1 >= addr;
} }
Index: gdb-7.5.50.20130118/gdb/i386-nat.c Index: gdb-7.5.50.20130215/gdb/i386-nat.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/i386-nat.c 2013-01-18 23:34:43.931106841 +0100 --- gdb-7.5.50.20130215.orig/gdb/i386-nat.c 2013-02-15 22:41:53.000000000 +0100
+++ gdb-7.5.50.20130118/gdb/i386-nat.c 2013-01-18 23:34:51.206116513 +0100 +++ gdb-7.5.50.20130215/gdb/i386-nat.c 2013-02-15 22:43:14.005838741 +0100
@@ -591,7 +591,7 @@ i386_update_inferior_debug_regs (struct @@ -589,7 +589,7 @@ i386_update_inferior_debug_regs (struct
of the type TYPE. Return 0 on success, -1 on failure. */ of the type TYPE. Return 0 on success, -1 on failure. */
static int static int
@ -139,8 +139,8 @@ Index: gdb-7.5.50.20130118/gdb/i386-nat.c
+i386_insert_watchpoint (CORE_ADDR addr, LONGEST len, int type, +i386_insert_watchpoint (CORE_ADDR addr, LONGEST len, int type,
struct expression *cond) struct expression *cond)
{ {
struct i386_debug_reg_state *state = i386_debug_reg_state (); struct i386_debug_reg_state *state
@@ -628,7 +628,7 @@ i386_insert_watchpoint (CORE_ADDR addr, @@ -627,7 +627,7 @@ i386_insert_watchpoint (CORE_ADDR addr,
address ADDR, whose length is LEN bytes, and for accesses of the address ADDR, whose length is LEN bytes, and for accesses of the
type TYPE. Return 0 on success, -1 on failure. */ type TYPE. Return 0 on success, -1 on failure. */
static int static int
@ -148,11 +148,11 @@ Index: gdb-7.5.50.20130118/gdb/i386-nat.c
+i386_remove_watchpoint (CORE_ADDR addr, LONGEST len, int type, +i386_remove_watchpoint (CORE_ADDR addr, LONGEST len, int type,
struct expression *cond) struct expression *cond)
{ {
struct i386_debug_reg_state *state = i386_debug_reg_state (); struct i386_debug_reg_state *state
Index: gdb-7.5.50.20130118/gdb/ia64-linux-nat.c Index: gdb-7.5.50.20130215/gdb/ia64-linux-nat.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/ia64-linux-nat.c 2013-01-18 23:34:43.931106841 +0100 --- gdb-7.5.50.20130215.orig/gdb/ia64-linux-nat.c 2013-02-15 22:34:18.000000000 +0100
+++ gdb-7.5.50.20130118/gdb/ia64-linux-nat.c 2013-01-18 23:34:51.206116513 +0100 +++ gdb-7.5.50.20130215/gdb/ia64-linux-nat.c 2013-02-15 22:42:45.989804309 +0100
@@ -542,7 +542,7 @@ is_power_of_2 (int val) @@ -542,7 +542,7 @@ is_power_of_2 (int val)
} }
@ -171,10 +171,10 @@ Index: gdb-7.5.50.20130118/gdb/ia64-linux-nat.c
struct expression *cond) struct expression *cond)
{ {
int idx; int idx;
Index: gdb-7.5.50.20130118/gdb/inf-ttrace.c Index: gdb-7.5.50.20130215/gdb/inf-ttrace.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/inf-ttrace.c 2013-01-18 23:34:43.932106844 +0100 --- gdb-7.5.50.20130215.orig/gdb/inf-ttrace.c 2013-02-15 22:40:18.000000000 +0100
+++ gdb-7.5.50.20130118/gdb/inf-ttrace.c 2013-01-18 23:34:51.206116513 +0100 +++ gdb-7.5.50.20130215/gdb/inf-ttrace.c 2013-02-15 22:42:45.989804309 +0100
@@ -313,14 +313,14 @@ inf_ttrace_disable_page_protections (pid @@ -313,14 +313,14 @@ inf_ttrace_disable_page_protections (pid
type TYPE. */ type TYPE. */
@ -211,10 +211,10 @@ Index: gdb-7.5.50.20130118/gdb/inf-ttrace.c
gdb_assert (type == hw_write); gdb_assert (type == hw_write);
Index: gdb-7.5.50.20130118/gdb/mips-linux-nat.c Index: gdb-7.5.50.20130215/gdb/mips-linux-nat.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/mips-linux-nat.c 2013-01-18 23:34:43.932106844 +0100 --- gdb-7.5.50.20130215.orig/gdb/mips-linux-nat.c 2013-02-15 22:40:18.000000000 +0100
+++ gdb-7.5.50.20130118/gdb/mips-linux-nat.c 2013-01-18 23:34:51.208116518 +0100 +++ gdb-7.5.50.20130215/gdb/mips-linux-nat.c 2013-02-15 22:42:45.990804311 +0100
@@ -1017,7 +1017,7 @@ populate_regs_from_watches (struct pt_wa @@ -1017,7 +1017,7 @@ populate_regs_from_watches (struct pt_wa
watch. Return zero on success. */ watch. Return zero on success. */
@ -233,10 +233,10 @@ Index: gdb-7.5.50.20130118/gdb/mips-linux-nat.c
struct expression *cond) struct expression *cond)
{ {
int retval; int retval;
Index: gdb-7.5.50.20130118/gdb/nto-procfs.c Index: gdb-7.5.50.20130215/gdb/nto-procfs.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/nto-procfs.c 2013-01-18 23:34:43.933106847 +0100 --- gdb-7.5.50.20130215.orig/gdb/nto-procfs.c 2013-01-01 07:32:47.000000000 +0100
+++ gdb-7.5.50.20130118/gdb/nto-procfs.c 2013-01-18 23:34:51.208116518 +0100 +++ gdb-7.5.50.20130215/gdb/nto-procfs.c 2013-02-15 22:42:45.990804311 +0100
@@ -69,10 +69,10 @@ static ptid_t do_attach (ptid_t ptid); @@ -69,10 +69,10 @@ static ptid_t do_attach (ptid_t ptid);
static int procfs_can_use_hw_breakpoint (int, int, int); static int procfs_can_use_hw_breakpoint (int, int, int);
@ -267,10 +267,10 @@ Index: gdb-7.5.50.20130118/gdb/nto-procfs.c
struct expression *cond) struct expression *cond)
{ {
return procfs_hw_watchpoint (addr, len, type); return procfs_hw_watchpoint (addr, len, type);
Index: gdb-7.5.50.20130118/gdb/ppc-linux-nat.c Index: gdb-7.5.50.20130215/gdb/ppc-linux-nat.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/ppc-linux-nat.c 2013-01-18 23:34:43.934106849 +0100 --- gdb-7.5.50.20130215.orig/gdb/ppc-linux-nat.c 2013-02-15 22:40:18.000000000 +0100
+++ gdb-7.5.50.20130118/gdb/ppc-linux-nat.c 2013-01-18 23:34:51.208116518 +0100 +++ gdb-7.5.50.20130215/gdb/ppc-linux-nat.c 2013-02-15 22:42:45.991804313 +0100
@@ -1838,11 +1838,11 @@ can_use_watchpoint_cond_accel (void) @@ -1838,11 +1838,11 @@ can_use_watchpoint_cond_accel (void)
CONDITION_VALUE will hold the value which should be put in the CONDITION_VALUE will hold the value which should be put in the
DVC register. */ DVC register. */
@ -340,10 +340,10 @@ Index: gdb-7.5.50.20130118/gdb/ppc-linux-nat.c
{ {
int mask; int mask;
Index: gdb-7.5.50.20130118/gdb/procfs.c Index: gdb-7.5.50.20130215/gdb/procfs.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/procfs.c 2013-01-18 23:34:43.937106855 +0100 --- gdb-7.5.50.20130215.orig/gdb/procfs.c 2013-02-15 22:40:18.000000000 +0100
+++ gdb-7.5.50.20130118/gdb/procfs.c 2013-01-18 23:35:12.598145073 +0100 +++ gdb-7.5.50.20130215/gdb/procfs.c 2013-02-15 22:42:45.992804315 +0100
@@ -2433,7 +2433,7 @@ procfs_address_to_host_pointer (CORE_ADD @@ -2433,7 +2433,7 @@ procfs_address_to_host_pointer (CORE_ADD
#endif #endif
@ -380,10 +380,10 @@ Index: gdb-7.5.50.20130118/gdb/procfs.c
struct expression *cond) struct expression *cond)
{ {
return procfs_set_watchpoint (inferior_ptid, addr, 0, 0, 0); return procfs_set_watchpoint (inferior_ptid, addr, 0, 0, 0);
Index: gdb-7.5.50.20130118/gdb/remote-m32r-sdi.c Index: gdb-7.5.50.20130215/gdb/remote-m32r-sdi.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/remote-m32r-sdi.c 2013-01-18 23:34:51.211116523 +0100 --- gdb-7.5.50.20130215.orig/gdb/remote-m32r-sdi.c 2013-01-01 07:32:50.000000000 +0100
+++ gdb-7.5.50.20130118/gdb/remote-m32r-sdi.c 2013-01-18 23:36:50.004276296 +0100 +++ gdb-7.5.50.20130215/gdb/remote-m32r-sdi.c 2013-02-15 22:42:45.993804317 +0100
@@ -1417,14 +1417,15 @@ m32r_can_use_hw_watchpoint (int type, in @@ -1417,14 +1417,15 @@ m32r_can_use_hw_watchpoint (int type, in
watchpoint. */ watchpoint. */
@ -422,10 +422,10 @@ Index: gdb-7.5.50.20130118/gdb/remote-m32r-sdi.c
for (i = 0; i < MAX_ACCESS_BREAKS; i++) for (i = 0; i < MAX_ACCESS_BREAKS; i++)
{ {
Index: gdb-7.5.50.20130118/gdb/remote-mips.c Index: gdb-7.5.50.20130215/gdb/remote-mips.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/remote-mips.c 2013-01-18 23:34:43.939106860 +0100 --- gdb-7.5.50.20130215.orig/gdb/remote-mips.c 2013-01-01 07:32:50.000000000 +0100
+++ gdb-7.5.50.20130118/gdb/remote-mips.c 2013-01-18 23:34:51.212116525 +0100 +++ gdb-7.5.50.20130215/gdb/remote-mips.c 2013-02-15 22:42:45.994804319 +0100
@@ -2419,7 +2419,7 @@ calculate_mask (CORE_ADDR addr, int len) @@ -2419,7 +2419,7 @@ calculate_mask (CORE_ADDR addr, int len)
watchpoint. */ watchpoint. */
@ -444,11 +444,11 @@ Index: gdb-7.5.50.20130118/gdb/remote-mips.c
struct expression *cond) struct expression *cond)
{ {
if (mips_clear_breakpoint (addr, len, type)) if (mips_clear_breakpoint (addr, len, type))
Index: gdb-7.5.50.20130118/gdb/remote.c Index: gdb-7.5.50.20130215/gdb/remote.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/remote.c 2013-01-18 23:34:43.943106869 +0100 --- gdb-7.5.50.20130215.orig/gdb/remote.c 2013-02-15 22:40:18.000000000 +0100
+++ gdb-7.5.50.20130118/gdb/remote.c 2013-01-18 23:34:51.214116529 +0100 +++ gdb-7.5.50.20130215/gdb/remote.c 2013-02-15 22:42:45.996804323 +0100
@@ -8093,7 +8093,7 @@ watchpoint_to_Z_packet (int type) @@ -8155,7 +8155,7 @@ watchpoint_to_Z_packet (int type)
} }
static int static int
@ -457,7 +457,7 @@ Index: gdb-7.5.50.20130118/gdb/remote.c
struct expression *cond) struct expression *cond)
{ {
struct remote_state *rs = get_remote_state (); struct remote_state *rs = get_remote_state ();
@@ -8108,7 +8108,7 @@ remote_insert_watchpoint (CORE_ADDR addr @@ -8170,7 +8170,7 @@ remote_insert_watchpoint (CORE_ADDR addr
p = strchr (rs->buf, '\0'); p = strchr (rs->buf, '\0');
addr = remote_address_masked (addr); addr = remote_address_masked (addr);
p += hexnumstr (p, (ULONGEST) addr); p += hexnumstr (p, (ULONGEST) addr);
@ -466,7 +466,7 @@ Index: gdb-7.5.50.20130118/gdb/remote.c
putpkt (rs->buf); putpkt (rs->buf);
getpkt (&rs->buf, &rs->buf_size, 0); getpkt (&rs->buf, &rs->buf_size, 0);
@@ -8128,7 +8128,7 @@ remote_insert_watchpoint (CORE_ADDR addr @@ -8190,7 +8190,7 @@ remote_insert_watchpoint (CORE_ADDR addr
static int static int
remote_watchpoint_addr_within_range (struct target_ops *target, CORE_ADDR addr, remote_watchpoint_addr_within_range (struct target_ops *target, CORE_ADDR addr,
@ -475,7 +475,7 @@ Index: gdb-7.5.50.20130118/gdb/remote.c
{ {
CORE_ADDR diff = remote_address_masked (addr - start); CORE_ADDR diff = remote_address_masked (addr - start);
@@ -8137,7 +8137,7 @@ remote_watchpoint_addr_within_range (str @@ -8199,7 +8199,7 @@ remote_watchpoint_addr_within_range (str
static int static int
@ -484,7 +484,7 @@ Index: gdb-7.5.50.20130118/gdb/remote.c
struct expression *cond) struct expression *cond)
{ {
struct remote_state *rs = get_remote_state (); struct remote_state *rs = get_remote_state ();
@@ -8152,7 +8152,7 @@ remote_remove_watchpoint (CORE_ADDR addr @@ -8214,7 +8214,7 @@ remote_remove_watchpoint (CORE_ADDR addr
p = strchr (rs->buf, '\0'); p = strchr (rs->buf, '\0');
addr = remote_address_masked (addr); addr = remote_address_masked (addr);
p += hexnumstr (p, (ULONGEST) addr); p += hexnumstr (p, (ULONGEST) addr);
@ -493,10 +493,10 @@ Index: gdb-7.5.50.20130118/gdb/remote.c
putpkt (rs->buf); putpkt (rs->buf);
getpkt (&rs->buf, &rs->buf_size, 0); getpkt (&rs->buf, &rs->buf_size, 0);
Index: gdb-7.5.50.20130118/gdb/s390-nat.c Index: gdb-7.5.50.20130215/gdb/s390-nat.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/s390-nat.c 2013-01-18 23:34:43.944106871 +0100 --- gdb-7.5.50.20130215.orig/gdb/s390-nat.c 2013-02-15 22:40:18.000000000 +0100
+++ gdb-7.5.50.20130118/gdb/s390-nat.c 2013-01-18 23:34:51.215116531 +0100 +++ gdb-7.5.50.20130215/gdb/s390-nat.c 2013-02-15 22:42:45.997804325 +0100
@@ -516,7 +516,7 @@ s390_fix_watch_points (struct lwp_info * @@ -516,7 +516,7 @@ s390_fix_watch_points (struct lwp_info *
} }
@ -515,10 +515,10 @@ Index: gdb-7.5.50.20130118/gdb/s390-nat.c
struct expression *cond) struct expression *cond)
{ {
struct lwp_info *lp; struct lwp_info *lp;
Index: gdb-7.5.50.20130118/gdb/target.c Index: gdb-7.5.50.20130215/gdb/target.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/target.c 2013-01-18 23:34:43.947106878 +0100 --- gdb-7.5.50.20130215.orig/gdb/target.c 2013-02-15 22:40:18.000000000 +0100
+++ gdb-7.5.50.20130118/gdb/target.c 2013-01-18 23:34:51.216116533 +0100 +++ gdb-7.5.50.20130215/gdb/target.c 2013-02-15 22:42:45.997804325 +0100
@@ -49,7 +49,8 @@ static void target_info (char *, int); @@ -49,7 +49,8 @@ static void target_info (char *, int);
static void default_terminal_info (char *, int); static void default_terminal_info (char *, int);
@ -579,7 +579,7 @@ Index: gdb-7.5.50.20130118/gdb/target.c
return_zero); return_zero);
de_fault (to_terminal_init, de_fault (to_terminal_init,
(void (*) (void)) (void (*) (void))
@@ -3560,7 +3562,7 @@ default_region_ok_for_hw_watchpoint (COR @@ -3558,7 +3560,7 @@ default_region_ok_for_hw_watchpoint (COR
static int static int
default_watchpoint_addr_within_range (struct target_ops *target, default_watchpoint_addr_within_range (struct target_ops *target,
CORE_ADDR addr, CORE_ADDR addr,
@ -588,7 +588,7 @@ Index: gdb-7.5.50.20130118/gdb/target.c
{ {
return addr >= start && addr < start + length; return addr >= start && addr < start + length;
} }
@@ -4267,7 +4269,7 @@ debug_to_region_ok_for_hw_watchpoint (CO @@ -4265,7 +4267,7 @@ debug_to_region_ok_for_hw_watchpoint (CO
} }
static int static int
@ -597,7 +597,7 @@ Index: gdb-7.5.50.20130118/gdb/target.c
struct expression *cond) struct expression *cond)
{ {
int retval; int retval;
@@ -4277,8 +4279,8 @@ debug_to_can_accel_watchpoint_condition @@ -4275,8 +4277,8 @@ debug_to_can_accel_watchpoint_condition
fprintf_unfiltered (gdb_stdlog, fprintf_unfiltered (gdb_stdlog,
"target_can_accel_watchpoint_condition " "target_can_accel_watchpoint_condition "
@ -608,7 +608,7 @@ Index: gdb-7.5.50.20130118/gdb/target.c
host_address_to_string (cond), (unsigned long) retval); host_address_to_string (cond), (unsigned long) retval);
return retval; return retval;
} }
@@ -4313,7 +4315,7 @@ debug_to_stopped_data_address (struct ta @@ -4311,7 +4313,7 @@ debug_to_stopped_data_address (struct ta
static int static int
debug_to_watchpoint_addr_within_range (struct target_ops *target, debug_to_watchpoint_addr_within_range (struct target_ops *target,
CORE_ADDR addr, CORE_ADDR addr,
@ -617,7 +617,7 @@ Index: gdb-7.5.50.20130118/gdb/target.c
{ {
int retval; int retval;
@@ -4321,9 +4323,9 @@ debug_to_watchpoint_addr_within_range (s @@ -4319,9 +4321,9 @@ debug_to_watchpoint_addr_within_range (s
start, length); start, length);
fprintf_filtered (gdb_stdlog, fprintf_filtered (gdb_stdlog,
@ -629,7 +629,7 @@ Index: gdb-7.5.50.20130118/gdb/target.c
return retval; return retval;
} }
@@ -4358,7 +4360,7 @@ debug_to_remove_hw_breakpoint (struct gd @@ -4356,7 +4358,7 @@ debug_to_remove_hw_breakpoint (struct gd
} }
static int static int
@ -638,7 +638,7 @@ Index: gdb-7.5.50.20130118/gdb/target.c
struct expression *cond) struct expression *cond)
{ {
int retval; int retval;
@@ -4366,14 +4368,14 @@ debug_to_insert_watchpoint (CORE_ADDR ad @@ -4364,14 +4366,14 @@ debug_to_insert_watchpoint (CORE_ADDR ad
retval = debug_target.to_insert_watchpoint (addr, len, type, cond); retval = debug_target.to_insert_watchpoint (addr, len, type, cond);
fprintf_unfiltered (gdb_stdlog, fprintf_unfiltered (gdb_stdlog,
@ -656,7 +656,7 @@ Index: gdb-7.5.50.20130118/gdb/target.c
struct expression *cond) struct expression *cond)
{ {
int retval; int retval;
@@ -4381,8 +4383,8 @@ debug_to_remove_watchpoint (CORE_ADDR ad @@ -4379,8 +4381,8 @@ debug_to_remove_watchpoint (CORE_ADDR ad
retval = debug_target.to_remove_watchpoint (addr, len, type, cond); retval = debug_target.to_remove_watchpoint (addr, len, type, cond);
fprintf_unfiltered (gdb_stdlog, fprintf_unfiltered (gdb_stdlog,
@ -667,10 +667,10 @@ Index: gdb-7.5.50.20130118/gdb/target.c
host_address_to_string (cond), (unsigned long) retval); host_address_to_string (cond), (unsigned long) retval);
return retval; return retval;
} }
Index: gdb-7.5.50.20130118/gdb/target.h Index: gdb-7.5.50.20130215/gdb/target.h
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/target.h 2013-01-18 23:34:43.947106878 +0100 --- gdb-7.5.50.20130215.orig/gdb/target.h 2013-02-15 22:40:18.000000000 +0100
+++ gdb-7.5.50.20130118/gdb/target.h 2013-01-18 23:34:51.217116536 +0100 +++ gdb-7.5.50.20130215/gdb/target.h 2013-02-15 22:42:45.998804328 +0100
@@ -466,8 +466,8 @@ struct target_ops @@ -466,8 +466,8 @@ struct target_ops
/* Documentation of what the two routines below are expected to do is /* Documentation of what the two routines below are expected to do is

View File

@ -27,14 +27,14 @@
Summary: A GNU source-level debugger for C, C++, Fortran, Go and other languages Summary: A GNU source-level debugger for C, C++, Fortran, Go and other languages
Name: %{?scl_prefix}gdb Name: %{?scl_prefix}gdb
%global snap 20120817 %global snap 20130215
# See timestamp of source gnulib installed into gdb/gnulib/ . # See timestamp of source gnulib installed into gdb/gnulib/ .
%global snapgnulib 20120623 %global snapgnulib 20121213
Version: 7.5.50.20130118 Version: 7.5.50.20130215
# The release always contains a leading reserved number, start it at 1. # 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. # `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
Release: 6%{?dist} Release: 7%{?dist}
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and BSD and Public Domain License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and BSD and Public Domain
Group: Development/Debuggers Group: Development/Debuggers
@ -366,10 +366,6 @@ Patch317: gdb-6.8-sparc64-silence-memcpy-check.patch
#=fedoratest #=fedoratest
Patch320: gdb-6.5-section-num-fixup-test.patch Patch320: gdb-6.5-section-num-fixup-test.patch
# Fix PRPSINFO in the core files dumped by gcore (BZ 254229).
#=push
Patch329: gdb-6.8-bz254229-gcore-prpsinfo.patch
# Fix register assignments with no GDB stack frames (BZ 436037). # Fix register assignments with no GDB stack frames (BZ 436037).
#=push+work: This fix is incorrect. #=push+work: This fix is incorrect.
Patch330: gdb-6.8-bz436037-reg-no-longer-active.patch Patch330: gdb-6.8-bz436037-reg-no-longer-active.patch
@ -561,14 +557,6 @@ Patch816: gdb-rhbz795424-bitpos-25of25.patch
Patch817: gdb-rhbz795424-bitpos-25of25-test.patch Patch817: gdb-rhbz795424-bitpos-25of25-test.patch
Patch818: gdb-rhbz795424-bitpos-lazyvalue.patch Patch818: gdb-rhbz795424-bitpos-lazyvalue.patch
# Fix gdb.fortran/common-block.exp in PIE mode.
#=push
Patch823: gdb-commonblock-pie.patch
#=push
# Fix assert crashes with minidebuginfo (BZ 903522).
Patch824: gdb-minidebuginfo-crash.patch
%if 0%{!?rhel:1} || 0%{?rhel} > 6 %if 0%{!?rhel:1} || 0%{?rhel} > 6
# RL_STATE_FEDORA_GDB would not be found for: # RL_STATE_FEDORA_GDB would not be found for:
# Patch642: gdb-readline62-ask-more-rh.patch # Patch642: gdb-readline62-ask-more-rh.patch
@ -829,7 +817,6 @@ find -name "*.info*"|xargs rm -f
%patch315 -p1 %patch315 -p1
%patch317 -p1 %patch317 -p1
%patch320 -p1 %patch320 -p1
%patch329 -p1
%patch330 -p1 %patch330 -p1
%patch343 -p1 %patch343 -p1
%patch348 -p1 %patch348 -p1
@ -882,8 +869,6 @@ find -name "*.info*"|xargs rm -f
%patch816 -p1 %patch816 -p1
%patch817 -p1 %patch817 -p1
%patch818 -p1 %patch818 -p1
%patch823 -p1
%patch824 -p1
%patch393 -p1 %patch393 -p1
%if 0%{!?el5:1} || 0%{?scl:1} %if 0%{!?el5:1} || 0%{?scl:1}
@ -1383,6 +1368,9 @@ fi
%endif # 0%{!?el5:1} || "%{_target_cpu}" == "noarch" %endif # 0%{!?el5:1} || "%{_target_cpu}" == "noarch"
%changelog %changelog
* Mon Feb 18 2013 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.5.50.20130215-7.fc19
- Rebase to FSF GDB 7.5.50.20130215 (pre-7.6 snapshot).
* Fri Feb 8 2013 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.5.50.20130118-6.fc19 * Fri Feb 8 2013 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.5.50.20130118-6.fc19
- Re-enable PDF in gdb-doc after texinfo RH BZ 876710 has been fixed. - Re-enable PDF in gdb-doc after texinfo RH BZ 876710 has been fixed.

View File

@ -1,2 +1,2 @@
4981307aa9619bbec5b73261e4e41c8d gdb-libstdc++-v3-python-r155978.tar.bz2 4981307aa9619bbec5b73261e4e41c8d gdb-libstdc++-v3-python-r155978.tar.bz2
889f62ad99a041daf5143c61a559cf2f gdb-7.5.50.20130118.tar.bz2 8d4d5baf06acf7c95211302efffb16ad gdb-7.5.50.20130215.tar.bz2