When in unhandled exception, current frame lies in debugger files always. In breakpoints, debugger fine grinding

Sat, 25 Feb 2017 21:17:56 +0100

author
T.Rzepka <Tobias.Rzepka@gmail.com>
date
Sat, 25 Feb 2017 21:17:56 +0100
branch
debugger fine grinding
changeset 5561
5fffb5cc1a88
parent 5560
597164ed39b7
child 5567
f68d74cd8210

When in unhandled exception, current frame lies in debugger files always. In breakpoints,
you won't see the correct frame in this case.

DebugClients/Python/ThreadExtension.py file | annotate | diff | comparison | revisions
changelog file | annotate | diff | comparison | revisions
--- a/DebugClients/Python/ThreadExtension.py	Sat Feb 25 21:11:54 2017 +0100
+++ b/DebugClients/Python/ThreadExtension.py	Sat Feb 25 21:17:56 2017 +0100
@@ -232,7 +232,10 @@
             
             # adjust current frame
             if "__pypy__" not in sys.builtin_module_names:
-                self.threads[id].currentFrame = self.getExecutedFrame(frame)
+                # Don't update with None
+                currentFrame = self.getExecutedFrame(frame)
+                if currentFrame is not None:
+                    self.threads[id].currentFrame = currentFrame
         
         # Clean up obsolet because terminated threads
         self.threads = {id_: thrd for id_, thrd in self.threads.items()
--- a/changelog	Sat Feb 25 21:11:54 2017 +0100
+++ b/changelog	Sat Feb 25 21:17:56 2017 +0100
@@ -9,6 +9,7 @@
   -- catch unhandled exceptions again
   -- support for PySide2 added
   -- atexit handling works as specified in any condition
+  -- prevent ordinary breakpoints to steal the focus from an exception
 - Mercurial Interface
   -- improved the log browser in several ways
   -- improved the status dialog

eric ide

mercurial