- Formal update to the final FSF GDB release.
This commit is contained in:
parent
562d933af5
commit
fd71495700
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,2 +1 @@
|
|||||||
gdb-7.1.90.20100806.tar.bz2
|
gdb-7.2.tar.bz2
|
||||||
/gdb-7.2.tar.bz2
|
|
||||||
|
@ -4,10 +4,11 @@
|
|||||||
to install and uninstall.
|
to install and uninstall.
|
||||||
* gstack.sh, gstack.1: New files.
|
* gstack.sh, gstack.1: New files.
|
||||||
|
|
||||||
diff -up -ruNp gdb-7.0.1-empty/gdb/Makefile.in gdb-7.0.1/gdb/Makefile.in
|
Index: gdb-7.2/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
|
--- gdb-7.2.orig/gdb/Makefile.in 2010-09-03 09:37:55.000000000 +0200
|
||||||
@@ -989,7 +989,7 @@ install: all install-only
|
+++ 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 "install-only" target also installs the syscalls' XML files in
|
||||||
# the system.
|
# 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)'; \
|
transformed_name=`t='$(program_transform_name)'; \
|
||||||
echo gdb | sed -e "$$t"` ; \
|
echo gdb | sed -e "$$t"` ; \
|
||||||
if test "x$$transformed_name" = x; then \
|
if test "x$$transformed_name" = x; then \
|
||||||
@@ -1021,9 +1021,26 @@ install-tui:
|
@@ -1046,7 +1046,25 @@ install-tui:
|
||||||
$(DESTDIR)$(man1dir) ; \
|
install-python:
|
||||||
$(INSTALL_DATA) $(srcdir)/gdb.1 \
|
$(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(GDB_DATADIR)/python/gdb
|
||||||
$(DESTDIR)$(man1dir)/$$transformed_name.1
|
|
||||||
|
-uninstall: force $(CONFIG_UNINSTALL)
|
||||||
+GSTACK=gstack
|
+GSTACK=gstack
|
||||||
+.PHONY: install-gstack
|
+.PHONY: install-gstack
|
||||||
+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) ; \
|
+ $(DESTDIR)$(man1dir) ; \
|
||||||
+ : $(INSTALL_DATA) $(srcdir)/gstack.1 \
|
+ : $(INSTALL_DATA) $(srcdir)/gstack.1 \
|
||||||
+ $(DESTDIR)$(man1dir)/$$transformed_name.1
|
+ $(DESTDIR)$(man1dir)/$$transformed_name.1
|
||||||
|
+
|
||||||
|
|
||||||
-uninstall: force $(CONFIG_UNINSTALL)
|
|
||||||
+uninstall: force uninstall-gstack $(CONFIG_UNINSTALL)
|
+uninstall: force uninstall-gstack $(CONFIG_UNINSTALL)
|
||||||
transformed_name=`t='$(program_transform_name)'; \
|
transformed_name=`t='$(program_transform_name)'; \
|
||||||
echo gdb | sed -e $$t` ; \
|
echo gdb | sed -e $$t` ; \
|
||||||
if test "x$$transformed_name" = x; then \
|
if test "x$$transformed_name" = x; then \
|
||||||
@@ -1045,6 +1062,17 @@ uninstall-tui:
|
@@ -1068,6 +1086,17 @@ uninstall-tui:
|
||||||
fi ; \
|
fi ; \
|
||||||
rm -f $(DESTDIR)$(bindir)/$$transformed_name$(EXEEXT) \
|
rm -f $(DESTDIR)$(bindir)/$$transformed_name$(EXEEXT) \
|
||||||
$(DESTDIR)$(man1dir)/$$transformed_name.1
|
$(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.
|
# The C++ name parser can be built standalone for testing.
|
||||||
test-cp-name-parser.o: cp-name-parser.c
|
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
|
Index: gdb-7.2/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
|
--- /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 @@
|
@@ -0,0 +1,48 @@
|
||||||
+#!/bin/sh
|
+#!/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 's/^\((gdb) \)*//' \
|
||||||
+ -e '/^#/p' \
|
+ -e '/^#/p' \
|
||||||
+ -e '/^Thread/p'
|
+ -e '/^Thread/p'
|
||||||
--- /dev/null 2010-04-07 06:20:52.289994508 +0200
|
Index: gdb-7.2/gdb/testsuite/gdb.base/gstack.exp
|
||||||
+++ gdb-7.0.1/gdb/testsuite/gdb.base/gstack.exp 2010-04-07 21:53:57.000000000 +0200
|
===================================================================
|
||||||
|
--- /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 @@
|
@@ -0,0 +1,71 @@
|
||||||
+# Copyright (C) 2010 Free Software Foundation, Inc.
|
+# 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
|
+gdb_exit
|
||||||
+
|
+
|
||||||
+remote_exec host "kill -9 $pid"
|
+remote_exec host "kill -9 $pid"
|
||||||
--- /dev/null 2010-04-07 06:20:52.289994508 +0200
|
Index: gdb-7.2/gdb/testsuite/gdb.base/gstack.c
|
||||||
+++ gdb-7.0.1/gdb/testsuite/gdb.base/gstack.c 2010-04-07 21:46:52.000000000 +0200
|
===================================================================
|
||||||
|
--- /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 @@
|
@@ -0,0 +1,43 @@
|
||||||
+/* This testcase is part of GDB, the GNU debugger.
|
+/* This testcase is part of GDB, the GNU debugger.
|
||||||
+
|
+
|
||||||
|
144
gdb-archer.patch
144
gdb-archer.patch
@ -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 af507f71e376b19f8ee9d54067924790566440e8
|
commit 30a7ce8ffc2b54bc4453a127be8dd28a3ea6d299
|
||||||
|
|
||||||
branch `archer' - the merge of branches:
|
branch `archer' - the merge of branches:
|
||||||
archer-jankratochvil-vla
|
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
|
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
|
||||||
index 6dbb284..6133da3 100644
|
index f07bc8b..3703dca 100644
|
||||||
--- a/gdb/Makefile.in
|
--- a/gdb/Makefile.in
|
||||||
+++ b/gdb/Makefile.in
|
+++ b/gdb/Makefile.in
|
||||||
@@ -169,6 +169,12 @@ TARGET_SYSTEM_ROOT = @TARGET_SYSTEM_ROOT@
|
@@ -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.
|
# 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= \
|
CONFIG_LINKS= \
|
||||||
$(SHELL) config.status
|
$(SHELL) config.status
|
||||||
|
|
||||||
@ -70,7 +70,7 @@ index 6dbb284..6133da3 100644
|
|||||||
config.status: $(srcdir)/configure configure.tgt configure.host
|
config.status: $(srcdir)/configure configure.tgt configure.host
|
||||||
$(SHELL) config.status --recheck
|
$(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
|
$(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-function.c
|
||||||
$(POSTCOMPILE)
|
$(POSTCOMPILE)
|
||||||
|
|
||||||
@ -81,7 +81,7 @@ index 6dbb284..6133da3 100644
|
|||||||
py-inferior.o: $(srcdir)/python/py-inferior.c
|
py-inferior.o: $(srcdir)/python/py-inferior.c
|
||||||
$(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-inferior.c
|
$(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-inferior.c
|
||||||
$(POSTCOMPILE)
|
$(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
|
$(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-value.c
|
||||||
$(POSTCOMPILE)
|
$(POSTCOMPILE)
|
||||||
|
|
||||||
@ -289,7 +289,7 @@ index 0348bf4..f01d0ee 100644
|
|||||||
|
|
||||||
/* Return the innermost stack frame executing inside of BLOCK,
|
/* Return the innermost stack frame executing inside of BLOCK,
|
||||||
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
|
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
|
||||||
index 4affe0a..584c68e 100644
|
index 6a6864c..5df336d 100644
|
||||||
--- a/gdb/breakpoint.c
|
--- a/gdb/breakpoint.c
|
||||||
+++ b/gdb/breakpoint.c
|
+++ b/gdb/breakpoint.c
|
||||||
@@ -62,6 +62,7 @@
|
@@ -62,6 +62,7 @@
|
||||||
@ -1349,7 +1349,7 @@ index 1fc457d..f4c846a 100644
|
|||||||
#undef PYTHON_PATH_RELOCATABLE
|
#undef PYTHON_PATH_RELOCATABLE
|
||||||
|
|
||||||
diff --git a/gdb/configure b/gdb/configure
|
diff --git a/gdb/configure b/gdb/configure
|
||||||
index 94eb9b9..e49da08 100755
|
index 041ffc1..8243abb 100755
|
||||||
--- a/gdb/configure
|
--- a/gdb/configure
|
||||||
+++ b/gdb/configure
|
+++ b/gdb/configure
|
||||||
@@ -679,6 +679,8 @@ REPORT_BUGS_TO
|
@@ -679,6 +679,8 @@ REPORT_BUGS_TO
|
||||||
@ -1454,17 +1454,16 @@ index 94eb9b9..e49da08 100755
|
|||||||
|
|
||||||
|
|
||||||
subdirs="$subdirs doc testsuite"
|
subdirs="$subdirs doc testsuite"
|
||||||
@@ -10881,6 +10955,8 @@ $as_echo "#define HAVE_PYTHON 1" >>confdefs.h
|
@@ -10919,6 +10993,7 @@ $as_echo "#define HAVE_PYTHON 1" >>confdefs.h
|
||||||
CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_PYTHON_OBS)"
|
|
||||||
CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_PYTHON_DEPS)"
|
CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_PYTHON_DEPS)"
|
||||||
CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_PYTHON_SRCS)"
|
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"
|
+ CONFIG_UNINSTALL="$CONFIG_UNINSTALL uninstall-python"
|
||||||
ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_PYTHON_CFLAGS)"
|
ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_PYTHON_CFLAGS)"
|
||||||
|
|
||||||
# Flags needed to compile Python code (taken from python-config --cflags).
|
# Flags needed to compile Python code (taken from python-config --cflags).
|
||||||
diff --git a/gdb/configure.ac b/gdb/configure.ac
|
diff --git a/gdb/configure.ac b/gdb/configure.ac
|
||||||
index 9300544..380473a 100644
|
index b69c3b6..4e89558 100644
|
||||||
--- a/gdb/configure.ac
|
--- a/gdb/configure.ac
|
||||||
+++ b/gdb/configure.ac
|
+++ b/gdb/configure.ac
|
||||||
@@ -108,6 +108,51 @@ AS_HELP_STRING([--with-relocated-sources=PATH], [automatically relocate this pat
|
@@ -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)
|
AC_CONFIG_SUBDIRS(doc testsuite)
|
||||||
|
|
||||||
# Check whether to support alternative target configurations
|
# Check whether to support alternative target configurations
|
||||||
@@ -828,6 +873,8 @@ if test "${have_libpython}" != no; then
|
@@ -833,6 +878,7 @@ if test "${have_libpython}" != no; then
|
||||||
CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_PYTHON_OBS)"
|
|
||||||
CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_PYTHON_DEPS)"
|
CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_PYTHON_DEPS)"
|
||||||
CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_PYTHON_SRCS)"
|
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"
|
+ CONFIG_UNINSTALL="$CONFIG_UNINSTALL uninstall-python"
|
||||||
ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_PYTHON_CFLAGS)"
|
ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_PYTHON_CFLAGS)"
|
||||||
|
|
||||||
# Flags needed to compile Python code (taken from python-config --cflags).
|
# Flags needed to compile Python code (taken from python-config --cflags).
|
||||||
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 1297175..c030b65 100644
|
index 65d4899..96767b0 100644
|
||||||
--- a/gdb/doc/gdb.texinfo
|
--- a/gdb/doc/gdb.texinfo
|
||||||
+++ b/gdb/doc/gdb.texinfo
|
+++ b/gdb/doc/gdb.texinfo
|
||||||
@@ -1162,6 +1162,16 @@ for remote debugging.
|
@@ -1162,6 +1162,16 @@ for remote debugging.
|
||||||
@ -1549,7 +1547,7 @@ index 1297175..c030b65 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}
|
||||||
@@ -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
|
@menu
|
||||||
* Files:: Commands to specify files
|
* Files:: Commands to specify files
|
||||||
* Separate Debug Files:: Debugging information in separate files
|
* Separate Debug Files:: Debugging information in separate files
|
||||||
@ -1557,7 +1555,7 @@ index 1297175..c030b65 100644
|
|||||||
* Symbol Errors:: Errors reading symbol files
|
* Symbol Errors:: Errors reading symbol files
|
||||||
* Data Files:: GDB data files
|
* Data Files:: GDB data files
|
||||||
@end menu
|
@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.
|
This computation does not apply to the ``build ID'' method.
|
||||||
|
|
||||||
|
|
||||||
@ -1604,7 +1602,7 @@ index 1297175..c030b65 100644
|
|||||||
@node Symbol Errors
|
@node Symbol Errors
|
||||||
@section Errors Reading Symbol Files
|
@section Errors Reading Symbol Files
|
||||||
|
|
||||||
@@ -20310,8 +20361,6 @@ containing @code{end}. For example:
|
@@ -20349,8 +20400,6 @@ containing @code{end}. For example:
|
||||||
|
|
||||||
@smallexample
|
@smallexample
|
||||||
(@value{GDBP}) python
|
(@value{GDBP}) python
|
||||||
@ -1613,7 +1611,7 @@ index 1297175..c030b65 100644
|
|||||||
>print 23
|
>print 23
|
||||||
>end
|
>end
|
||||||
23
|
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
|
python print-stack}: if @code{on}, the default, then Python stack
|
||||||
printing is enabled; if @code{off}, then Python stack printing is
|
printing is enabled; if @code{off}, then Python stack printing is
|
||||||
disabled.
|
disabled.
|
||||||
@ -1628,7 +1626,7 @@ index 1297175..c030b65 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}
|
||||||
@@ -20345,6 +20402,14 @@ and thus is always available.
|
@@ -20384,6 +20441,14 @@ and thus is always available.
|
||||||
@cindex python api
|
@cindex python api
|
||||||
@cindex programming in python
|
@cindex programming in python
|
||||||
|
|
||||||
@ -1643,7 +1641,7 @@ index 1297175..c030b65 100644
|
|||||||
@cindex python stdout
|
@cindex python stdout
|
||||||
@cindex python pagination
|
@cindex python pagination
|
||||||
At startup, @value{GDBN} overrides Python's @code{sys.stdout} and
|
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
|
@menu
|
||||||
* Basic Python:: Basic Python Functions.
|
* Basic Python:: Basic Python Functions.
|
||||||
* Exception Handling::
|
* Exception Handling::
|
||||||
@ -1652,7 +1650,7 @@ index 1297175..c030b65 100644
|
|||||||
* Types In Python:: Python representation of types.
|
* Types In Python:: Python representation of types.
|
||||||
* Pretty Printing API:: Pretty-printing values.
|
* Pretty Printing API:: Pretty-printing values.
|
||||||
* Selecting Pretty-Printers:: How GDB chooses a pretty-printer.
|
* 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.
|
@xref{Breakpoints In Python}, for more information.
|
||||||
@end defun
|
@end defun
|
||||||
|
|
||||||
@ -1665,7 +1663,7 @@ index 1297175..c030b65 100644
|
|||||||
@findex gdb.parameter
|
@findex gdb.parameter
|
||||||
@defun parameter parameter
|
@defun parameter parameter
|
||||||
Return the value of a @value{GDBN} parameter. @var{parameter} is a
|
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
|
@defun history number
|
||||||
Return a value from @value{GDBN}'s value history (@pxref{Value
|
Return a value from @value{GDBN}'s value history (@pxref{Value
|
||||||
History}). @var{number} indicates which history element to return.
|
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
|
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
|
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
|
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}.
|
convenience variable (@pxref{Convenience Vars}) as a @code{gdb.Value}.
|
||||||
@end defun
|
@end defun
|
||||||
|
|
||||||
@ -1880,7 +1878,7 @@ index 61b8f00..d94c03c 100644
|
|||||||
/* The current depth of dwarf expression recursion, via DW_OP_call*,
|
/* The current depth of dwarf expression recursion, via DW_OP_call*,
|
||||||
DW_OP_fbreg, DW_OP_push_object_address, etc., and the maximum
|
DW_OP_fbreg, DW_OP_push_object_address, etc., and the maximum
|
||||||
diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c
|
diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c
|
||||||
index 2a8e557..be74412 100644
|
index f59bc40..7ff0ef9 100644
|
||||||
--- a/gdb/dwarf2loc.c
|
--- a/gdb/dwarf2loc.c
|
||||||
+++ b/gdb/dwarf2loc.c
|
+++ b/gdb/dwarf2loc.c
|
||||||
@@ -48,6 +48,12 @@ static void
|
@@ -48,6 +48,12 @@ static void
|
||||||
@ -2158,7 +2156,7 @@ index 2a8e557..be74412 100644
|
|||||||
retval = allocate_value (type);
|
retval = allocate_value (type);
|
||||||
VALUE_LVAL (retval) = lval_memory;
|
VALUE_LVAL (retval) = lval_memory;
|
||||||
set_value_lazy (retval, 1);
|
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);
|
dlbaton->per_cu);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2232,7 +2230,7 @@ index 826bc45..1e7d8dc 100644
|
|||||||
|
|
||||||
#endif /* dwarf2loc.h */
|
#endif /* dwarf2loc.h */
|
||||||
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
|
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
|
||||||
index 16381de..e286f4c 100644
|
index 1e75235..d54e266 100644
|
||||||
--- a/gdb/dwarf2read.c
|
--- a/gdb/dwarf2read.c
|
||||||
+++ b/gdb/dwarf2read.c
|
+++ b/gdb/dwarf2read.c
|
||||||
@@ -51,6 +51,9 @@
|
@@ -51,6 +51,9 @@
|
||||||
@ -3565,7 +3563,7 @@ index 16381de..e286f4c 100644
|
|||||||
|
|
||||||
do_cleanups (back_to);
|
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
|
static void
|
||||||
@ -3612,7 +3610,7 @@ index 16381de..e286f4c 100644
|
|||||||
read_file_scope (struct die_info *die, struct dwarf2_cu *cu)
|
read_file_scope (struct die_info *die, struct dwarf2_cu *cu)
|
||||||
{
|
{
|
||||||
struct objfile *objfile = cu->objfile;
|
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;
|
lowpc += baseaddr;
|
||||||
highpc += baseaddr;
|
highpc += baseaddr;
|
||||||
|
|
||||||
@ -3649,7 +3647,7 @@ index 16381de..e286f4c 100644
|
|||||||
|
|
||||||
attr = dwarf2_attr (die, DW_AT_language, cu);
|
attr = dwarf2_attr (die, DW_AT_language, cu);
|
||||||
if (attr)
|
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);
|
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
|
/* 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. */
|
||||||
@@ -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 *element_type, *range_type, *index_type;
|
||||||
struct type **range_types = NULL;
|
struct type **range_types = NULL;
|
||||||
struct attribute *attr;
|
struct attribute *attr;
|
||||||
@ -3688,7 +3686,7 @@ index 16381de..e286f4c 100644
|
|||||||
struct cleanup *back_to;
|
struct cleanup *back_to;
|
||||||
char *name;
|
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;
|
type = element_type;
|
||||||
|
|
||||||
if (read_array_order (die, cu) == DW_ORD_col_major)
|
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
|
/* 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
|
||||||
@@ -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 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;
|
||||||
@ -3840,7 +3838,7 @@ index 16381de..e286f4c 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);
|
||||||
|
|
||||||
@@ -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 *base_type;
|
||||||
struct type *range_type;
|
struct type *range_type;
|
||||||
struct attribute *attr;
|
struct attribute *attr;
|
||||||
@ -4011,7 +4009,7 @@ index 16381de..e286f4c 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Dwarf-2 specifications explicitly allows to create subrange types
|
/* 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);
|
name = dwarf2_name (die, cu);
|
||||||
if (name)
|
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
|
(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
|
||||||
@ -4080,7 +4078,7 @@ index 16381de..e286f4c 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Given a pointer to a DWARF information entry, figure out if we need
|
/* 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));
|
sizeof (struct symbol));
|
||||||
OBJSTAT (objfile, n_syms++);
|
OBJSTAT (objfile, n_syms++);
|
||||||
memset (sym, 0, sizeof (struct symbol));
|
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). */
|
/* Cache this symbol's name and the name's demangled form (if any). */
|
||||||
SYMBOL_LANGUAGE (sym) = cu->language;
|
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;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4099,7 +4097,7 @@ index 16381de..e286f4c 100644
|
|||||||
return this_type;
|
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 *
|
struct objfile *
|
||||||
dwarf2_per_cu_objfile (struct dwarf2_per_cu_data *per_cu)
|
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
|
/* Return the master objfile, so that we can report and look up the
|
||||||
correct file containing this variable. */
|
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
|
else
|
||||||
{
|
{
|
||||||
/* If the CU is not currently read in, we re-read its header. */
|
/* 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
|
struct dwarf2_per_objfile *per_objfile
|
||||||
= objfile_data (objfile, dwarf2_objfile_data_key);
|
= objfile_data (objfile, dwarf2_objfile_data_key);
|
||||||
gdb_byte *info_ptr = per_objfile->info.buffer + per_cu->offset;
|
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
|
else
|
||||||
{
|
{
|
||||||
/* If the CU is not currently read in, we re-read its header. */
|
/* 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
|
struct dwarf2_per_objfile *per_objfile
|
||||||
= objfile_data (objfile, dwarf2_objfile_data_key);
|
= objfile_data (objfile, dwarf2_objfile_data_key);
|
||||||
gdb_byte *info_ptr = per_objfile->info.buffer + per_cu->offset;
|
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
|
CORE_ADDR
|
||||||
dwarf2_per_cu_text_offset (struct dwarf2_per_cu_data *per_cu)
|
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));
|
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. */
|
/* Cached DIE trees use xmalloc and the comp_unit_obstack. */
|
||||||
free_cached_comp_units (NULL);
|
free_cached_comp_units (NULL);
|
||||||
|
|
||||||
@ -4318,7 +4316,7 @@ index 16381de..e286f4c 100644
|
|||||||
/* Everything else should be on the objfile obstack. */
|
/* 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;
|
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
|
/* 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.
|
||||||
|
|
||||||
@@ -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;
|
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
|
/* For Ada types, make sure that the gnat-specific data is always
|
||||||
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
|
||||||
@@ -12592,8 +13879,567 @@ dwarf2_per_objfile_free (struct objfile *objfile, void *d)
|
@@ -12591,8 +13878,567 @@ dwarf2_per_objfile_free (struct objfile *objfile, void *d)
|
||||||
munmap_section_buffer (&data->loc);
|
munmap_section_buffer (&data->types);
|
||||||
munmap_section_buffer (&data->frame);
|
munmap_section_buffer (&data->frame);
|
||||||
munmap_section_buffer (&data->eh_frame);
|
munmap_section_buffer (&data->eh_frame);
|
||||||
+ munmap_section_buffer (&data->gdb_index);
|
+ munmap_section_buffer (&data->gdb_index);
|
||||||
@ -4927,7 +4925,7 @@ index 16381de..e286f4c 100644
|
|||||||
int dwarf2_always_disassemble;
|
int dwarf2_always_disassemble;
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -12610,6 +14456,8 @@ void _initialize_dwarf2_read (void);
|
@@ -12609,6 +14455,8 @@ void _initialize_dwarf2_read (void);
|
||||||
void
|
void
|
||||||
_initialize_dwarf2_read (void)
|
_initialize_dwarf2_read (void)
|
||||||
{
|
{
|
||||||
@ -4936,7 +4934,7 @@ index 16381de..e286f4c 100644
|
|||||||
dwarf2_objfile_data_key
|
dwarf2_objfile_data_key
|
||||||
= register_objfile_data_with_cleanup (NULL, dwarf2_per_objfile_free);
|
= 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,
|
||||||
NULL,
|
NULL,
|
||||||
&setdebuglist, &showdebuglist);
|
&setdebuglist, &showdebuglist);
|
||||||
@ -6111,7 +6109,7 @@ index e0ca12c..de6311a 100644
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
diff --git a/gdb/gdbcmd.h b/gdb/gdbcmd.h
|
diff --git a/gdb/gdbcmd.h b/gdb/gdbcmd.h
|
||||||
index 6a230c0..d87a813 100644
|
index 78151dd..da11686 100644
|
||||||
--- a/gdb/gdbcmd.h
|
--- a/gdb/gdbcmd.h
|
||||||
+++ b/gdb/gdbcmd.h
|
+++ b/gdb/gdbcmd.h
|
||||||
@@ -124,6 +124,10 @@ extern struct cmd_list_element *setchecklist;
|
@@ -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 struct cmd_list_element *save_cmdlist;
|
||||||
+
|
+
|
||||||
extern void execute_command (char *, int);
|
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
|
diff --git a/gdb/gdbinit.in b/gdb/gdbinit.in
|
||||||
index ffb7f53..a2e7e94 100644
|
index ffb7f53..a2e7e94 100644
|
||||||
--- a/gdb/gdbinit.in
|
--- a/gdb/gdbinit.in
|
||||||
@ -7706,7 +7704,7 @@ index 5abec68..e309277 100644
|
|||||||
|
|
||||||
extern void notice_new_inferior (ptid_t, int, int);
|
extern void notice_new_inferior (ptid_t, int, int);
|
||||||
diff --git a/gdb/infrun.c b/gdb/infrun.c
|
diff --git a/gdb/infrun.c b/gdb/infrun.c
|
||||||
index 57f2ab8..5762a7f 100644
|
index 54b1d9f..58d045a 100644
|
||||||
--- a/gdb/infrun.c
|
--- a/gdb/infrun.c
|
||||||
+++ b/gdb/infrun.c
|
+++ b/gdb/infrun.c
|
||||||
@@ -45,6 +45,8 @@
|
@@ -45,6 +45,8 @@
|
||||||
@ -8590,7 +8588,7 @@ index bb79ae1..fbbd600 100644
|
|||||||
+
|
+
|
||||||
#endif /* PARSER_DEFS_H */
|
#endif /* PARSER_DEFS_H */
|
||||||
diff --git a/gdb/ppc-linux-nat.c b/gdb/ppc-linux-nat.c
|
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
|
--- a/gdb/ppc-linux-nat.c
|
||||||
+++ b/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,
|
@@ -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);
|
+ observer_attach_mark_used (print_types_mark_used);
|
||||||
}
|
}
|
||||||
diff --git a/gdb/psymtab.c b/gdb/psymtab.c
|
diff --git a/gdb/psymtab.c b/gdb/psymtab.c
|
||||||
index 367cf1e..c120894 100644
|
index 97a4eec..fce19c9 100644
|
||||||
--- a/gdb/psymtab.c
|
--- a/gdb/psymtab.c
|
||||||
+++ b/gdb/psymtab.c
|
+++ b/gdb/psymtab.c
|
||||||
@@ -421,6 +421,14 @@ lookup_symbol_aux_psymtabs (struct objfile *objfile,
|
@@ -421,6 +421,14 @@ lookup_symbol_aux_psymtabs (struct objfile *objfile,
|
||||||
@ -10339,7 +10337,7 @@ index 2b8d301..0af99c8 100644
|
|||||||
|
|
||||||
extern PyObject *gdbpy_gdberror_exc;
|
extern PyObject *gdbpy_gdberror_exc;
|
||||||
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 6680126..2eee31f 100644
|
index 7346fba..ee6e476 100644
|
||||||
--- a/gdb/python/python.c
|
--- a/gdb/python/python.c
|
||||||
+++ b/gdb/python/python.c
|
+++ b/gdb/python/python.c
|
||||||
@@ -28,6 +28,7 @@
|
@@ -28,6 +28,7 @@
|
||||||
@ -10368,7 +10366,7 @@ index 6680126..2eee31f 100644
|
|||||||
|
|
||||||
static PyMethodDef GdbMethods[];
|
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;
|
Py_RETURN_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -10474,7 +10472,7 @@ index 6680126..2eee31f 100644
|
|||||||
/* Parse a string and evaluate it as an expression. */
|
/* Parse a string and evaluate it as an expression. */
|
||||||
static PyObject *
|
static PyObject *
|
||||||
gdbpy_parse_and_eval (PyObject *self, PyObject *args)
|
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. */
|
/* Printing. */
|
||||||
|
|
||||||
/* A python function to write a single string using gdb's filtered
|
/* 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.
|
/* Return the current Progspace.
|
||||||
There always is one. */
|
There always is one. */
|
||||||
@ -10643,7 +10641,7 @@ index 6680126..2eee31f 100644
|
|||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
gdbpy_get_current_progspace (PyObject *unused1, PyObject *unused2)
|
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_lazy_string ();
|
||||||
gdbpy_initialize_thread ();
|
gdbpy_initialize_thread ();
|
||||||
gdbpy_initialize_inferior ();
|
gdbpy_initialize_inferior ();
|
||||||
@ -10651,7 +10649,7 @@ index 6680126..2eee31f 100644
|
|||||||
|
|
||||||
PyRun_SimpleString ("import gdb");
|
PyRun_SimpleString ("import gdb");
|
||||||
PyRun_SimpleString ("gdb.pretty_printers = []");
|
PyRun_SimpleString ("gdb.pretty_printers = []");
|
||||||
@@ -826,6 +1089,8 @@ static PyMethodDef GdbMethods[] =
|
@@ -787,6 +1050,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" },
|
||||||
@ -10660,7 +10658,7 @@ index 6680126..2eee31f 100644
|
|||||||
{ "parameter", gdbpy_parameter, METH_VARARGS,
|
{ "parameter", gdbpy_parameter, METH_VARARGS,
|
||||||
"Return a gdb parameter's value" },
|
"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)." },
|
`this' (when the current language is object-oriented)." },
|
||||||
{ "block_for_pc", gdbpy_block_for_pc, METH_VARARGS,
|
{ "block_for_pc", gdbpy_block_for_pc, METH_VARARGS,
|
||||||
"Return the block containing the given pc value, or None." },
|
"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
|
/* Given an executable's ABFD and target, compute the entry-point
|
||||||
diff --git a/gdb/symfile.c b/gdb/symfile.c
|
diff --git a/gdb/symfile.c b/gdb/symfile.c
|
||||||
index ab51fa4..babe9cf 100644
|
index 42f7ae3..371db0d 100644
|
||||||
--- a/gdb/symfile.c
|
--- a/gdb/symfile.c
|
||||||
+++ b/gdb/symfile.c
|
+++ b/gdb/symfile.c
|
||||||
@@ -1059,6 +1059,9 @@ symbol_file_add_with_addrs_or_offsets (bfd *abfd,
|
@@ -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)
|
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
|
void
|
||||||
set_initial_language (void)
|
set_initial_language (void)
|
||||||
{
|
{
|
||||||
@ -10741,7 +10739,7 @@ index ab51fa4..babe9cf 100644
|
|||||||
enum language lang = language_unknown;
|
enum language lang = language_unknown;
|
||||||
|
|
||||||
filename = find_main_filename ();
|
filename = find_main_filename ();
|
||||||
@@ -2662,7 +2665,7 @@ init_filename_language_table (void)
|
@@ -2660,7 +2663,7 @@ init_filename_language_table (void)
|
||||||
}
|
}
|
||||||
|
|
||||||
enum language
|
enum language
|
||||||
@ -10802,7 +10800,7 @@ index 62e6b97..00dc613 100644
|
|||||||
ms_type = 'S';
|
ms_type = 'S';
|
||||||
break;
|
break;
|
||||||
diff --git a/gdb/symtab.c b/gdb/symtab.c
|
diff --git a/gdb/symtab.c b/gdb/symtab.c
|
||||||
index 9472c24..c3b1792 100644
|
index 2c4c9e4..28f0450 100644
|
||||||
--- a/gdb/symtab.c
|
--- a/gdb/symtab.c
|
||||||
+++ b/gdb/symtab.c
|
+++ b/gdb/symtab.c
|
||||||
@@ -1295,16 +1295,25 @@ lookup_symbol_aux_symtabs (int block_index, const char *name,
|
@@ -1295,16 +1295,25 @@ lookup_symbol_aux_symtabs (int block_index, const char *name,
|
||||||
@ -10971,7 +10969,7 @@ index bedc10a..dc284e4 100644
|
|||||||
/* symtab.c */
|
/* symtab.c */
|
||||||
|
|
||||||
diff --git a/gdb/target.c b/gdb/target.c
|
diff --git a/gdb/target.c b/gdb/target.c
|
||||||
index 862df4e..a8f1bdd 100644
|
index 4cabcbd..34b3b60 100644
|
||||||
--- a/gdb/target.c
|
--- a/gdb/target.c
|
||||||
+++ b/gdb/target.c
|
+++ b/gdb/target.c
|
||||||
@@ -123,6 +123,8 @@ static int debug_to_insert_watchpoint (CORE_ADDR, int, int,
|
@@ -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,
|
de_fault (to_stopped_by_watchpoint,
|
||||||
(int (*) (void))
|
(int (*) (void))
|
||||||
return_zero);
|
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;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -11021,7 +11019,7 @@ index 862df4e..a8f1bdd 100644
|
|||||||
static void
|
static void
|
||||||
debug_to_terminal_init (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_remove_hw_breakpoint = debug_to_remove_hw_breakpoint;
|
||||||
current_target.to_insert_watchpoint = debug_to_insert_watchpoint;
|
current_target.to_insert_watchpoint = debug_to_insert_watchpoint;
|
||||||
current_target.to_remove_watchpoint = debug_to_remove_watchpoint;
|
current_target.to_remove_watchpoint = debug_to_remove_watchpoint;
|
||||||
@ -14208,7 +14206,7 @@ index 0000000..226dc5d
|
|||||||
+ call foo (g, h)
|
+ call foo (g, h)
|
||||||
+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 1aed252..593aa55 100644
|
index fc8bccc..e053813 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
|
||||||
@@ -92,6 +92,10 @@ proc do_steps_and_nexts {} {
|
@@ -92,6 +92,10 @@ proc do_steps_and_nexts {} {
|
||||||
@ -15388,7 +15386,7 @@ index 0000000..1dc93ab
|
|||||||
+ test child FOLLOW_CHILD
|
+ test child FOLLOW_CHILD
|
||||||
+}
|
+}
|
||||||
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
|
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
|
--- a/gdb/testsuite/lib/gdb.exp
|
||||||
+++ b/gdb/testsuite/lib/gdb.exp
|
+++ b/gdb/testsuite/lib/gdb.exp
|
||||||
@@ -27,6 +27,7 @@ if {$tool == ""} {
|
@@ -27,6 +27,7 @@ if {$tool == ""} {
|
||||||
@ -15494,7 +15492,7 @@ index 0000000..b8e9836
|
|||||||
+ return 0
|
+ return 0
|
||||||
+}
|
+}
|
||||||
diff --git a/gdb/thread.c b/gdb/thread.c
|
diff --git a/gdb/thread.c b/gdb/thread.c
|
||||||
index 2fdc7f9..2a5d0f1 100644
|
index 0b291ba..ae3e4ff 100644
|
||||||
--- a/gdb/thread.c
|
--- a/gdb/thread.c
|
||||||
+++ b/gdb/thread.c
|
+++ b/gdb/thread.c
|
||||||
@@ -90,6 +90,16 @@ delete_step_resume_breakpoint (struct thread_info *tp)
|
@@ -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);
|
discard_all_intermediate_continuations_thread (tp);
|
||||||
diff --git a/gdb/top.c b/gdb/top.c
|
diff --git a/gdb/top.c b/gdb/top.c
|
||||||
index 93447fe..d6875a7 100644
|
index b29e68d..8edac70 100644
|
||||||
--- a/gdb/top.c
|
--- a/gdb/top.c
|
||||||
+++ b/gdb/top.c
|
+++ b/gdb/top.c
|
||||||
@@ -337,6 +337,7 @@ void
|
@@ -337,6 +337,7 @@ void
|
||||||
|
@ -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 <jan.kratochvil@redhat.com>
|
|
||||||
+
|
|
||||||
+ * 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) <to_string>: 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) <batch_flag>
|
|
||||||
+ (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 <macro@codesourcery.com>
|
|
||||||
|
|
||||||
* 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 <jan.kratochvil@redhat.com>
|
|
||||||
+
|
|
||||||
+ * 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 <dje@google.com>
|
|
||||||
|
|
||||||
* 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 <jan.kratochvil@redhat.com>
|
|
||||||
+ Eli Zaretskii <eliz@gnu.org>
|
|
||||||
+
|
|
||||||
+ * gdb.texinfo (Mode Options) <-batch>
|
|
||||||
+ (Basic Python) <gdb.execute>: Describe setting width and height.
|
|
||||||
+
|
|
||||||
2010-07-31 Paul Pluzhnikov <ppluzhnikov@google.com>
|
|
||||||
|
|
||||||
* 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 <return> to continue, or q <return> 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 <return> to continue, or q <return> to quit---$" {
|
|
||||||
+ pass $test
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+gdb_test "q" "Quit" "verify pagination afterwards: q"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
https://bugzilla.redhat.com/show_bug.cgi?id=610986
|
https://bugzilla.redhat.com/show_bug.cgi?id=610986
|
||||||
http://sourceware.org/ml/gdb-cvs/2010-08/msg00112.html
|
http://sourceware.org/ml/gdb-cvs/2010-08/msg00112.html
|
||||||
|
|
||||||
|
7
gdb.spec
7
gdb.spec
@ -34,11 +34,11 @@ Name: gdb%{?_with_debug:-debug}
|
|||||||
# Set version to contents of gdb/version.in.
|
# Set version to contents of gdb/version.in.
|
||||||
# NOTE: the FSF gdb versions are numbered N.M for official releases, like 6.3
|
# 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).
|
# 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.
|
# 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: 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
|
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
|
Group: Development/Debuggers
|
||||||
@ -1066,6 +1066,9 @@ fi
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Sep 3 2010 Dan Horák <dan[at]danny.cz> - 7.2-1.fc14
|
||||||
|
- Formal update to the final FSF GDB release.
|
||||||
|
|
||||||
* Tue Aug 24 2010 Dan Horák <dan[at]danny.cz> - 7.1.90.20100806-12.fc14
|
* Tue Aug 24 2010 Dan Horák <dan[at]danny.cz> - 7.1.90.20100806-12.fc14
|
||||||
- libinproctrace doesn't exist on s390(x)
|
- libinproctrace doesn't exist on s390(x)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user