summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2018-10-20 18:53:06 -0400
committerNed Batchelder <ned@nedbatchelder.com>2018-10-20 18:53:06 -0400
commitcdbcd43d4fded08587fc50513f0fbb8610cb8e5f (patch)
treee2831901c6772118cb3fbd1fa704873b2d86777f
parent6bea0ea1c75981d13e5e01c18bbab34b891757b3 (diff)
downloadpython-coveragepy-git-nedbat/nested-tracing.tar.gz
-rw-r--r--coverage/pytracer.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/coverage/pytracer.py b/coverage/pytracer.py
index d0549f72..8064379b 100644
--- a/coverage/pytracer.py
+++ b/coverage/pytracer.py
@@ -55,6 +55,8 @@ class PyTracer(object):
self.stopped = False
self._activity = False
+ self.chained_tracer = None
+
self.in_atexit = False
# On exit, self.in_atexit = True
atexit.register(setattr, self, 'in_atexit', True)
@@ -150,6 +152,10 @@ class PyTracer(object):
elif event == 'exception':
self.last_exc_back = frame.f_back
self.last_exc_firstlineno = frame.f_code.co_firstlineno
+
+ if self.chained_tracer:
+ self.chained_tracer = self.chained_tracer(frame, event, arg_unused)
+
return self._trace
def start(self):
@@ -170,12 +176,13 @@ class PyTracer(object):
#self.log("~", "starting on different threads")
return self._trace
+ self.chained_tracer = sys.gettrace()
sys.settrace(self._trace)
return self._trace
def stop(self):
"""Stop this Tracer."""
- # Get the activate tracer callback before setting the stop flag to be
+ # Get the active tracer callback before setting the stop flag to be
# able to detect if the tracer was changed prior to stopping it.
tf = sys.gettrace()