From: Terry Jan Reedy Date: Sat, 21 Nov 2015 05:04:58 +0000 (-0500) Subject: Issue 15348: Stop debugger engine (normally in user process) X-Git-Tag: v2.7.11rc1~5 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=76ced9972184645790fba038e2de4811d7d468ba;p=thirdparty%2FPython%2Fcpython.git Issue 15348: Stop debugger engine (normally in user process) before closing debugger window in IDLE process. This prevents one-per-line RuntimeErrors. --- diff --git a/Lib/idlelib/Debugger.py b/Lib/idlelib/Debugger.py index 3f9e1513fed7..7fbe4a7d199d 100644 --- a/Lib/idlelib/Debugger.py +++ b/Lib/idlelib/Debugger.py @@ -19,7 +19,7 @@ class Idb(bdb.Bdb): message = self.__frame2message(frame) try: self.gui.interaction(message, frame) - except (TclError, RuntimeError): + except TclError: # When closing debugger window with [x] in 3.x pass def user_exception(self, frame, info): @@ -105,10 +105,13 @@ class Debugger: self.interacting = 0 def close(self, event=None): + try: + self.quit() + except Exception: + pass if self.interacting: self.top.bell() return - self.abort_loop() if self.stackviewer: self.stackviewer.close(); self.stackviewer = None # Clean up pyshell if user clicked debugger control close widget.