X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fruntime%2Fmonitor.c;h=ce0ef794db8e31b5de825697e8a7958c87314c99;hb=dcd86042bba514f5dfc39246de9cdbb030648569;hp=aff7720b3545d639c1bdc1ab270a710733eb59ea;hpb=cbfca6d8c90bfd249e6bee6e3d9bba88a56c0312;p=sbcl.git diff --git a/src/runtime/monitor.c b/src/runtime/monitor.c index aff7720..ce0ef79 100644 --- a/src/runtime/monitor.c +++ b/src/runtime/monitor.c @@ -9,16 +9,19 @@ * files for more information. */ +#include "sbcl.h" + #include #include #include #include #include +#ifndef LISP_FEATURE_WIN32 #include +#endif #include #include -#include "sbcl.h" #include "runtime.h" #include "parse.h" #include "vars.h" @@ -177,25 +180,34 @@ print_cmd(char **ptr) static void kill_cmd(char **ptr) { +#ifndef LISP_FEATURE_WIN32 kill(getpid(), parse_number(ptr)); +#endif } static void regs_cmd(char **ptr) { - printf("CSP\t=\t0x%08lx\n", (unsigned long)current_control_stack_pointer); - printf("CFP\t=\t0x%08lx\n", (unsigned long)current_control_frame_pointer); + struct thread *thread=arch_os_get_current_thread(); + + printf("CSP\t=\t0x%08lx ", (unsigned long)current_control_stack_pointer); + printf("CFP\t=\t0x%08lx ", (unsigned long)current_control_frame_pointer); #ifdef reg_BSP printf("BSP\t=\t0x%08lx\n", (unsigned long)current_binding_stack_pointer); #else /* printf("BSP\t=\t0x%08lx\n", (unsigned long)SymbolValue(BINDING_STACK_POINTER)); */ + printf("\n"); #endif #ifdef LISP_FEATURE_GENCGC /* printf("DYNAMIC\t=\t0x%08lx\n", DYNAMIC_SPACE_START); */ #else + printf("STATIC\t=\t0x%08lx ", + (unsigned long)SymbolValue(STATIC_SPACE_FREE_POINTER, thread)); + printf("RDONLY\t=\t0x%08lx ", + (unsigned long)SymbolValue(READ_ONLY_SPACE_FREE_POINTER, thread)); printf("DYNAMIC\t=\t0x%08lx\n", (unsigned long)current_dynamic_space); #endif @@ -203,20 +215,12 @@ regs_cmd(char **ptr) printf("ALLOC\t=\t0x%08lx\n", (unsigned long)dynamic_space_free_pointer); #else printf("ALLOC\t=\t0x%08lx\n", - (unsigned long)SymbolValue(ALLOCATION_POINTER, - arch_os_get_current_thread())); + (unsigned long)SymbolValue(ALLOCATION_POINTER, thread)); #endif #ifndef LISP_FEATURE_GENCGC printf("TRIGGER\t=\t0x%08lx\n", (unsigned long)current_auto_gc_trigger); #endif - -#if 0 - printf("STATIC\t=\t0x%08lx\n", - (unsigned long)SymbolValue(STATIC_SPACE_FREE_POINTER)); - printf("RDONLY\t=\t0x%08lx\n", - (unsigned long)SymbolValue(READ_ONLY_SPACE_FREE_POINTER)); -#endif } static void @@ -444,7 +448,11 @@ sub_monitor(void) int ambig; if (!ldb_in) { +#ifndef LISP_FEATURE_WIN32 ldb_in = fopen("/dev/tty","r+"); +#else + ldb_in = stdin; +#endif ldb_in_fd = fileno(ldb_in); } @@ -491,7 +499,7 @@ ldb_monitor() bcopy(curbuf, oldbuf, sizeof(oldbuf)); - printf("LDB monitor\n"); + printf("Welcome to LDB, a low-level debugger for the Lisp runtime environment.\n"); setjmp(curbuf);