Issue #9936: Fixed executable lines' search in the trace module.
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 tokenize
 import inspect
 import gc
-
+import dis
 import pickle
 
 def usage(outfile):
@@ -376,13 +376,7 @@
     """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