diff options
-rw-r--r-- | Tools/idle/StackViewer.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/Tools/idle/StackViewer.py b/Tools/idle/StackViewer.py index a59668a..dbfc4b0 100644 --- a/Tools/idle/StackViewer.py +++ b/Tools/idle/StackViewer.py @@ -21,6 +21,11 @@ class StackViewer: self.root = root self.top = top top.wm_title("Stack viewer") + # Create help label + self.helplabel = Label(top, + text="Click once to view variables; twice for source", + borderwidth=2, relief="groove") + self.helplabel.pack(fill="x") # Create top frame, with scrollbar and listbox self.topframe = Frame(top) self.topframe.pack(fill="both", expand=1) @@ -38,10 +43,14 @@ class StackViewer: self.listbox.bind("<ButtonPress-3>", self.popup_event) self.listbox.bind("<Key-Up>", self.up_event) self.listbox.bind("<Key-Down>", self.down_event) + # Create status label + self.statuslabel = Label(top, text="status") + self.statuslabel.pack(fill="x") # Load the stack linecache.checkcache() stack = getstack() self.load_stack(stack) + self.statuslabel.config(text=getexception()) def load_stack(self, stack): self.stack = stack @@ -232,6 +241,18 @@ def getstack(t=None, f=None): return stack +def getexception(type=None, value=None): + if type is None: + type = sys.last_type + value = sys.last_value + if hasattr(type, "__name__"): + type = type.__name__ + s = str(type) + if value is not None: + s = s + ": " + str(value) + return s + + class NamespaceViewer: def __init__(self, frame, title, dict): |