diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2016-01-18 18:54:41 -0500 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2016-01-18 18:54:41 -0500 |
commit | b0bf6360206d0789ebb4f8110ac5c7133bfdc22b (patch) | |
tree | 82ec37dba79f54b441d06f7f804b23cd834875a7 /coverage/debug.py | |
parent | e27ab798b8efb4067ed0bafd75627ae724dcfad5 (diff) | |
download | python-coveragepy-b0bf6360206d0789ebb4f8110ac5c7133bfdc22b.tar.gz |
Add some control over how many stack frames are shown
Diffstat (limited to 'coverage/debug.py')
-rw-r--r-- | coverage/debug.py | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/coverage/debug.py b/coverage/debug.py index 4076b9b..719e97b 100644 --- a/coverage/debug.py +++ b/coverage/debug.py @@ -42,7 +42,7 @@ class DebugControl(object): msg = "pid %5d: %s" % (os.getpid(), msg) self.output.write(msg+"\n") if self.should('callers'): - dump_stack_frames(self.output) + dump_stack_frames(out=self.output) self.output.flush() def write_formatted_info(self, header, info): @@ -80,7 +80,7 @@ def info_formatter(info): yield "%*s: %s" % (label_len, label, data) -def short_stack(): # pragma: debugging +def short_stack(limit=None): # pragma: debugging """Return a string summarizing the call stack. The string is multi-line, with one line per stack frame. Each line shows @@ -92,13 +92,15 @@ def short_stack(): # pragma: debugging import_local_file : /Users/ned/coverage/trunk/coverage/backward.py @159 ... + `limit` is the number of frames to include, defaulting to all of them. + """ - stack = inspect.stack()[:0:-1] + stack = inspect.stack()[limit:0:-1] return "\n".join("%30s : %s @%d" % (t[3], t[1], t[2]) for t in stack) -def dump_stack_frames(out=None): # pragma: debugging +def dump_stack_frames(limit=None, out=None): # pragma: debugging """Print a summary of the stack to stdout, or some place else.""" out = out or sys.stdout - out.write(short_stack()) + out.write(short_stack(limit=limit)) out.write("\n") |