[Python-checkins] cpython (2.7): Issue 15348: Stop debugger engine (normally in user process)

terry.reedy python-checkins at python.org
Sat Nov 21 00:05:56 EST 2015


https://hg.python.org/cpython/rev/427ad0ede016
changeset:   99253:427ad0ede016
branch:      2.7
parent:      99249:f51467273d3b
user:        Terry Jan Reedy <tjreedy at udel.edu>
date:        Sat Nov 21 00:04:58 2015 -0500
summary:
  Issue 15348: Stop debugger engine (normally in user process)
before closing debugger window in IDLE process.
This prevents one-per-line RuntimeErrors.

files:
  Lib/idlelib/Debugger.py |  7 +++++--
  1 files changed, 5 insertions(+), 2 deletions(-)


diff --git a/Lib/idlelib/Debugger.py b/Lib/idlelib/Debugger.py
--- a/Lib/idlelib/Debugger.py
+++ b/Lib/idlelib/Debugger.py
@@ -19,7 +19,7 @@
         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 @@
             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.

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list