Author: Armin Rigo <ar...@tunes.org>
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
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to