diff --git a/ldb/ldb.c b/ldb/ldb.c index 8191b261f48bea7055c5548ec24e426de104cfb0..1cdd9c8723b7a7bf3bafc85b48b0e5f07784fa33 100644 --- a/ldb/ldb.c +++ b/ldb/ldb.c @@ -1,4 +1,4 @@ -/* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/ldb/Attic/ldb.c,v 1.6 1990/06/03 22:37:00 ch Exp $ */ +/* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/ldb/Attic/ldb.c,v 1.7 1990/07/01 04:42:29 wlott Exp $ */ /* Lisp kernel core debugger */ #include <stdio.h> @@ -43,6 +43,7 @@ char *envp[]; { char *arg, **argptr; char *core = NULL; + boolean restore_state; define_var("nil", NIL, TRUE); define_var("t", T, TRUE); @@ -75,18 +76,22 @@ char *envp[]; validate(); - load_core_file(core); - globals_init(); + restore_state = load_core_file(core); + interrupt_init(); /* Convert the argv and envp to something Lisp can grok. */ SetSymbolValue(LISP_COMMAND_LINE_LIST, alloc_str_list(argv)); SetSymbolValue(LISP_ENVIRONMENT_LIST, alloc_str_list(envp)); + /* Snag a few of the signal */ test_init(); - while (1) - monitor(); + if (restore_state) + restore(); + else + while (1) + ldb_monitor(); }