X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fx86-arch.c;h=a62d20443e19b0368d53b22d1e5b127178e8c5d3;hb=3fe0010d2777b41e01ea9b4a0f894cfa40f7df1b;hp=fab9d1f2a155e46c3b09804c3b266f7e09f40e95;hpb=75b52379bdc2269961af6a1308eca63610f38ac3;p=sbcl.git diff --git a/src/runtime/x86-arch.c b/src/runtime/x86-arch.c index fab9d1f..a62d204 100644 --- a/src/runtime/x86-arch.c +++ b/src/runtime/x86-arch.c @@ -85,7 +85,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)) )++; + ++*os_context_pc_addr(context); } break; @@ -193,7 +193,6 @@ sigtrap_handler(int signal, siginfo_t *info, void *void_context) int code = info->si_code; os_context_t *context = (os_context_t*)void_context; unsigned int trap; - sigset_t ss; if (single_stepping && (signal==SIGTRAP)) { @@ -244,10 +243,7 @@ sigtrap_handler(int signal, siginfo_t *info, void *void_context) case trap_PendingInterrupt: FSHOW((stderr, "/\n")); arch_skip_instruction(context); - sigemptyset(&ss); - sigaddset(&ss,SIGTRAP); - sigprocmask(SIG_UNBLOCK,&ss,0); - interrupt_handle_pending(context); + interrupt_handle_pending(context); break; case trap_Halt: @@ -265,12 +261,12 @@ sigtrap_handler(int signal, siginfo_t *info, void *void_context) break; case trap_Breakpoint: - (char*)(*os_context_pc_addr(context)) -= 1; + --*os_context_pc_addr(context); handle_breakpoint(signal, info, context); break; case trap_FunEndBreakpoint: - (char*)(*os_context_pc_addr(context)) -= 1; + --*os_context_pc_addr(context); *os_context_pc_addr(context) = (int)handle_fun_end_breakpoint(signal, info, context); break;