diff -r 85dfb7886fb9 -r 6cb8be573090 DebugClients/Python3/DebugBase.py --- a/DebugClients/Python3/DebugBase.py Mon Aug 08 22:38:07 2016 +0200 +++ b/DebugClients/Python3/DebugBase.py Mon Aug 08 22:50:36 2016 +0200 @@ -362,23 +362,27 @@ Public method to start debugging from 'frame'. If frame is not specified, debugging starts from caller's frame. + Because of jump optimizations it's not possible to use sys.breakpoint() + as last instruction in a function or method. - @param frame frame to start debugging from + @keyparam frame frame to start debugging from @type frame object """ if frame is None: - frame = sys._getframe().f_back + frame = sys._getframe().f_back # Skip set_trace method - # stop at erics debugger frame - while frame: - if not self.__skipFrame(frame): + frame.f_trace = self.trace_dispatch + while frame is not None: + # stop at erics debugger frame + if frame.f_back.f_code == self._dbgClient.handleLine.__code__: frame.f_trace = self.trace_dispatch + self.botframe = frame + self._dbgClient.mainFrame = frame + break + frame = frame.f_back - self.botframe = frame - if self.__skipFrame(frame): - break - self.set_step() + self.stop_everywhere = True sys.settrace(self.trace_dispatch) sys.setprofile(self._dbgClient.callTraceEnabled)