X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fprint.c;h=67a7c207dae45e244b4e6a084523ef4514bad2eb;hb=d90c8a75da90925a51a587f7bd4d9c494256f68a;hp=e50da2ec5aaa2df376a1ec004b2acdec5bfd41b7;hpb=ebb604b4422ba886e70ce2e531c1f4d28d44e721;p=sbcl.git diff --git a/src/runtime/print.c b/src/runtime/print.c index e50da2e..67a7c20 100644 --- a/src/runtime/print.c +++ b/src/runtime/print.c @@ -27,6 +27,7 @@ #include #include "thread.h" /* genesis/primitive-objects.h needs this */ #include +#include /* FSHOW and odxprint provide debugging output for low-level information * (signal handling, exceptions, safepoints) which is hard to debug by @@ -69,10 +70,16 @@ dyndebug_init() dyndebug_init1(misc, "MISC"); dyndebug_init1(pagefaults, "PAGEFAULTS"); + int n_output_flags = n; + dyndebug_init1(backtrace_when_lost, "BACKTRACE_WHEN_LOST"); + dyndebug_init1(sleep_when_lost, "SLEEP_WHEN_LOST"); + if (n != DYNDEBUG_NFLAGS) fprintf(stderr, "Bug in dyndebug_init\n"); +#if defined(LISP_FEATURE_GENCGC) gencgc_verbose = dyndebug_config.dyndebug_gencgc_verbose; +#endif char *featurelist = getenv("SBCL_DYNDEBUG"); if (featurelist) { @@ -84,7 +91,7 @@ dyndebug_init() if (!token) break; unsigned i; if (!strcmp(token, "all")) - for (i = 0; i < DYNDEBUG_NFLAGS; i++) + for (i = 0; i < n_output_flags; i++) *ptrs[i] = 1; else { for (i = 0; i < DYNDEBUG_NFLAGS; i++) @@ -104,8 +111,11 @@ dyndebug_init() fprintf(stderr, "Valid flags are:\n"); fprintf(stderr, " all ;enables all of the following:\n"); unsigned i; - for (i = 0; i < DYNDEBUG_NFLAGS; i++) + for (i = 0; i < DYNDEBUG_NFLAGS; i++) { + if (i == n_output_flags) + fprintf(stderr, "Additional options:\n"); fprintf(stderr, " %s\n", names[i]); + } } } @@ -118,6 +128,8 @@ dyndebug_init() * be restored to its full win32 branch functionality, where output to a * file or to the debugger can be selected at runtime. */ +void vodxprint_fun(const char *, va_list); + void odxprint_fun(const char *fmt, ...) { @@ -203,6 +215,9 @@ fshow_fun(void __attribute__((__unused__)) *ignored, #ifdef LISP_FEATURE_GENCGC #include "gencgc-alloc-region.h" /* genesis/thread.h needs this */ #endif +#if defined(LISP_FEATURE_WIN32) +# include "win32-thread-private-events.h" /* genesis/thread.h needs this */ +#endif #include "genesis/static-symbols.h" #include "genesis/primitive-objects.h" #include "genesis/static-symbols.h"