X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fmonitor.c;h=45a9b00cb61e28b1060be8a50fbb2b85ca88975f;hb=1439811447104b32d986bab40d6e2ed431247004;hp=9d175086ca9829725094e122f340895e173468b7;hpb=18d08023458b475bbd6734ece3b428166f74a8f3;p=sbcl.git diff --git a/src/runtime/monitor.c b/src/runtime/monitor.c index 9d17508..45a9b00 100644 --- a/src/runtime/monitor.c +++ b/src/runtime/monitor.c @@ -190,11 +190,13 @@ regs_cmd(char **ptr) { 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); + printf("CSP\t=\t0x%08lx ", (unsigned long)access_control_stack_pointer(thread)); +#if !defined(LISP_FEATURE_X86) && !defined(LISP_FEATURE_X86_64) + printf("CFP\t=\t0x%08lx ", (unsigned long)access_control_frame_pointer(thread)); +#endif #ifdef reg_BSP - printf("BSP\t=\t0x%08lx\n", (unsigned long)current_binding_stack_pointer); + printf("BSP\t=\t0x%08lx\n", (unsigned long)get_binding_stack_pointer(thread)); #else /* printf("BSP\t=\t0x%08lx\n", (unsigned long)SymbolValue(BINDING_STACK_POINTER)); */ @@ -273,8 +275,7 @@ search_cmd(char **ptr) end += 2; if (widetag_of(obj) == SIMPLE_FUN_HEADER_WIDETAG) { print((long)addr | FUN_POINTER_LOWTAG); - } else if (lowtag_of(obj) == OTHER_IMMEDIATE_0_LOWTAG || - lowtag_of(obj) == OTHER_IMMEDIATE_1_LOWTAG) { + } else if (other_immediate_lowtag_p(obj)) { print((lispobj)addr | OTHER_POINTER_LOWTAG); } else { print((lispobj)addr); @@ -392,7 +393,7 @@ print_context_cmd(char **ptr) static void backtrace_cmd(char **ptr) { - void backtrace(int frames); + void lisp_backtrace(int frames); int n; if (more_p(ptr)) @@ -401,7 +402,7 @@ backtrace_cmd(char **ptr) n = 100; printf("Backtrace:\n"); - backtrace(n); + lisp_backtrace(n); } static void @@ -454,6 +455,10 @@ sub_monitor(void) if (!ldb_in) { #ifndef LISP_FEATURE_WIN32 ldb_in = fopen("/dev/tty","r+"); + if (ldb_in == NULL) { + perror("Error opening /dev/tty"); + ldb_in = stdin; + } #else ldb_in = stdin; #endif