diff --git a/.gitignore b/.gitignore index 32910a8..818b1e6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ -gdb-7.1.90.20100806.tar.bz2 -/gdb-7.2.tar.bz2 +gdb-7.2.tar.bz2 diff --git a/gdb-6.3-gstack-20050411.patch b/gdb-6.3-gstack-20050411.patch index 100b877..2d99428 100644 --- a/gdb-6.3-gstack-20050411.patch +++ b/gdb-6.3-gstack-20050411.patch @@ -4,10 +4,11 @@ to install and uninstall. * gstack.sh, gstack.1: New files. -diff -up -ruNp gdb-7.0.1-empty/gdb/Makefile.in gdb-7.0.1/gdb/Makefile.in ---- gdb-7.0.1-empty/gdb/Makefile.in 2010-04-07 20:36:04.000000000 +0200 -+++ gdb-7.0.1/gdb/Makefile.in 2010-04-07 20:36:42.000000000 +0200 -@@ -989,7 +989,7 @@ install: all install-only +Index: gdb-7.2/gdb/Makefile.in +=================================================================== +--- gdb-7.2.orig/gdb/Makefile.in 2010-09-03 09:37:55.000000000 +0200 ++++ gdb-7.2/gdb/Makefile.in 2010-09-03 09:38:45.000000000 +0200 +@@ -1010,7 +1010,7 @@ install: all install-only # The "install-only" target also installs the syscalls' XML files in # the system. @@ -16,10 +17,11 @@ diff -up -ruNp gdb-7.0.1-empty/gdb/Makefile.in gdb-7.0.1/gdb/Makefile.in transformed_name=`t='$(program_transform_name)'; \ echo gdb | sed -e "$$t"` ; \ if test "x$$transformed_name" = x; then \ -@@ -1021,9 +1021,26 @@ install-tui: - $(DESTDIR)$(man1dir) ; \ - $(INSTALL_DATA) $(srcdir)/gdb.1 \ - $(DESTDIR)$(man1dir)/$$transformed_name.1 +@@ -1046,7 +1046,25 @@ install-tui: + install-python: + $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(GDB_DATADIR)/python/gdb + +-uninstall: force $(CONFIG_UNINSTALL) +GSTACK=gstack +.PHONY: install-gstack +install-gstack: @@ -37,14 +39,12 @@ diff -up -ruNp gdb-7.0.1-empty/gdb/Makefile.in gdb-7.0.1/gdb/Makefile.in + $(DESTDIR)$(man1dir) ; \ + : $(INSTALL_DATA) $(srcdir)/gstack.1 \ + $(DESTDIR)$(man1dir)/$$transformed_name.1 - - --uninstall: force $(CONFIG_UNINSTALL) ++ +uninstall: force uninstall-gstack $(CONFIG_UNINSTALL) transformed_name=`t='$(program_transform_name)'; \ echo gdb | sed -e $$t` ; \ if test "x$$transformed_name" = x; then \ -@@ -1045,6 +1062,17 @@ uninstall-tui: +@@ -1068,6 +1086,17 @@ uninstall-tui: fi ; \ rm -f $(DESTDIR)$(bindir)/$$transformed_name$(EXEEXT) \ $(DESTDIR)$(man1dir)/$$transformed_name.1 @@ -62,9 +62,10 @@ diff -up -ruNp gdb-7.0.1-empty/gdb/Makefile.in gdb-7.0.1/gdb/Makefile.in # The C++ name parser can be built standalone for testing. test-cp-name-parser.o: cp-name-parser.c -diff -up -ruNp gdb-7.0.1-empty/gdb/gstack.sh gdb-7.0.1/gdb/gstack.sh ---- gdb-7.0.1-empty/gdb/gstack.sh 1970-01-01 01:00:00.000000000 +0100 -+++ gdb-7.0.1/gdb/gstack.sh 2010-04-07 20:36:47.000000000 +0200 +Index: gdb-7.2/gdb/gstack.sh +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ gdb-7.2/gdb/gstack.sh 2010-09-03 09:38:12.000000000 +0200 @@ -0,0 +1,48 @@ +#!/bin/sh + @@ -114,8 +115,10 @@ diff -up -ruNp gdb-7.0.1-empty/gdb/gstack.sh gdb-7.0.1/gdb/gstack.sh + -e 's/^\((gdb) \)*//' \ + -e '/^#/p' \ + -e '/^Thread/p' ---- /dev/null 2010-04-07 06:20:52.289994508 +0200 -+++ gdb-7.0.1/gdb/testsuite/gdb.base/gstack.exp 2010-04-07 21:53:57.000000000 +0200 +Index: gdb-7.2/gdb/testsuite/gdb.base/gstack.exp +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ gdb-7.2/gdb/testsuite/gdb.base/gstack.exp 2010-09-03 09:38:12.000000000 +0200 @@ -0,0 +1,71 @@ +# Copyright (C) 2010 Free Software Foundation, Inc. + @@ -188,8 +191,10 @@ diff -up -ruNp gdb-7.0.1-empty/gdb/gstack.sh gdb-7.0.1/gdb/gstack.sh +gdb_exit + +remote_exec host "kill -9 $pid" ---- /dev/null 2010-04-07 06:20:52.289994508 +0200 -+++ gdb-7.0.1/gdb/testsuite/gdb.base/gstack.c 2010-04-07 21:46:52.000000000 +0200 +Index: gdb-7.2/gdb/testsuite/gdb.base/gstack.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ gdb-7.2/gdb/testsuite/gdb.base/gstack.c 2010-09-03 09:38:12.000000000 +0200 @@ -0,0 +1,43 @@ +/* This testcase is part of GDB, the GNU debugger. + diff --git a/gdb-archer.patch b/gdb-archer.patch index e78e79e..f0e3f2f 100644 --- a/gdb-archer.patch +++ b/gdb-archer.patch @@ -2,7 +2,7 @@ http://sourceware.org/gdb/wiki/ProjectArcher http://sourceware.org/gdb/wiki/ArcherBranchManagement GIT snapshot: -commit af507f71e376b19f8ee9d54067924790566440e8 +commit 30a7ce8ffc2b54bc4453a127be8dd28a3ea6d299 branch `archer' - the merge of branches: archer-jankratochvil-vla @@ -15,7 +15,7 @@ archer-tromey-optional-psymtab (cherry-picked from post-7.2 master) diff --git a/gdb/Makefile.in b/gdb/Makefile.in -index 6dbb284..6133da3 100644 +index f07bc8b..3703dca 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -169,6 +169,12 @@ TARGET_SYSTEM_ROOT = @TARGET_SYSTEM_ROOT@ @@ -57,7 +57,7 @@ index 6dbb284..6133da3 100644 # Header files that already have srcdir in them, or which are in objdir. -@@ -1299,6 +1305,12 @@ stamp-h: $(srcdir)/config.in config.status +@@ -1301,6 +1307,12 @@ stamp-h: $(srcdir)/config.in config.status CONFIG_LINKS= \ $(SHELL) config.status @@ -70,7 +70,7 @@ index 6dbb284..6133da3 100644 config.status: $(srcdir)/configure configure.tgt configure.host $(SHELL) config.status --recheck -@@ -2022,6 +2034,10 @@ py-function.o: $(srcdir)/python/py-function.c +@@ -2024,6 +2036,10 @@ py-function.o: $(srcdir)/python/py-function.c $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-function.c $(POSTCOMPILE) @@ -81,7 +81,7 @@ index 6dbb284..6133da3 100644 py-inferior.o: $(srcdir)/python/py-inferior.c $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-inferior.c $(POSTCOMPILE) -@@ -2070,6 +2086,36 @@ py-value.o: $(srcdir)/python/py-value.c +@@ -2072,6 +2088,36 @@ py-value.o: $(srcdir)/python/py-value.c $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-value.c $(POSTCOMPILE) @@ -289,7 +289,7 @@ index 0348bf4..f01d0ee 100644 /* Return the innermost stack frame executing inside of BLOCK, diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c -index 4affe0a..584c68e 100644 +index 6a6864c..5df336d 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -62,6 +62,7 @@ @@ -1349,7 +1349,7 @@ index 1fc457d..f4c846a 100644 #undef PYTHON_PATH_RELOCATABLE diff --git a/gdb/configure b/gdb/configure -index 94eb9b9..e49da08 100755 +index 041ffc1..8243abb 100755 --- a/gdb/configure +++ b/gdb/configure @@ -679,6 +679,8 @@ REPORT_BUGS_TO @@ -1454,17 +1454,16 @@ index 94eb9b9..e49da08 100755 subdirs="$subdirs doc testsuite" -@@ -10881,6 +10955,8 @@ $as_echo "#define HAVE_PYTHON 1" >>confdefs.h - CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_PYTHON_OBS)" +@@ -10919,6 +10993,7 @@ $as_echo "#define HAVE_PYTHON 1" >>confdefs.h CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_PYTHON_DEPS)" CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_PYTHON_SRCS)" -+ CONFIG_INSTALL="$CONFIG_INSTALL install-python" + CONFIG_INSTALL="$CONFIG_INSTALL install-python" + CONFIG_UNINSTALL="$CONFIG_UNINSTALL uninstall-python" ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_PYTHON_CFLAGS)" # Flags needed to compile Python code (taken from python-config --cflags). diff --git a/gdb/configure.ac b/gdb/configure.ac -index 9300544..380473a 100644 +index b69c3b6..4e89558 100644 --- a/gdb/configure.ac +++ b/gdb/configure.ac @@ -108,6 +108,51 @@ AS_HELP_STRING([--with-relocated-sources=PATH], [automatically relocate this pat @@ -1519,17 +1518,16 @@ index 9300544..380473a 100644 AC_CONFIG_SUBDIRS(doc testsuite) # Check whether to support alternative target configurations -@@ -828,6 +873,8 @@ if test "${have_libpython}" != no; then - CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_PYTHON_OBS)" +@@ -833,6 +878,7 @@ if test "${have_libpython}" != no; then CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_PYTHON_DEPS)" CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_PYTHON_SRCS)" -+ CONFIG_INSTALL="$CONFIG_INSTALL install-python" + CONFIG_INSTALL="$CONFIG_INSTALL install-python" + CONFIG_UNINSTALL="$CONFIG_UNINSTALL uninstall-python" ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_PYTHON_CFLAGS)" # Flags needed to compile Python code (taken from python-config --cflags). diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo -index 1297175..c030b65 100644 +index 65d4899..96767b0 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -1162,6 +1162,16 @@ for remote debugging. @@ -1549,7 +1547,7 @@ index 1297175..c030b65 100644 @c resolve the situation of these eventually @item -tui @cindex @code{--tui} -@@ -14282,6 +14292,7 @@ program. To debug a core dump of a previous run, you must also tell +@@ -14308,6 +14318,7 @@ program. To debug a core dump of a previous run, you must also tell @menu * Files:: Commands to specify files * Separate Debug Files:: Debugging information in separate files @@ -1557,7 +1555,7 @@ index 1297175..c030b65 100644 * Symbol Errors:: Errors reading symbol files * Data Files:: GDB data files @end menu -@@ -15171,6 +15182,46 @@ gnu_debuglink_crc32 (unsigned long crc, +@@ -15197,6 +15208,46 @@ gnu_debuglink_crc32 (unsigned long crc, This computation does not apply to the ``build ID'' method. @@ -1604,7 +1602,7 @@ index 1297175..c030b65 100644 @node Symbol Errors @section Errors Reading Symbol Files -@@ -20310,8 +20361,6 @@ containing @code{end}. For example: +@@ -20349,8 +20400,6 @@ containing @code{end}. For example: @smallexample (@value{GDBP}) python @@ -1613,7 +1611,7 @@ index 1297175..c030b65 100644 >print 23 >end 23 -@@ -20324,6 +20373,14 @@ in a Python script. This can be controlled using @code{maint set +@@ -20363,6 +20412,14 @@ in a Python script. This can be controlled using @code{maint set python print-stack}: if @code{on}, the default, then Python stack printing is enabled; if @code{off}, then Python stack printing is disabled. @@ -1628,7 +1626,7 @@ index 1297175..c030b65 100644 @end table It is also possible to execute a Python script from the @value{GDBN} -@@ -20345,6 +20402,14 @@ and thus is always available. +@@ -20384,6 +20441,14 @@ and thus is always available. @cindex python api @cindex programming in python @@ -1643,7 +1641,7 @@ index 1297175..c030b65 100644 @cindex python stdout @cindex python pagination At startup, @value{GDBN} overrides Python's @code{sys.stdout} and -@@ -20356,7 +20421,7 @@ situation, a Python @code{KeyboardInterrupt} exception is thrown. +@@ -20395,7 +20460,7 @@ situation, a Python @code{KeyboardInterrupt} exception is thrown. @menu * Basic Python:: Basic Python Functions. * Exception Handling:: @@ -1652,7 +1650,7 @@ index 1297175..c030b65 100644 * Types In Python:: Python representation of types. * Pretty Printing API:: Pretty-printing values. * Selecting Pretty-Printers:: How GDB chooses a pretty-printer. -@@ -20415,6 +20480,12 @@ Return a sequence holding all of @value{GDBN}'s breakpoints. +@@ -20456,6 +20521,12 @@ Return a sequence holding all of @value{GDBN}'s breakpoints. @xref{Breakpoints In Python}, for more information. @end defun @@ -1665,7 +1663,7 @@ index 1297175..c030b65 100644 @findex gdb.parameter @defun parameter parameter Return the value of a @value{GDBN} parameter. @var{parameter} is a -@@ -20431,6 +20502,7 @@ a Python value of the appropriate type, and returned. +@@ -20472,6 +20543,7 @@ a Python value of the appropriate type, and returned. @defun history number Return a value from @value{GDBN}'s value history (@pxref{Value History}). @var{number} indicates which history element to return. @@ -1673,7 +1671,7 @@ index 1297175..c030b65 100644 If @var{number} is negative, then @value{GDBN} will take its absolute value and count backward from the last element (i.e., the most recent element) to find the value to return. If @var{number} is zero, then @value{GDBN} will -@@ -20455,6 +20527,21 @@ compute values, for example, it is the only way to get the value of a +@@ -20496,6 +20568,21 @@ compute values, for example, it is the only way to get the value of a convenience variable (@pxref{Convenience Vars}) as a @code{gdb.Value}. @end defun @@ -1880,7 +1878,7 @@ index 61b8f00..d94c03c 100644 /* The current depth of dwarf expression recursion, via DW_OP_call*, DW_OP_fbreg, DW_OP_push_object_address, etc., and the maximum diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c -index 2a8e557..be74412 100644 +index f59bc40..7ff0ef9 100644 --- a/gdb/dwarf2loc.c +++ b/gdb/dwarf2loc.c @@ -48,6 +48,12 @@ static void @@ -2158,7 +2156,7 @@ index 2a8e557..be74412 100644 retval = allocate_value (type); VALUE_LVAL (retval) = lval_memory; set_value_lazy (retval, 1); -@@ -2586,11 +2744,51 @@ loclist_tracepoint_var_ref (struct symbol *symbol, struct gdbarch *gdbarch, +@@ -2590,11 +2748,51 @@ loclist_tracepoint_var_ref (struct symbol *symbol, struct gdbarch *gdbarch, dlbaton->per_cu); } @@ -2232,7 +2230,7 @@ index 826bc45..1e7d8dc 100644 #endif /* dwarf2loc.h */ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c -index 16381de..e286f4c 100644 +index 1e75235..d54e266 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -51,6 +51,9 @@ @@ -3565,7 +3563,7 @@ index 16381de..e286f4c 100644 do_cleanups (back_to); } -@@ -3559,6 +4542,46 @@ free_cu_line_header (void *arg) +@@ -3557,6 +4540,46 @@ free_cu_line_header (void *arg) } static void @@ -3612,7 +3610,7 @@ index 16381de..e286f4c 100644 read_file_scope (struct die_info *die, struct dwarf2_cu *cu) { struct objfile *objfile = cu->objfile; -@@ -3584,35 +4607,7 @@ read_file_scope (struct die_info *die, struct dwarf2_cu *cu) +@@ -3582,35 +4605,7 @@ read_file_scope (struct die_info *die, struct dwarf2_cu *cu) lowpc += baseaddr; highpc += baseaddr; @@ -3649,7 +3647,7 @@ index 16381de..e286f4c 100644 attr = dwarf2_attr (die, DW_AT_language, cu); if (attr) -@@ -5531,6 +6526,29 @@ process_enumeration_scope (struct die_info *die, struct dwarf2_cu *cu) +@@ -5529,6 +6524,29 @@ process_enumeration_scope (struct die_info *die, struct dwarf2_cu *cu) new_symbol (die, this_type, cu); } @@ -3679,7 +3677,7 @@ index 16381de..e286f4c 100644 /* 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 arrays. */ -@@ -5544,7 +6562,7 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu) +@@ -5542,7 +6560,7 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu) struct type *element_type, *range_type, *index_type; struct type **range_types = NULL; struct attribute *attr; @@ -3688,7 +3686,7 @@ index 16381de..e286f4c 100644 struct cleanup *back_to; char *name; -@@ -5597,17 +6615,11 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu) +@@ -5595,17 +6613,11 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu) type = element_type; if (read_array_order (die, cu) == DW_ORD_col_major) @@ -3711,7 +3709,7 @@ index 16381de..e286f4c 100644 /* Understand Dwarf2 support for vector types (like they occur on the PowerPC w/ AltiVec). Gcc just adds another attribute to the -@@ -6061,29 +7073,114 @@ read_tag_string_type (struct die_info *die, struct dwarf2_cu *cu) +@@ -6059,29 +7071,114 @@ read_tag_string_type (struct die_info *die, struct dwarf2_cu *cu) struct gdbarch *gdbarch = get_objfile_arch (objfile); struct type *type, *range_type, *index_type, *char_type; struct attribute *attr; @@ -3840,7 +3838,7 @@ index 16381de..e286f4c 100644 char_type = language_string_char_type (cu->language_defn, gdbarch); type = create_string_type (NULL, char_type, range_type); -@@ -6326,60 +7423,136 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) +@@ -6324,60 +7421,136 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) struct type *base_type; struct type *range_type; struct attribute *attr; @@ -4011,7 +4009,7 @@ index 16381de..e286f4c 100644 } /* Dwarf-2 specifications explicitly allows to create subrange types -@@ -6421,20 +7594,41 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) +@@ -6419,20 +7592,41 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) } } @@ -4065,7 +4063,7 @@ index 16381de..e286f4c 100644 name = dwarf2_name (die, cu); if (name) -@@ -8714,10 +9908,12 @@ var_decode_location (struct attribute *attr, struct symbol *sym, +@@ -8712,10 +9906,12 @@ var_decode_location (struct attribute *attr, struct symbol *sym, (i.e. when the value of a register or memory location is referenced, or a thread-local block, etc.). Then again, it might not be worthwhile. I'm assuming that it isn't unless performance @@ -4080,7 +4078,7 @@ index 16381de..e286f4c 100644 } /* Given a pointer to a DWARF information entry, figure out if we need -@@ -8748,6 +9944,8 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu) +@@ -8746,6 +9942,8 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu) sizeof (struct symbol)); OBJSTAT (objfile, n_syms++); memset (sym, 0, sizeof (struct symbol)); @@ -4089,7 +4087,7 @@ index 16381de..e286f4c 100644 /* Cache this symbol's name and the name's demangled form (if any). */ SYMBOL_LANGUAGE (sym) = cu->language; -@@ -9379,6 +10577,9 @@ read_type_die (struct die_info *die, struct dwarf2_cu *cu) +@@ -9375,6 +10573,9 @@ read_type_die (struct die_info *die, struct dwarf2_cu *cu) break; } @@ -4099,7 +4097,7 @@ index 16381de..e286f4c 100644 return this_type; } -@@ -11983,67 +13184,102 @@ attr_form_is_constant (struct attribute *attr) +@@ -11979,67 +13180,102 @@ attr_form_is_constant (struct attribute *attr) } } @@ -4251,7 +4249,7 @@ index 16381de..e286f4c 100644 } } -@@ -12054,7 +13290,7 @@ dwarf2_symbol_mark_computed (struct attribute *attr, struct symbol *sym, +@@ -12050,7 +13286,7 @@ dwarf2_symbol_mark_computed (struct attribute *attr, struct symbol *sym, struct objfile * dwarf2_per_cu_objfile (struct dwarf2_per_cu_data *per_cu) { @@ -4260,7 +4258,7 @@ index 16381de..e286f4c 100644 /* Return the master objfile, so that we can report and look up the correct file containing this variable. */ -@@ -12074,7 +13310,7 @@ dwarf2_per_cu_addr_size (struct dwarf2_per_cu_data *per_cu) +@@ -12070,7 +13306,7 @@ dwarf2_per_cu_addr_size (struct dwarf2_per_cu_data *per_cu) else { /* If the CU is not currently read in, we re-read its header. */ @@ -4269,7 +4267,7 @@ index 16381de..e286f4c 100644 struct dwarf2_per_objfile *per_objfile = objfile_data (objfile, dwarf2_objfile_data_key); gdb_byte *info_ptr = per_objfile->info.buffer + per_cu->offset; -@@ -12096,7 +13332,7 @@ dwarf2_per_cu_offset_size (struct dwarf2_per_cu_data *per_cu) +@@ -12092,7 +13328,7 @@ dwarf2_per_cu_offset_size (struct dwarf2_per_cu_data *per_cu) else { /* If the CU is not currently read in, we re-read its header. */ @@ -4278,7 +4276,7 @@ index 16381de..e286f4c 100644 struct dwarf2_per_objfile *per_objfile = objfile_data (objfile, dwarf2_objfile_data_key); gdb_byte *info_ptr = per_objfile->info.buffer + per_cu->offset; -@@ -12116,7 +13352,7 @@ dwarf2_per_cu_offset_size (struct dwarf2_per_cu_data *per_cu) +@@ -12112,7 +13348,7 @@ dwarf2_per_cu_offset_size (struct dwarf2_per_cu_data *per_cu) CORE_ADDR dwarf2_per_cu_text_offset (struct dwarf2_per_cu_data *per_cu) { @@ -4287,7 +4285,7 @@ index 16381de..e286f4c 100644 return ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile)); } -@@ -12338,6 +13574,30 @@ dwarf2_free_objfile (struct objfile *objfile) +@@ -12334,6 +13570,30 @@ dwarf2_free_objfile (struct objfile *objfile) /* Cached DIE trees use xmalloc and the comp_unit_obstack. */ free_cached_comp_units (NULL); @@ -4318,7 +4316,7 @@ index 16381de..e286f4c 100644 /* Everything else should be on the objfile obstack. */ } -@@ -12372,6 +13632,31 @@ offset_and_type_eq (const void *item_lhs, const void *item_rhs) +@@ -12368,6 +13628,31 @@ offset_and_type_eq (const void *item_lhs, const void *item_rhs) return ofs_lhs->offset == ofs_rhs->offset; } @@ -4350,7 +4348,7 @@ index 16381de..e286f4c 100644 /* Set the type associated with DIE to TYPE. Save it in CU's hash table if necessary. For convenience, return TYPE. -@@ -12395,6 +13680,8 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu) +@@ -12391,6 +13676,8 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu) { struct dwarf2_offset_and_type **slot, ofs; @@ -4359,8 +4357,8 @@ index 16381de..e286f4c 100644 /* For Ada types, make sure that the gnat-specific data is always initialized (if not already set). There are a few types where we should not be doing so, because the type-specific area is -@@ -12592,8 +13879,567 @@ dwarf2_per_objfile_free (struct objfile *objfile, void *d) - munmap_section_buffer (&data->loc); +@@ -12591,8 +13878,567 @@ dwarf2_per_objfile_free (struct objfile *objfile, void *d) + munmap_section_buffer (&data->types); munmap_section_buffer (&data->frame); munmap_section_buffer (&data->eh_frame); + munmap_section_buffer (&data->gdb_index); @@ -4927,7 +4925,7 @@ index 16381de..e286f4c 100644 int dwarf2_always_disassemble; static void -@@ -12610,6 +14456,8 @@ void _initialize_dwarf2_read (void); +@@ -12609,6 +14455,8 @@ void _initialize_dwarf2_read (void); void _initialize_dwarf2_read (void) { @@ -4936,7 +4934,7 @@ index 16381de..e286f4c 100644 dwarf2_objfile_data_key = register_objfile_data_with_cleanup (NULL, dwarf2_per_objfile_free); -@@ -12657,4 +14505,9 @@ The value is the maximum depth to print."), +@@ -12656,4 +14504,9 @@ The value is the maximum depth to print."), NULL, NULL, &setdebuglist, &showdebuglist); @@ -6111,7 +6109,7 @@ index e0ca12c..de6311a 100644 else { diff --git a/gdb/gdbcmd.h b/gdb/gdbcmd.h -index 6a230c0..d87a813 100644 +index 78151dd..da11686 100644 --- a/gdb/gdbcmd.h +++ b/gdb/gdbcmd.h @@ -124,6 +124,10 @@ extern struct cmd_list_element *setchecklist; @@ -6123,8 +6121,8 @@ index 6a230c0..d87a813 100644 +extern struct cmd_list_element *save_cmdlist; + extern void execute_command (char *, int); + extern char *execute_command_to_string (char *p, int from_tty); - enum command_control_type execute_control_command (struct command_line *); diff --git a/gdb/gdbinit.in b/gdb/gdbinit.in index ffb7f53..a2e7e94 100644 --- a/gdb/gdbinit.in @@ -7706,7 +7704,7 @@ index 5abec68..e309277 100644 extern void notice_new_inferior (ptid_t, int, int); diff --git a/gdb/infrun.c b/gdb/infrun.c -index 57f2ab8..5762a7f 100644 +index 54b1d9f..58d045a 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -45,6 +45,8 @@ @@ -8590,7 +8588,7 @@ index bb79ae1..fbbd600 100644 + #endif /* PARSER_DEFS_H */ diff --git a/gdb/ppc-linux-nat.c b/gdb/ppc-linux-nat.c -index e8d96f6..8bf097c 100644 +index 18ddee7..652b02a 100644 --- a/gdb/ppc-linux-nat.c +++ b/gdb/ppc-linux-nat.c @@ -2010,6 +2010,24 @@ ppc_linux_remove_watchpoint (CORE_ADDR addr, int len, int rw, @@ -8673,7 +8671,7 @@ index 5ffa099..58d9c79 100644 + observer_attach_mark_used (print_types_mark_used); } diff --git a/gdb/psymtab.c b/gdb/psymtab.c -index 367cf1e..c120894 100644 +index 97a4eec..fce19c9 100644 --- a/gdb/psymtab.c +++ b/gdb/psymtab.c @@ -421,6 +421,14 @@ lookup_symbol_aux_psymtabs (struct objfile *objfile, @@ -10339,7 +10337,7 @@ index 2b8d301..0af99c8 100644 extern PyObject *gdbpy_gdberror_exc; diff --git a/gdb/python/python.c b/gdb/python/python.c -index 6680126..2eee31f 100644 +index 7346fba..ee6e476 100644 --- a/gdb/python/python.c +++ b/gdb/python/python.c @@ -28,6 +28,7 @@ @@ -10368,7 +10366,7 @@ index 6680126..2eee31f 100644 static PyMethodDef GdbMethods[]; -@@ -413,6 +421,105 @@ execute_gdb_command (PyObject *self, PyObject *args, PyObject *kw) +@@ -374,6 +382,105 @@ execute_gdb_command (PyObject *self, PyObject *args, PyObject *kw) Py_RETURN_NONE; } @@ -10474,7 +10472,7 @@ index 6680126..2eee31f 100644 /* Parse a string and evaluate it as an expression. */ static PyObject * gdbpy_parse_and_eval (PyObject *self, PyObject *args) -@@ -453,6 +560,114 @@ source_python_script (FILE *stream, const char *file) +@@ -414,6 +521,114 @@ source_python_script (FILE *stream, const char *file) @@ -10589,7 +10587,7 @@ index 6680126..2eee31f 100644 /* Printing. */ /* A python function to write a single string using gdb's filtered -@@ -498,6 +713,53 @@ gdbpy_print_stack (void) +@@ -459,6 +674,53 @@ gdbpy_print_stack (void) /* Return the current Progspace. There always is one. */ @@ -10643,7 +10641,7 @@ index 6680126..2eee31f 100644 static PyObject * gdbpy_get_current_progspace (PyObject *unused1, PyObject *unused2) -@@ -759,6 +1021,7 @@ Enables or disables printing of Python stack traces."), +@@ -720,6 +982,7 @@ Enables or disables printing of Python stack traces."), gdbpy_initialize_lazy_string (); gdbpy_initialize_thread (); gdbpy_initialize_inferior (); @@ -10651,7 +10649,7 @@ index 6680126..2eee31f 100644 PyRun_SimpleString ("import gdb"); PyRun_SimpleString ("gdb.pretty_printers = []"); -@@ -826,6 +1089,8 @@ static PyMethodDef GdbMethods[] = +@@ -787,6 +1050,8 @@ static PyMethodDef GdbMethods[] = "Get a value from history" }, { "execute", (PyCFunction) execute_gdb_command, METH_VARARGS | METH_KEYWORDS, "Execute a gdb command" }, @@ -10660,7 +10658,7 @@ index 6680126..2eee31f 100644 { "parameter", gdbpy_parameter, METH_VARARGS, "Return a gdb parameter's value" }, -@@ -864,11 +1129,21 @@ a boolean indicating if name is a field of the current implied argument\n\ +@@ -825,11 +1090,21 @@ a boolean indicating if name is a field of the current implied argument\n\ `this' (when the current language is object-oriented)." }, { "block_for_pc", gdbpy_block_for_pc, METH_VARARGS, "Return the block containing the given pc value, or None." }, @@ -10710,7 +10708,7 @@ index 1f135d4..489838d 100644 /* Given an executable's ABFD and target, compute the entry-point diff --git a/gdb/symfile.c b/gdb/symfile.c -index ab51fa4..babe9cf 100644 +index 42f7ae3..371db0d 100644 --- a/gdb/symfile.c +++ b/gdb/symfile.c @@ -1059,6 +1059,9 @@ symbol_file_add_with_addrs_or_offsets (bfd *abfd, @@ -10732,7 +10730,7 @@ index ab51fa4..babe9cf 100644 { if (from_tty || info_verbose) { -@@ -1535,7 +1538,7 @@ symbol_file_command (char *args, int from_tty) +@@ -1533,7 +1536,7 @@ symbol_file_command (char *args, int from_tty) void set_initial_language (void) { @@ -10741,7 +10739,7 @@ index ab51fa4..babe9cf 100644 enum language lang = language_unknown; filename = find_main_filename (); -@@ -2662,7 +2665,7 @@ init_filename_language_table (void) +@@ -2660,7 +2663,7 @@ init_filename_language_table (void) } enum language @@ -10802,7 +10800,7 @@ index 62e6b97..00dc613 100644 ms_type = 'S'; break; diff --git a/gdb/symtab.c b/gdb/symtab.c -index 9472c24..c3b1792 100644 +index 2c4c9e4..28f0450 100644 --- a/gdb/symtab.c +++ b/gdb/symtab.c @@ -1295,16 +1295,25 @@ lookup_symbol_aux_symtabs (int block_index, const char *name, @@ -10971,7 +10969,7 @@ index bedc10a..dc284e4 100644 /* symtab.c */ diff --git a/gdb/target.c b/gdb/target.c -index 862df4e..a8f1bdd 100644 +index 4cabcbd..34b3b60 100644 --- a/gdb/target.c +++ b/gdb/target.c @@ -123,6 +123,8 @@ static int debug_to_insert_watchpoint (CORE_ADDR, int, int, @@ -11001,7 +10999,7 @@ index 862df4e..a8f1bdd 100644 de_fault (to_stopped_by_watchpoint, (int (*) (void)) return_zero); -@@ -3441,6 +3447,19 @@ debug_to_remove_watchpoint (CORE_ADDR addr, int len, int type, +@@ -3440,6 +3446,19 @@ debug_to_remove_watchpoint (CORE_ADDR addr, int len, int type, return retval; } @@ -11021,7 +11019,7 @@ index 862df4e..a8f1bdd 100644 static void debug_to_terminal_init (void) { -@@ -3688,6 +3707,7 @@ setup_target_debug (void) +@@ -3687,6 +3706,7 @@ setup_target_debug (void) current_target.to_remove_hw_breakpoint = debug_to_remove_hw_breakpoint; current_target.to_insert_watchpoint = debug_to_insert_watchpoint; current_target.to_remove_watchpoint = debug_to_remove_watchpoint; @@ -14208,7 +14206,7 @@ index 0000000..226dc5d + call foo (g, h) +end diff --git a/gdb/testsuite/gdb.gdb/selftest.exp b/gdb/testsuite/gdb.gdb/selftest.exp -index 1aed252..593aa55 100644 +index fc8bccc..e053813 100644 --- a/gdb/testsuite/gdb.gdb/selftest.exp +++ b/gdb/testsuite/gdb.gdb/selftest.exp @@ -92,6 +92,10 @@ proc do_steps_and_nexts {} { @@ -15388,7 +15386,7 @@ index 0000000..1dc93ab + test child FOLLOW_CHILD +} diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp -index b5b3362..d916e94 100644 +index 20e2fb7..b27d25c 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -27,6 +27,7 @@ if {$tool == ""} { @@ -15494,7 +15492,7 @@ index 0000000..b8e9836 + return 0 +} diff --git a/gdb/thread.c b/gdb/thread.c -index 2fdc7f9..2a5d0f1 100644 +index 0b291ba..ae3e4ff 100644 --- a/gdb/thread.c +++ b/gdb/thread.c @@ -90,6 +90,16 @@ delete_step_resume_breakpoint (struct thread_info *tp) @@ -15528,7 +15526,7 @@ index 2fdc7f9..2a5d0f1 100644 discard_all_intermediate_continuations_thread (tp); diff --git a/gdb/top.c b/gdb/top.c -index 93447fe..d6875a7 100644 +index b29e68d..8edac70 100644 --- a/gdb/top.c +++ b/gdb/top.c @@ -337,6 +337,7 @@ void diff --git a/gdb-upstream.patch b/gdb-upstream.patch index e16f47f..87d3f1d 100644 --- a/gdb-upstream.patch +++ b/gdb-upstream.patch @@ -1,386 +1,3 @@ -https://bugzilla.redhat.com/show_bug.cgi?id=620930 - -http://sourceware.org/ml/gdb-cvs/2010-08/msg00031.html - -### src/gdb/ChangeLog 2010/08/06 19:45:58 1.12064 -### src/gdb/ChangeLog 2010/08/07 15:00:36 1.12065 -## -1,3 +1,22 @@ -+2010-08-07 Jan Kratochvil -+ -+ * defs.h (make_cleanup_restore_uinteger, make_cleanup_restore_ui_file) -+ (make_cleanup_restore_page_info) -+ (set_batch_flag_and_make_cleanup_restore_page_info): New declarations. -+ * gdbcmd.h (execute_command_to_string): New declaration. -+ * python/python.c (struct restore_ui_file_closure, restore_ui_file) -+ (make_cleanup_restore_ui_file): Move to utils.c -+ (execute_gdb_command) : Move ... -+ * top.c (execute_command_to_string): ... here. Call -+ set_batch_flag_and_make_cleanup_restore_page_info. -+ * utils.c (make_cleanup_restore_integer): New source file blank line. -+ (make_cleanup_restore_uinteger): New. -+ (struct restore_ui_file_closure, do_restore_ui_file) -+ (make_cleanup_restore_ui_file): Move here from python/python.c. -+ (init_page_info) -+ (do_restore_page_info_cleanup, make_cleanup_restore_page_info) -+ (set_batch_flag_and_make_cleanup_restore_page_info): New. -+ - 2010-08-06 Maciej W. Rozycki - - * thread.c (add_thread_silent): Use null_ptid instead of -### src/gdb/testsuite/ChangeLog 2010/08/02 23:41:18 1.2405 -### src/gdb/testsuite/ChangeLog 2010/08/07 15:00:38 1.2406 -## -1,3 +1,10 @@ -+2010-08-07 Jan Kratochvil -+ -+ * gdb.python/python.exp (show height, set height 10) -+ (verify pagination beforehand, verify pagination beforehand: q) -+ (gdb.execute does not page, verify pagination afterwards) -+ (verify pagination afterwards: q): New. -+ - 2010-08-02 Doug Evans - - * gdb.cp/namespace.exp: When "print ::cOtherFileClassVar" fails -### src/gdb/doc/ChangeLog 2010/07/31 15:34:41 1.1093 -### src/gdb/doc/ChangeLog 2010/08/07 15:00:38 1.1094 -## -1,3 +1,9 @@ -+2010-08-07 Jan Kratochvil -+ Eli Zaretskii -+ -+ * gdb.texinfo (Mode Options) <-batch> -+ (Basic Python) : Describe setting width and height. -+ - 2010-07-31 Paul Pluzhnikov - - * gdb.texinfo (Threads): Document 'debug libthread-db'. -Index: gdb-7.1.90.20100806/gdb/defs.h -=================================================================== ---- gdb-7.1.90.20100806.orig/gdb/defs.h 2010-08-07 17:18:27.000000000 +0200 -+++ gdb-7.1.90.20100806/gdb/defs.h 2010-08-07 17:18:31.000000000 +0200 -@@ -351,6 +351,10 @@ struct obstack; - extern struct cleanup *make_cleanup_obstack_free (struct obstack *obstack); - - extern struct cleanup *make_cleanup_restore_integer (int *variable); -+extern struct cleanup *make_cleanup_restore_uinteger (unsigned int *variable); -+ -+extern struct cleanup * -+ make_cleanup_restore_ui_file (struct ui_file **variable); - - extern struct cleanup *make_final_cleanup (make_cleanup_ftype *, void *); - -@@ -383,6 +387,10 @@ extern int yquery (const char *, ...) AT - - extern void init_page_info (void); - -+extern struct cleanup *make_cleanup_restore_page_info (void); -+extern struct cleanup * -+ set_batch_flag_and_make_cleanup_restore_page_info (void); -+ - extern char *gdb_realpath (const char *); - extern char *xfullpath (const char *); - -Index: gdb-7.1.90.20100806/gdb/gdbcmd.h -=================================================================== ---- gdb-7.1.90.20100806.orig/gdb/gdbcmd.h 2010-08-07 17:18:27.000000000 +0200 -+++ gdb-7.1.90.20100806/gdb/gdbcmd.h 2010-08-07 17:18:40.000000000 +0200 -@@ -128,6 +128,8 @@ extern void execute_command (char *, int - - enum command_control_type execute_control_command (struct command_line *); - -+extern char *execute_command_to_string (char *p, int from_tty); -+ - extern void print_command_line (struct command_line *, unsigned int, - struct ui_file *); - extern void print_command_lines (struct ui_out *, -Index: gdb-7.1.90.20100806/gdb/top.c -=================================================================== ---- gdb-7.1.90.20100806.orig/gdb/top.c 2010-08-07 17:18:27.000000000 +0200 -+++ gdb-7.1.90.20100806/gdb/top.c 2010-08-07 17:18:31.000000000 +0200 -@@ -458,6 +458,39 @@ execute_command (char *p, int from_tty) - } - } - -+/* Run execute_command for P and FROM_TTY. Capture its output into the -+ returned string, do not display it to the screen. BATCH_FLAG will be -+ temporarily set to true. */ -+ -+char * -+execute_command_to_string (char *p, int from_tty) -+{ -+ struct ui_file *str_file; -+ struct cleanup *cleanup; -+ char *retval; -+ -+ /* GDB_STDOUT should be better already restored during these -+ restoration callbacks. */ -+ cleanup = set_batch_flag_and_make_cleanup_restore_page_info (); -+ -+ str_file = mem_fileopen (); -+ -+ make_cleanup_restore_ui_file (&gdb_stdout); -+ make_cleanup_restore_ui_file (&gdb_stderr); -+ make_cleanup_ui_file_delete (str_file); -+ -+ gdb_stdout = str_file; -+ gdb_stderr = str_file; -+ -+ execute_command (p, from_tty); -+ -+ retval = ui_file_xstrdup (str_file, NULL); -+ -+ do_cleanups (cleanup); -+ -+ return retval; -+} -+ - /* Read commands from `instream' and execute them - until end of file or error reading instream. */ - -Index: gdb-7.1.90.20100806/gdb/utils.c -=================================================================== ---- gdb-7.1.90.20100806.orig/gdb/utils.c 2010-08-07 17:18:27.000000000 +0200 -+++ gdb-7.1.90.20100806/gdb/utils.c 2010-08-07 17:18:31.000000000 +0200 -@@ -339,6 +339,7 @@ restore_integer (void *p) - - /* Remember the current value of *VARIABLE and make it restored when the cleanup - is run. */ -+ - struct cleanup * - make_cleanup_restore_integer (int *variable) - { -@@ -352,6 +353,43 @@ make_cleanup_restore_integer (int *varia - xfree); - } - -+/* Remember the current value of *VARIABLE and make it restored when the cleanup -+ is run. */ -+ -+struct cleanup * -+make_cleanup_restore_uinteger (unsigned int *variable) -+{ -+ return make_cleanup_restore_integer ((int *) variable); -+} -+ -+struct restore_ui_file_closure -+{ -+ struct ui_file **variable; -+ struct ui_file *value; -+}; -+ -+static void -+do_restore_ui_file (void *p) -+{ -+ struct restore_ui_file_closure *closure = p; -+ -+ *(closure->variable) = closure->value; -+} -+ -+/* Remember the current value of *VARIABLE and make it restored when -+ the cleanup is run. */ -+ -+struct cleanup * -+make_cleanup_restore_ui_file (struct ui_file **variable) -+{ -+ struct restore_ui_file_closure *c = XNEW (struct restore_ui_file_closure); -+ -+ c->variable = variable; -+ c->value = *variable; -+ -+ return make_cleanup_dtor (do_restore_ui_file, (void *) c, xfree); -+} -+ - struct cleanup * - make_my_cleanup2 (struct cleanup **pmy_chain, make_cleanup_ftype *function, - void *arg, void (*free_arg) (void *)) -@@ -2034,6 +2072,12 @@ static int wrap_column; - void - init_page_info (void) - { -+ if (batch_flag) -+ { -+ lines_per_page = UINT_MAX; -+ chars_per_line = UINT_MAX; -+ } -+ else - #if defined(TUI) - if (!tui_get_command_dimension (&chars_per_line, &lines_per_page)) - #endif -@@ -2078,6 +2122,44 @@ init_page_info (void) - set_width (); - } - -+/* Helper for make_cleanup_restore_page_info. */ -+ -+static void -+do_restore_page_info_cleanup (void *arg) -+{ -+ set_screen_size (); -+ set_width (); -+} -+ -+/* Provide cleanup for restoring the terminal size. */ -+ -+struct cleanup * -+make_cleanup_restore_page_info (void) -+{ -+ struct cleanup *back_to; -+ -+ back_to = make_cleanup (do_restore_page_info_cleanup, NULL); -+ make_cleanup_restore_uinteger (&lines_per_page); -+ make_cleanup_restore_uinteger (&chars_per_line); -+ -+ return back_to; -+} -+ -+/* Temporarily set BATCH_FLAG and the associated unlimited terminal size. -+ Provide cleanup for restoring the original state. */ -+ -+struct cleanup * -+set_batch_flag_and_make_cleanup_restore_page_info (void) -+{ -+ struct cleanup *back_to = make_cleanup_restore_page_info (); -+ -+ make_cleanup_restore_integer (&batch_flag); -+ batch_flag = 1; -+ init_page_info (); -+ -+ return back_to; -+} -+ - /* Set the screen size based on LINES_PER_PAGE and CHARS_PER_LINE. */ - - static void -Index: gdb-7.1.90.20100806/gdb/doc/gdb.texinfo -=================================================================== ---- gdb-7.1.90.20100806.orig/gdb/doc/gdb.texinfo 2010-08-07 17:18:27.000000000 +0200 -+++ gdb-7.1.90.20100806/gdb/doc/gdb.texinfo 2010-08-07 17:18:31.000000000 +0200 -@@ -1031,9 +1031,9 @@ Run in batch mode. Exit with status @co - command files specified with @samp{-x} (and all commands from - initialization files, if not inhibited with @samp{-n}). Exit with - nonzero status if an error occurs in executing the @value{GDBN} commands --in the command files. Batch mode also disables pagination; --@pxref{Screen Size} and acts as if @kbd{set confirm off} were in --effect (@pxref{Messages/Warnings}). -+in the command files. Batch mode also disables pagination, sets unlimited -+terminal width and height @pxref{Screen Size}, and acts as if @kbd{set confirm -+off} were in effect (@pxref{Messages/Warnings}). - - Batch mode may be useful for running @value{GDBN} as a filter, for - example to download and run a program on another computer; in order to -@@ -20432,7 +20432,9 @@ By default, any output produced by @var{ - @value{GDBN}'s standard output. If the @var{to_string} parameter is - @code{True}, then output will be collected by @code{gdb.execute} and - returned as a string. The default is @code{False}, in which case the --return value is @code{None}. -+return value is @code{None}. If @var{to_string} is @code{True}, the -+@value{GDBN} virtual terminal will be temporarily set to unlimited width -+and height, and its pagination will be disabled; @pxref{Screen Size}. - @end defun - - @findex gdb.breakpoints -Index: gdb-7.1.90.20100806/gdb/python/python.c -=================================================================== ---- gdb-7.1.90.20100806.orig/gdb/python/python.c 2010-08-07 17:18:27.000000000 +0200 -+++ gdb-7.1.90.20100806/gdb/python/python.c 2010-08-07 17:18:31.000000000 +0200 -@@ -309,33 +309,6 @@ gdbpy_target_wide_charset (PyObject *sel - return PyUnicode_Decode (cset, strlen (cset), host_charset (), NULL); - } - --struct restore_ui_file_closure --{ -- struct ui_file **variable; -- struct ui_file *value; --}; -- --static void --restore_ui_file (void *p) --{ -- struct restore_ui_file_closure *closure = p; -- -- *(closure->variable) = closure->value; --} -- --/* Remember the current value of *VARIABLE and make it restored when -- the cleanup is run. */ --struct cleanup * --make_cleanup_restore_ui_file (struct ui_file **variable) --{ -- struct restore_ui_file_closure *c = XNEW (struct restore_ui_file_closure); -- -- c->variable = variable; -- c->value = *variable; -- -- return make_cleanup_dtor (restore_ui_file, (void *) c, xfree); --} -- - /* A Python function which evaluates a string using the gdb CLI. */ - - static PyObject * -@@ -376,27 +349,15 @@ execute_gdb_command (PyObject *self, PyO - /* Copy the argument text in case the command modifies it. */ - char *copy = xstrdup (arg); - struct cleanup *cleanup = make_cleanup (xfree, copy); -- struct ui_file *str_file = NULL; - - if (to_string) -+ result = execute_command_to_string (copy, from_tty); -+ else - { -- str_file = mem_fileopen (); -- -- make_cleanup_restore_ui_file (&gdb_stdout); -- make_cleanup_restore_ui_file (&gdb_stderr); -- make_cleanup_ui_file_delete (str_file); -- -- gdb_stdout = str_file; -- gdb_stderr = str_file; -+ result = NULL; -+ execute_command (copy, from_tty); - } - -- execute_command (copy, from_tty); -- -- if (str_file) -- result = ui_file_xstrdup (str_file, NULL); -- else -- result = NULL; -- - do_cleanups (cleanup); - } - GDB_PY_HANDLE_EXCEPTION (except); -Index: gdb-7.1.90.20100806/gdb/testsuite/gdb.python/python.exp -=================================================================== ---- gdb-7.1.90.20100806.orig/gdb/testsuite/gdb.python/python.exp 2010-08-07 17:18:27.000000000 +0200 -+++ gdb-7.1.90.20100806/gdb/testsuite/gdb.python/python.exp 2010-08-07 17:18:31.000000000 +0200 -@@ -87,3 +87,26 @@ gdb_test "python import itertools; print - gdb_test_no_output \ - "python x = gdb.execute('printf \"%d\", 23', to_string = True)" - gdb_test "python print x" "23" -+ -+# Test (no) pagination of the executed command. -+gdb_test "show height" {Number of lines gdb thinks are in a page is unlimited\.} -+set lines 10 -+gdb_test_no_output "set height $lines" -+ -+set test "verify pagination beforehand" -+gdb_test_multiple "python print \"\\n\" * $lines" $test { -+ -re "---Type to continue, or q to quit---$" { -+ pass $test -+ } -+} -+gdb_test "q" "Quit" "verify pagination beforehand: q" -+ -+gdb_test "python if gdb.execute('python print \"\\\\n\" * $lines', to_string=True) == \"\\n\" * [expr $lines + 1]: print \"yes\"" "yes" "gdb.execute does not page" -+ -+set test "verify pagination afterwards" -+gdb_test_multiple "python print \"\\n\" * $lines" $test { -+ -re "---Type to continue, or q to quit---$" { -+ pass $test -+ } -+} -+gdb_test "q" "Quit" "verify pagination afterwards: q" - - - https://bugzilla.redhat.com/show_bug.cgi?id=610986 http://sourceware.org/ml/gdb-cvs/2010-08/msg00112.html diff --git a/gdb.spec b/gdb.spec index 11081b8..7ec9cb0 100644 --- a/gdb.spec +++ b/gdb.spec @@ -34,11 +34,11 @@ Name: gdb%{?_with_debug:-debug} # Set version to contents of gdb/version.in. # NOTE: the FSF gdb versions are numbered N.M for official releases, like 6.3 # and, since January 2005, X.Y.Z.date for daily snapshots, like 6.3.50.20050112 # (daily snapshot from mailine), or 6.3.0.20040112 (head of the release branch). -Version: 7.1.90.20100806 +Version: 7.2 # The release always contains a leading reserved number, start it at 1. # `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing. -Release: 12%{?_with_upstream:.upstream}%{dist} +Release: 1%{?_with_upstream:.upstream}%{dist} License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and GFDL and BSD and Public Domain Group: Development/Debuggers @@ -1066,6 +1066,9 @@ fi %endif %changelog +* Fri Sep 3 2010 Dan Horák - 7.2-1.fc14 +- Formal update to the final FSF GDB release. + * Tue Aug 24 2010 Dan Horák - 7.1.90.20100806-12.fc14 - libinproctrace doesn't exist on s390(x) diff --git a/sources b/sources index 9601ee8..6c2d734 100644 --- a/sources +++ b/sources @@ -1,2 +1 @@ -37672a43bf094a9d64f252611e384524 gdb-7.1.90.20100806.tar.bz2 64260e6c56979ee750a01055f16091a5 gdb-7.2.tar.bz2