DebugClients/Python3/DebugClientBase.py

branch
5_3_x
changeset 2378
5fa59ceba7e1
parent 2372
8f553ad50adf
child 2486
e16c9ced6ae5
equal deleted inserted replaced
2374:f78ee0e8f96c 2378:5fa59ceba7e1
540 540
541 self.mainThread.tracePython = False 541 self.mainThread.tracePython = False
542 542
543 self.debugMod.__dict__['__file__'] = sys.argv[0] 543 self.debugMod.__dict__['__file__'] = sys.argv[0]
544 sys.modules['__main__'] = self.debugMod 544 sys.modules['__main__'] = self.debugMod
545 exec(open(sys.argv[0], encoding=self.__coding).read(), 545 res = 0
546 self.debugMod.__dict__) 546 try:
547 exec(open(sys.argv[0], encoding=self.__coding).read(),
548 self.debugMod.__dict__)
549 except SystemExit as exc:
550 res = exc.code
551 atexit._run_exitfuncs()
547 self.writestream.flush() 552 self.writestream.flush()
553 self.progTerminated(res)
548 return 554 return
549 555
550 if cmd == DebugProtocol.RequestProfile: 556 if cmd == DebugProtocol.RequestProfile:
551 sys.setprofile(None) 557 sys.setprofile(None)
552 import PyProfile 558 import PyProfile
576 try: 582 try:
577 script = fp.read() 583 script = fp.read()
578 finally: 584 finally:
579 fp.close() 585 fp.close()
580 if script: 586 if script:
581 self.prof.run("exec({0!r}\n)".format(script)) 587 if not script.endswith('\n'):
588 script += '\n'
589 self.running = sys.argv[0]
590 res = 0
591 try:
592 self.prof.run(script)
593 except SystemExit as exc:
594 res = exc.code
595 atexit._run_exitfuncs()
582 self.prof.save() 596 self.prof.save()
583 self.writestream.flush() 597 self.writestream.flush()
598 self.progTerminated(res)
584 return 599 return
585 600
586 if cmd == DebugProtocol.RequestCoverage: 601 if cmd == DebugProtocol.RequestCoverage:
587 from coverage import coverage 602 from coverage import coverage
588 sys.argv = [] 603 sys.argv = []
616 fp.close() 631 fp.close()
617 if script: 632 if script:
618 if not script.endswith('\n'): 633 if not script.endswith('\n'):
619 script += '\n' 634 script += '\n'
620 code = compile(script, sys.argv[0], 'exec') 635 code = compile(script, sys.argv[0], 'exec')
636 self.running = sys.argv[0]
637 res = 0
621 self.cover.start() 638 self.cover.start()
622 try: 639 try:
623 exec(code, self.debugMod.__dict__) 640 exec(code, self.debugMod.__dict__)
624 except SystemExit: 641 except SystemExit as exc:
642 res = exc.code
625 atexit._run_exitfuncs() 643 atexit._run_exitfuncs()
626 self.cover.stop() 644 self.cover.stop()
627 self.cover.save() 645 self.cover.save()
628 self.writestream.flush() 646 self.writestream.flush()
647 self.progTerminated(res)
629 return 648 return
630 649
631 if cmd == DebugProtocol.RequestShutdown: 650 if cmd == DebugProtocol.RequestShutdown:
632 self.sessionClose() 651 self.sessionClose()
633 return 652 return

eric ide

mercurial