553 |
553 |
554 self.mainThread.tracePython = 0 |
554 self.mainThread.tracePython = 0 |
555 |
555 |
556 self.debugMod.__dict__['__file__'] = sys.argv[0] |
556 self.debugMod.__dict__['__file__'] = sys.argv[0] |
557 sys.modules['__main__'] = self.debugMod |
557 sys.modules['__main__'] = self.debugMod |
558 execfile(sys.argv[0], self.debugMod.__dict__) |
558 res = 0 |
|
559 try: |
|
560 execfile(sys.argv[0], self.debugMod.__dict__) |
|
561 except SystemExit as exc: |
|
562 res = exc.code |
|
563 atexit._run_exitfuncs() |
559 self.writestream.flush() |
564 self.writestream.flush() |
|
565 self.progTerminated(res) |
560 return |
566 return |
561 |
567 |
562 if cmd == DebugProtocol.RequestCoverage: |
568 if cmd == DebugProtocol.RequestCoverage: |
563 from coverage import coverage |
569 from coverage import coverage |
564 sys.argv = [] |
570 sys.argv = [] |
583 |
589 |
584 if int(erase): |
590 if int(erase): |
585 self.cover.erase() |
591 self.cover.erase() |
586 sys.modules['__main__'] = self.debugMod |
592 sys.modules['__main__'] = self.debugMod |
587 self.debugMod.__dict__['__file__'] = sys.argv[0] |
593 self.debugMod.__dict__['__file__'] = sys.argv[0] |
|
594 self.running = sys.argv[0] |
|
595 res = 0 |
588 self.cover.start() |
596 self.cover.start() |
589 try: |
597 try: |
590 execfile(sys.argv[0], self.debugMod.__dict__) |
598 execfile(sys.argv[0], self.debugMod.__dict__) |
591 except SystemExit: |
599 except SystemExit as exc: |
|
600 res = exc.code |
592 atexit._run_exitfuncs() |
601 atexit._run_exitfuncs() |
593 self.cover.stop() |
602 self.cover.stop() |
594 self.cover.save() |
603 self.cover.save() |
595 self.writestream.flush() |
604 self.writestream.flush() |
596 return |
605 self.progTerminated(res) |
597 |
606 return |
|
607 |
598 if cmd == DebugProtocol.RequestProfile: |
608 if cmd == DebugProtocol.RequestProfile: |
599 sys.setprofile(None) |
609 sys.setprofile(None) |
600 import PyProfile |
610 import PyProfile |
601 sys.argv = [] |
611 sys.argv = [] |
602 wd, fn, args, erase = arg.split('|') |
612 wd, fn, args, erase = arg.split('|') |
618 |
628 |
619 if int(erase): |
629 if int(erase): |
620 self.prof.erase() |
630 self.prof.erase() |
621 self.debugMod.__dict__['__file__'] = sys.argv[0] |
631 self.debugMod.__dict__['__file__'] = sys.argv[0] |
622 sys.modules['__main__'] = self.debugMod |
632 sys.modules['__main__'] = self.debugMod |
623 self.prof.run('execfile(%r)' % sys.argv[0]) |
633 self.running = sys.argv[0] |
|
634 res = 0 |
|
635 try: |
|
636 self.prof.run('execfile(%r)' % sys.argv[0]) |
|
637 except SystemExit as exc: |
|
638 res = exc.code |
|
639 atexit._run_exitfuncs() |
624 self.prof.save() |
640 self.prof.save() |
625 self.writestream.flush() |
641 self.writestream.flush() |
|
642 self.progTerminated(res) |
626 return |
643 return |
627 |
644 |
628 if cmd == DebugProtocol.RequestShutdown: |
645 if cmd == DebugProtocol.RequestShutdown: |
629 self.sessionClose() |
646 self.sessionClose() |
630 return |
647 return |