DebugClients/Python/DebugClientBase.py

changeset 2376
a0409e65bd81
parent 2371
72e2f353f34b
child 2486
e16c9ced6ae5
--- a/DebugClients/Python/DebugClientBase.py	Sat Jan 26 14:53:59 2013 +0100
+++ b/DebugClients/Python/DebugClientBase.py	Sun Jan 27 16:34:50 2013 +0100
@@ -555,8 +555,14 @@
                 
                 self.debugMod.__dict__['__file__'] = sys.argv[0]
                 sys.modules['__main__'] = self.debugMod
-                execfile(sys.argv[0], self.debugMod.__dict__)
+                res = 0
+                try:
+                    execfile(sys.argv[0], self.debugMod.__dict__)
+                except SystemExit as exc:
+                    res = exc.code
+                    atexit._run_exitfuncs()
                 self.writestream.flush()
+                self.progTerminated(res)
                 return
 
             if cmd == DebugProtocol.RequestCoverage:
@@ -585,16 +591,20 @@
                     self.cover.erase()
                 sys.modules['__main__'] = self.debugMod
                 self.debugMod.__dict__['__file__'] = sys.argv[0]
+                self.running = sys.argv[0]
+                res = 0
                 self.cover.start()
                 try:
                     execfile(sys.argv[0], self.debugMod.__dict__)
-                except SystemExit:
+                except SystemExit as exc:
+                    res = exc.code
                     atexit._run_exitfuncs()
                 self.cover.stop()
                 self.cover.save()
                 self.writestream.flush()
+                self.progTerminated(res)
                 return
-
+            
             if cmd == DebugProtocol.RequestProfile:
                 sys.setprofile(None)
                 import PyProfile
@@ -620,9 +630,16 @@
                     self.prof.erase()
                 self.debugMod.__dict__['__file__'] = sys.argv[0]
                 sys.modules['__main__'] = self.debugMod
-                self.prof.run('execfile(%r)' % sys.argv[0])
+                self.running = sys.argv[0]
+                res = 0
+                try:
+                    self.prof.run('execfile(%r)' % sys.argv[0])
+                except SystemExit as exc:
+                    res = exc.code
+                    atexit._run_exitfuncs()
                 self.prof.save()
                 self.writestream.flush()
+                self.progTerminated(res)
                 return
 
             if cmd == DebugProtocol.RequestShutdown:

eric ide

mercurial