From e953ba794cf172237e1101fed24f326b66e9fa9a Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Fri, 18 Sep 2015 10:04:47 +0300 Subject: Issue #25108: Omitted internal frames in traceback functions print_stack(), format_stack(), and extract_stack() called without arguments. --- Lib/traceback.py | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'Lib/traceback.py') diff --git a/Lib/traceback.py b/Lib/traceback.py index 02edeb6217..112e9ba829 100644 --- a/Lib/traceback.py +++ b/Lib/traceback.py @@ -181,11 +181,15 @@ def print_stack(f=None, limit=None, file=None): stack frame at which to start. The optional 'limit' and 'file' arguments have the same meaning as for print_exception(). """ + if f is None: + f = sys._getframe().f_back print_list(extract_stack(f, limit=limit), file=file) def format_stack(f=None, limit=None): """Shorthand for 'format_list(extract_stack(f, limit))'.""" + if f is None: + f = sys._getframe().f_back return format_list(extract_stack(f, limit=limit)) @@ -198,6 +202,8 @@ def extract_stack(f=None, limit=None): line number, function name, text), and the entries are in order from oldest to newest stack frame. """ + if f is None: + f = sys._getframe().f_back stack = StackSummary.extract(walk_stack(f), limit=limit) stack.reverse() return stack -- cgit v1.2.1