]> granicus.if.org Git - python/commitdiff
Issue 15348: Stop debugger engine (normally in user process)
authorTerry Jan Reedy <tjreedy@udel.edu>
Sat, 21 Nov 2015 05:04:58 +0000 (00:04 -0500)
committerTerry Jan Reedy <tjreedy@udel.edu>
Sat, 21 Nov 2015 05:04:58 +0000 (00:04 -0500)
before closing debugger window in IDLE process.
This prevents one-per-line RuntimeErrors.

Lib/idlelib/Debugger.py

index 3f9e1513fed7856d2f128d348310fba3c77263e0..7fbe4a7d199d6704ef98aa26d4c425bc7ad68e63 100644 (file)
@@ -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.