public inbox for archer-commits@sourceware.org
help / color / mirror / Atom feed
* [SCM]  archer-pmuldoon-exception-rewind-master: Add Eli's patch changes.
@ 2009-06-08 21:33 pmuldoon
  0 siblings, 0 replies; only message in thread
From: pmuldoon @ 2009-06-08 21:33 UTC (permalink / raw)
  To: archer-commits

The branch, archer-pmuldoon-exception-rewind-master has been updated
       via  92d739312d860bfe9784109efc7c4389364cf36e (commit)
      from  7bc0f5b9e11393838e2760a5b3cdbe48aa0b7c54 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email.

- Log -----------------------------------------------------------------
commit 92d739312d860bfe9784109efc7c4389364cf36e
Author: Phil Muldoon <pmuldoon@redhat.com>
Date:   Mon Jun 8 22:32:51 2009 +0100

    Add Eli's patch changes.

-----------------------------------------------------------------------

Summary of changes:
 gdb/doc/gdb.texinfo              |   16 ++++++++++------
 gdb/infcall.c                    |   10 +++++-----
 gdb/testsuite/gdb.cp/gdb2495.exp |    3 +--
 3 files changed, 16 insertions(+), 13 deletions(-)

First 500 lines of diff:
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index df6909e..7b70745 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -12858,10 +12858,14 @@ It is possible for the function you call via the @code{print} or
 the function, or if you passed it incorrect arguments).  What happens
 in that case is controlled by the @code{set unwindonsignal} command.
 
-Similarly, with a C++ program  it is possible for the function you
+Similarly, with a C@t{++} program it is possible for the function you
 call via the @code{print} or @code{call} command to generate an
 exception that is not handled due to the constraints of the dummy
-frame.  What happens in that case is controlled by the
+frame.  In this case, any exception that is raised in the frame, but has
+an out-of-frame exception handler will not be found.  GDB builds a
+dummy-frame for the inferior function call, and the unwinder cannot
+seek for exception handlers outside of this dummy-frame.  What happens
+in that case is controlled by the
 @code{set unwind-on-terminating-exception} command.
 
 @table @code
@@ -12883,14 +12887,14 @@ Show the current setting of stack unwinding in the functions called by
 
 @item set unwind-on-terminating-exception
 @kindex set unwind-on-terminating-exception
-@cindex unwind stack in called functions
+@cindex unwind stack in called functions with unhandled exceptions
 @cindex call dummy stack unwinding on unhandled exception.
-Set unwinding of the stack if a C++ exception is raised but unhandled
-while in a function that @value{GDBN} called in the program being
+Set unwinding of the stack if a C@t{++} exception is raised, but left
+unhandled while in a function that @value{GDBN} called in the program being
 debugged.  If set to on (the default), @value{GDBN} unwinds the stack
 it created for the call and restores the context to what it was before
 the call.  If set to off, @value{GDBN} the exception is delivered to
-the default C++ exception handler.
+the default C@t{++} exception handler and the inferior terminated.
 
 @item show unwind-on-terminating-exception
 @kindex show unwind-on-terminating-exception
diff --git a/gdb/infcall.c b/gdb/infcall.c
index 9a4e27b..acb0ba4 100644
--- a/gdb/infcall.c
+++ b/gdb/infcall.c
@@ -1078,13 +1078,13 @@ The default is to stop in the frame where the signal was received."),
 
   add_setshow_boolean_cmd ("unwind-on-terminating-exception", no_class,
 			   &unwind_on_terminating_exception_p, _("\
-Set unwinding of stack if a std::terminate() call originates from\n\
-the default C++ exception handler."), _("\
-Show unwinding of stack if a std::terminate() call originates from\n\
-the default C++ exception handler."), _("\
+Set unwinding of stack if std::terminate is called while in call dummy."), _("\
+Show unwinding of stack if std::terminate() is called while in a call dummy."), _("\
 The unwind on terminating exception flag lets the user determine\n\
 what gdb should do if a std::terminate() call is made from the\n\
-default exception handler.\n\
+default exception handler.  If set, gdb unwinds the stack and restores\n\
+the context to what it was before the call.  If unset, gdb allows the
+std::terminate call to proceed.\n\
 The default is to unwind the frame."),
 			   NULL,
 			   show_unwind_on_terminating_exception_p,
diff --git a/gdb/testsuite/gdb.cp/gdb2495.exp b/gdb/testsuite/gdb.cp/gdb2495.exp
index f1a9761..0be68ce 100644
--- a/gdb/testsuite/gdb.cp/gdb2495.exp
+++ b/gdb/testsuite/gdb.cp/gdb2495.exp
@@ -111,10 +111,9 @@ gdb_test "show unwind-on-terminating-exception" \
 
 # Check that the old behaviour is restored.
 gdb_test "p exceptions.throw_function()" \
-    "The program being debugged stopped while in a function called .*" \
+    "The program being debugged was signaled while in a function called .*" \
     "Call a function that raises an exception with unwinding off.."
 
-
 # Restart the inferior back at main.
 if ![runto_main] then {
     perror "couldn't run to main"


hooks/post-receive
--
Repository for Project Archer.


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2009-06-08 21:33 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-06-08 21:33 [SCM] archer-pmuldoon-exception-rewind-master: Add Eli's patch changes pmuldoon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).