pike.git
/
src
/
error.c
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/error.c:13:
#include "array.h" #include "object.h" #include "main.h" #include "builtin_functions.h" #include "backend.h" #include "operators.h" #include "module_support.h" #include "threads.h" #include "gc.h"
-
RCSID("$Id: error.c,v 1.
45
2000/04/
12
18
:
40
:
12
hubbe Exp $");
+
RCSID("$Id: error.c,v 1.
46
2000/04/
16
22
:
10
:
31
hubbe Exp $");
#undef ATTRIBUTE #define ATTRIBUTE(X) JMP_BUF *recoveries=0; #ifdef PIKE_DEBUG void check_recovery_context(void) { char foo;
pike.git/src/error.c:266:
va_list args; static int in_fatal = 0; va_start(args,fmt); /* Prevent double fatal. */ if (in_fatal) { (void)VFPRINTF(stderr, fmt, args); abort(); }
+
in_fatal = 1; #ifdef PIKE_DEBUG dump_backlog(); #endif
-
+
{
+
extern int Pike_in_gc;
+
if(Pike_in_gc)
+
{
+
fprintf(stderr,"Pike was in GC stage %d when this fatal occured:\n",Pike_in_gc);
+
Pike_in_gc=0;
+
}
+
(void)VFPRINTF(stderr, fmt, args); d_flag=t_flag=0; push_error("Attempting to dump backlog (may fail).\n"); APPLY_MASTER("describe_backtrace",1); if(sp[-1].type==T_STRING) write_to_stderr(sp[-1].u.string->str, sp[-1].u.string->len); fflush(stderr); abort();