738 @param frame the frame object |
738 @param frame the frame object |
739 @param retval the return value of the program |
739 @param retval the return value of the program |
740 """ |
740 """ |
741 # The program has finished if we have just left the first frame. |
741 # The program has finished if we have just left the first frame. |
742 if frame == self._dbgClient.mainFrame and \ |
742 if frame == self._dbgClient.mainFrame and \ |
743 self._mainThread: |
743 self._mainThread: |
744 atexit._run_exitfuncs() |
744 atexit._run_exitfuncs() |
745 self._dbgClient.progTerminated(retval) |
745 self._dbgClient.progTerminated(retval) |
746 elif frame is not self.stepFrame: |
746 elif frame is not self.stepFrame: |
747 self.stepFrame = None |
747 self.stepFrame = None |
748 self.user_line(frame) |
748 self.user_line(frame) |
781 return 1 |
781 return 1 |
782 |
782 |
783 #XXX - think of a better way to do this. It's only a convience for |
783 #XXX - think of a better way to do this. It's only a convience for |
784 #debugging the debugger - when the debugger code is in the current |
784 #debugging the debugger - when the debugger code is in the current |
785 #directory. |
785 #directory. |
786 if os.path.basename(fn) in [\ |
786 if os.path.basename(fn) in [ |
787 'AsyncFile.py', 'AsyncIO.py', |
787 'AsyncFile.py', 'AsyncIO.py', |
788 'DebugConfig.py', 'DCTestResult.py', |
788 'DebugConfig.py', 'DCTestResult.py', |
789 'DebugBase.py', 'DebugClientBase.py', |
789 'DebugBase.py', 'DebugClientBase.py', |
790 'DebugClientCapabilities.py', 'DebugClient.py', |
790 'DebugClientCapabilities.py', 'DebugClient.py', |
791 'DebugClientThreads.py', 'DebugProtocol.py', |
791 'DebugClientThreads.py', 'DebugProtocol.py', |