summaryrefslogtreecommitdiffstats
path: root/Lib/trace.py
diff options
context:
space:
mode:
authorAlexander Belopolsky <alexander.belopolsky@gmail.com>2010-09-24 18:03:12 (GMT)
committerAlexander Belopolsky <alexander.belopolsky@gmail.com>2010-09-24 18:03:12 (GMT)
commitff09ce211f8390bbcbb9d9bb2863ca97f63864c5 (patch)
tree483eb1c1722e5f63b31bfe1dc6784027dff0165c /Lib/trace.py
parent5e83da3d0867c36b3cf5d63b1c72ae0615652f99 (diff)
downloadcpython-ff09ce211f8390bbcbb9d9bb2863ca97f63864c5.zip
cpython-ff09ce211f8390bbcbb9d9bb2863ca97f63864c5.tar.gz
cpython-ff09ce211f8390bbcbb9d9bb2863ca97f63864c5.tar.bz2
Issue #9936: Fixed executable lines' search in the trace module.
Diffstat (limited to 'Lib/trace.py')
-rw-r--r--Lib/trace.py10
1 files changed, 2 insertions, 8 deletions
diff --git a/Lib/trace.py b/Lib/trace.py
index 969b396..bed983e 100644
--- a/Lib/trace.py
+++ b/Lib/trace.py
@@ -59,7 +59,7 @@ import token
import tokenize
import inspect
import gc
-
+import dis
import pickle
def usage(outfile):
@@ -376,13 +376,7 @@ def find_lines_from_code(code, strs):
"""Return dict where keys are lines in the line number table."""
linenos = {}
- line_increments = code.co_lnotab[1::2]
- table_length = len(line_increments)
- docstring = False
-
- lineno = code.co_firstlineno
- for li in line_increments:
- lineno += li
+ for _, lineno in dis.findlinestarts(code):
if lineno not in strs:
linenos[lineno] = 1