eric6/DebugClients/Python/DebugBase.py

changeset 7903
827d89937c30
parent 7900
72b88fb20261
child 7904
0424ebe2d3b1
equal deleted inserted replaced
7902:a5248d27c8a9 7903:827d89937c30
447 self.user_exception(excinfo, True) 447 self.user_exception(excinfo, True)
448 finally: 448 finally:
449 sys.settrace(None) 449 sys.settrace(None)
450 sys.setprofile(None) 450 sys.setprofile(None)
451 451
452 def run(self, cmd, globalsDict=None, localsDict=None, debug=True): 452 def run(self, cmd, globalsDict=None, localsDict=None, debug=True,
453 closeSession=True):
453 """ 454 """
454 Public method to start a given command under debugger control. 455 Public method to start a given command under debugger control.
455 456
456 @param cmd command / code to execute under debugger control 457 @param cmd command / code to execute under debugger control
457 @type str or CodeType 458 @type str or CodeType
461 @type dict 462 @type dict
462 @param debug flag if command should run under debugger control 463 @param debug flag if command should run under debugger control
463 @type bool 464 @type bool
464 @return exit code of the program 465 @return exit code of the program
465 @rtype int 466 @rtype int
467 @param closeSession flag indicating to close the debugger session
468 at exit
469 @type bool
466 """ 470 """
467 if globalsDict is None: 471 if globalsDict is None:
468 import __main__ 472 import __main__
469 globalsDict = __main__.__dict__ 473 globalsDict = __main__.__dict__
470 474
482 sys.settrace(self.trace_dispatch) 486 sys.settrace(self.trace_dispatch)
483 487
484 try: 488 try:
485 exec(cmd, globalsDict, localsDict) # secok 489 exec(cmd, globalsDict, localsDict) # secok
486 atexit._run_exitfuncs() 490 atexit._run_exitfuncs()
487 self._dbgClient.progTerminated(0) 491 self._dbgClient.progTerminated(0, closeSession=closeSession)
488 exitcode = 0 492 exitcode = 0
489 except SystemExit: 493 except SystemExit:
490 atexit._run_exitfuncs() 494 atexit._run_exitfuncs()
491 excinfo = sys.exc_info() 495 excinfo = sys.exc_info()
492 exitcode, message = self.__extractSystemExitMessage(excinfo) 496 exitcode, message = self.__extractSystemExitMessage(excinfo)
493 self._dbgClient.progTerminated(exitcode, message) 497 self._dbgClient.progTerminated(exitcode, message=message,
498 closeSession=closeSession)
494 except Exception: 499 except Exception:
495 excinfo = sys.exc_info() 500 excinfo = sys.exc_info()
496 self.user_exception(excinfo, True) 501 self.user_exception(excinfo, True)
497 exitcode = 242 502 exitcode = 242
498 finally: 503 finally:

eric ide

mercurial