X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fbreakpoint.c;h=5dfa9a458bc1b76c23ca1d1e6e05d73a97d24616;hb=d63d80e637e9058ff5db7a10c267796ff7970ba1;hp=846fa777c1e1e15a4606f1e30d26c09b5b72baca;hpb=e2b2b8f2156ede16d70a0bdd0cfad29ea31b8ccc;p=sbcl.git diff --git a/src/runtime/breakpoint.c b/src/runtime/breakpoint.c index 846fa77..5dfa9a4 100644 --- a/src/runtime/breakpoint.c +++ b/src/runtime/breakpoint.c @@ -104,7 +104,7 @@ static long compute_offset(os_context_t *context, lispobj code) else { unsigned long code_start; struct code *codeptr = (struct code *)native_pointer(code); -#ifdef parisc +#ifdef LISP_FEATURE_HPPA unsigned long pc = *os_context_pc_addr(context) & ~3; #else unsigned long pc = *os_context_pc_addr(context); @@ -115,7 +115,7 @@ static long compute_offset(os_context_t *context, lispobj code) if (pc < code_start) return 0; else { - long offset = pc - code_start; + unsigned long offset = pc - code_start; if (offset >= codeptr->code_size) return 0; else @@ -130,6 +130,7 @@ void handle_breakpoint(os_context_t *context) fake_foreign_function_call(context); + unblock_gc_signals(); context_sap = alloc_sap(context); code = find_code(context); @@ -154,6 +155,7 @@ void *handle_fun_end_breakpoint(os_context_t *context) fake_foreign_function_call(context); + unblock_gc_signals(); context_sap = alloc_sap(context); code = find_code(context); codeptr = (struct code *)native_pointer(code);