* exception.h (stackdump): Declare.

* exceptions.cc (stackdump): Rework to perform all operations needed for a
stackdump and to avoid recursion.
(exception::handle): Use simplified stackdump interface.
* sigproc.cc (signal::exit): Ditto.  Delete now, uneeded declaration.
This commit is contained in:
Christopher Faylor
2012-02-12 22:43:33 +00:00
parent ce48510394
commit e52a43f101
4 changed files with 27 additions and 20 deletions

View File

@ -23,6 +23,7 @@ details. */
#include "shared_info.h"
#include "cygtls.h"
#include "ntdll.h"
#include "exception.h"
/*
* Convenience defines
@ -373,8 +374,6 @@ close_my_readsig ()
void
_cygtls::signal_exit (int rc)
{
extern void stackdump (DWORD, int, bool);
HANDLE myss = my_sendsig;
my_sendsig = NULL; /* Make no_signals_allowed return true */
@ -414,7 +413,7 @@ _cygtls::signal_exit (int rc)
}
if ((rc & 0x80) && !try_to_debug ())
stackdump (thread_context.ebp, 1, 1);
stackdump (thread_context.ebp, true);
lock_process until_exit (true);
if (have_execed || exit_state > ES_PROCESS_LOCKED)