X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fx86-arch.c;h=16b669a62280239ed1260854eb8ed4e7c6f3a9c7;hb=d7f6139a91d7d9b0667a597584ae306d958bb2f4;hp=aaad2a1589aae24f75440ccd87ae62e3cca7dec3;hpb=7f76d571fe545578e3bd26e627d181a39a8f1eb7;p=sbcl.git diff --git a/src/runtime/x86-arch.c b/src/runtime/x86-arch.c index aaad2a1..16b669a 100644 --- a/src/runtime/x86-arch.c +++ b/src/runtime/x86-arch.c @@ -67,7 +67,7 @@ void arch_skip_instruction(os_context_t *context) int vlen; int code; - FSHOW((stderr, "[arch_skip_inst at %x]\n", *os_context_pc_addr(context))); + FSHOW((stderr, "/[arch_skip_inst at %x]\n", *os_context_pc_addr(context))); /* Get and skip the Lisp interrupt code. */ code = *(char*)(*os_context_pc_addr(context))++; @@ -79,7 +79,7 @@ void arch_skip_instruction(os_context_t *context) vlen = *(char*)(*os_context_pc_addr(context))++; /* Skip Lisp error arg data bytes. */ while (vlen-- > 0) { - (char*)(*os_context_pc_addr(context))++; + ( (char*)(*os_context_pc_addr(context)) )++; } break; @@ -98,7 +98,7 @@ void arch_skip_instruction(os_context_t *context) } FSHOW((stderr, - "[arch_skip_inst resuming at %x]\n", + "/[arch_skip_inst resuming at %x]\n", *os_context_pc_addr(context))); } @@ -152,7 +152,7 @@ unsigned int single_step_save3; #endif void -arch_do_displaced_inst(os_context_t *context, unsigned long orig_inst) +arch_do_displaced_inst(os_context_t *context, unsigned int orig_inst) { unsigned int *pc = (unsigned int*)(*os_context_pc_addr(context)); @@ -203,7 +203,6 @@ sigtrap_handler(int signal, siginfo_t *info, void *void_context) if (*os_context_pc_addr(context) == (int)single_stepping + 1) { fprintf(stderr, "warning: couldn't reinstall breakpoint\n"); } else { - char *ptr = (char*)single_stepping; *((char *)single_stepping) = BREAKPOINT_INST; /* x86 INT3 */ *((char *)single_stepping+1) = trap_Breakpoint; } @@ -225,7 +224,7 @@ sigtrap_handler(int signal, siginfo_t *info, void *void_context) switch (trap) { case trap_PendingInterrupt: - FSHOW((stderr, "\n")); + FSHOW((stderr, "/\n")); arch_skip_instruction(context); interrupt_handle_pending(context); break; @@ -236,7 +235,7 @@ sigtrap_handler(int signal, siginfo_t *info, void *void_context) * seems to be no point in doing that, since we're just * going to lose(..) anyway. */ fake_foreign_function_call(context); - lose("%%primitive halt called; the party is over."); + lose("%%PRIMITIVE HALT called; the party is over."); case trap_Error: case trap_Cerror: @@ -256,7 +255,7 @@ sigtrap_handler(int signal, siginfo_t *info, void *void_context) break; default: - FSHOW((stderr,"[C--trap default %d %d %x]\n", + FSHOW((stderr,"/[C--trap default %d %d %x]\n", signal, code, context)); interrupt_handle_now(signal, info, context); break; @@ -266,8 +265,10 @@ sigtrap_handler(int signal, siginfo_t *info, void *void_context) void arch_install_interrupt_handlers() { + SHOW("entering arch_install_interrupt_handlers()"); interrupt_install_low_level_handler(SIGILL , sigtrap_handler); interrupt_install_low_level_handler(SIGTRAP, sigtrap_handler); + SHOW("returning from arch_install_interrupt_handlers()"); } /* This is implemented in assembly language and called from C: */ @@ -287,6 +288,7 @@ funcall0(lispobj function) { lispobj *args = NULL; + FSHOW((stderr, "/entering funcall0(0x%lx)\n", (long)function)); return call_into_lisp(function, args, 0); } lispobj