* exceptions.cc (stackdump): Avoid dumping more than once.

This commit is contained in:
Christopher Faylor 2006-02-20 02:04:31 +00:00
parent 6d61866578
commit a339c989c7
4 changed files with 21 additions and 1 deletions

View File

@ -1,3 +1,7 @@
2006-02-19 Christopher Faylor <cgf@timesys.com>
* exceptions.cc (stackdump): Avoid dumping more than once.
2006-02-19 Christopher Faylor <cgf@timesys.com>
* fhandler_disk_file.cc (fhandler_disk_file::opendir): Use NtOpenFile

View File

@ -124,6 +124,18 @@ extern "C"
#endif
};
#ifdef DEBUGGING
void __stdcall
envvar ()
{
const char *s = "PATH";
char buf[4096];
Sleep (500);
small_printf ("%d = GetEnvironmentVariable (\"%s\")\n", GetEnvironmentVariable (s, buf, sizeof buf), s);
small_printf ("value = '%s'\n", buf);
}
#endif
char *old_title;
char title_buf[TITLESIZE + 1];

View File

@ -262,13 +262,16 @@ static void
stackdump (DWORD ebp, int open_file, bool isexception)
{
extern unsigned long rlim_core;
static bool already_dumped;
if (rlim_core == 0UL)
if (rlim_core == 0UL || (open_file && already_dumped))
return;
if (open_file)
open_stackdumpfile ();
already_dumped = true;
int i;
thestack.init (ebp, 1, !isexception); /* Initialize from the input CONTEXT */

View File

@ -74,6 +74,7 @@ timer_tracker::cancel ()
SetEvent (hcancel);
if (WaitForSingleObject (syncthread, INFINITE) != WAIT_OBJECT_0)
api_fatal ("WFSO failed waiting for timer thread, %E");
debug_printf ("cancelled");
return true;
}