Author: Armin Rigo <[email protected]>
Branch: reverse-debugger
Changeset: r85496:0210f3ef956a
Date: 2016-07-01 18:55 +0200
http://bitbucket.org/pypy/pypy/changeset/0210f3ef956a/
Log: Minor clean-up, and don't trace hidden_applevel bytecodes at all
(previously it would still trigger at bytecode index 0).
diff --git a/pypy/interpreter/pyopcode.py b/pypy/interpreter/pyopcode.py
--- a/pypy/interpreter/pyopcode.py
+++ b/pypy/interpreter/pyopcode.py
@@ -53,14 +53,10 @@
### opcode dispatch ###
def dispatch(self, pycode, next_instr, ec):
- if self.space.config.translation.reverse_debugger:
- from pypy.interpreter.reverse_debugging import prepare_code
- prepare_code(pycode)
- #
# For the sequel, force 'next_instr' to be unsigned for performance
next_instr = r_uint(next_instr)
co_code = pycode.co_code
- #
+
try:
while True:
next_instr = self.handle_bytecode(co_code, next_instr, ec)
diff --git a/pypy/interpreter/reverse_debugging.py
b/pypy/interpreter/reverse_debugging.py
--- a/pypy/interpreter/reverse_debugging.py
+++ b/pypy/interpreter/reverse_debugging.py
@@ -26,7 +26,7 @@
# invariant: "f_revdb_nextline_instr" is the bytecode offset of
# the start of the line that follows "last_instr".
-pyframe.PyFrame.f_revdb_nextline_instr = 0
+pyframe.PyFrame.f_revdb_nextline_instr = -1
# ____________________________________________________________
@@ -69,6 +69,10 @@
if dbstate.breakpoint_stack_id != 0 and caller_frame is not None:
if dbstate.breakpoint_stack_id == revdb.get_unique_id(caller_frame):
revdb.breakpoint(-1)
+ #
+ code = callee_frame.pycode
+ if code.co_revdb_linestarts is None:
+ build_co_revdb_linestarts(code)
def leave_call(caller_frame, callee_frame):
if dbstate.breakpoint_stack_id != 0 and caller_frame is not None:
@@ -172,10 +176,6 @@
code.co_revdb_linestarts = lstart
return lstart
-def prepare_code(code):
- if code.co_revdb_linestarts is None:
- build_co_revdb_linestarts(code)
-
def get_final_lineno(code):
lineno = code.co_firstlineno
lnotab = code.co_lnotab
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit