* exceptions.cc (stackdump): Avoid dumping more than once.
This commit is contained in:
parent
6d61866578
commit
a339c989c7
@ -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>
|
2006-02-19 Christopher Faylor <cgf@timesys.com>
|
||||||
|
|
||||||
* fhandler_disk_file.cc (fhandler_disk_file::opendir): Use NtOpenFile
|
* fhandler_disk_file.cc (fhandler_disk_file::opendir): Use NtOpenFile
|
||||||
|
@ -124,6 +124,18 @@ extern "C"
|
|||||||
#endif
|
#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 *old_title;
|
||||||
char title_buf[TITLESIZE + 1];
|
char title_buf[TITLESIZE + 1];
|
||||||
|
|
||||||
|
@ -262,13 +262,16 @@ static void
|
|||||||
stackdump (DWORD ebp, int open_file, bool isexception)
|
stackdump (DWORD ebp, int open_file, bool isexception)
|
||||||
{
|
{
|
||||||
extern unsigned long rlim_core;
|
extern unsigned long rlim_core;
|
||||||
|
static bool already_dumped;
|
||||||
|
|
||||||
if (rlim_core == 0UL)
|
if (rlim_core == 0UL || (open_file && already_dumped))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (open_file)
|
if (open_file)
|
||||||
open_stackdumpfile ();
|
open_stackdumpfile ();
|
||||||
|
|
||||||
|
already_dumped = true;
|
||||||
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
thestack.init (ebp, 1, !isexception); /* Initialize from the input CONTEXT */
|
thestack.init (ebp, 1, !isexception); /* Initialize from the input CONTEXT */
|
||||||
|
@ -74,6 +74,7 @@ timer_tracker::cancel ()
|
|||||||
SetEvent (hcancel);
|
SetEvent (hcancel);
|
||||||
if (WaitForSingleObject (syncthread, INFINITE) != WAIT_OBJECT_0)
|
if (WaitForSingleObject (syncthread, INFINITE) != WAIT_OBJECT_0)
|
||||||
api_fatal ("WFSO failed waiting for timer thread, %E");
|
api_fatal ("WFSO failed waiting for timer thread, %E");
|
||||||
|
debug_printf ("cancelled");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user