diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2018-10-20 18:53:06 -0400 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2018-10-20 18:53:06 -0400 |
commit | cdbcd43d4fded08587fc50513f0fbb8610cb8e5f (patch) | |
tree | e2831901c6772118cb3fbd1fa704873b2d86777f /coverage/pytracer.py | |
parent | 6bea0ea1c75981d13e5e01c18bbab34b891757b3 (diff) | |
download | python-coveragepy-git-cdbcd43d4fded08587fc50513f0fbb8610cb8e5f.tar.gz |
Diffstat (limited to 'coverage/pytracer.py')
-rw-r--r-- | coverage/pytracer.py | 9 |
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() |