summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bytecode.c2
-rw-r--r--src/eval.c2
-rw-r--r--src/lisp.h3
3 files changed, 3 insertions, 4 deletions
diff --git a/src/bytecode.c b/src/bytecode.c
index 4ea3cbfb12b..c6766a38cf2 100644
--- a/src/bytecode.c
+++ b/src/bytecode.c
@@ -313,7 +313,7 @@ enum byte_code_op
/* Update the thread's bytecode offset, just before NEXT. */
-#define UPDATE_OFFSET (backtrace_byte_offset = pc - bytestr_data)
+#define UPDATE_OFFSET (backtrace_byte_offset = pc - bytestr_data - 1)
DEFUN ("byte-code", Fbyte_code, Sbyte_code, 3, 3, 0,
doc: /* Function used internally in byte-compiled code.
diff --git a/src/eval.c b/src/eval.c
index b9640f6ab7a..e4451aa96c4 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -342,7 +342,9 @@ call_debugger (Lisp_Object arg)
redisplay, which necessarily leads to display problems. */
specbind (Qinhibit_eval_during_redisplay, Qt);
#endif
+
val = apply1 (Vdebugger, arg);
+
/* Interrupting redisplay and resuming it later is not safe under
all circumstances. So, when the debugger returns, abort the
interrupted redisplay by going back to the top-level. */
diff --git a/src/lisp.h b/src/lisp.h
index f413d7a45ec..e92300f4f77 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -3281,9 +3281,6 @@ struct handler
enum nonlocal_exit nonlocal_exit;
Lisp_Object val;
- /* The bytecode offset where the error occurred. */
- int bytecode_offset;
-
struct handler *next;
struct handler *nextfree;