421 frame.f_trace = self.trace_dispatch |
421 frame.f_trace = self.trace_dispatch |
422 |
422 |
423 target(*args, **kwargs) |
423 target(*args, **kwargs) |
424 except SystemExit: |
424 except SystemExit: |
425 pass |
425 pass |
|
426 except Exception: |
|
427 excinfo = sys.exc_info() |
|
428 self.user_exception(excinfo, True) |
426 finally: |
429 finally: |
|
430 sys.settrace(None) |
427 sys.setprofile(None) |
431 sys.setprofile(None) |
428 |
432 |
429 def run(self, cmd, globals=None, locals=None): |
433 def run(self, cmd, globals=None, locals=None): |
430 """ |
434 """ |
431 Public method to start a given command under debugger control. |
435 Public method to start a given command under debugger control. |
455 except SystemExit: |
459 except SystemExit: |
456 atexit._run_exitfuncs() |
460 atexit._run_exitfuncs() |
457 excinfo = sys.exc_info() |
461 excinfo = sys.exc_info() |
458 exitcode, message = self.__extractSystemExitMessage(excinfo) |
462 exitcode, message = self.__extractSystemExitMessage(excinfo) |
459 self._dbgClient.progTerminated(exitcode, message) |
463 self._dbgClient.progTerminated(exitcode, message) |
|
464 except Exception: |
|
465 excinfo = sys.exc_info() |
|
466 self.user_exception(excinfo, True) |
460 finally: |
467 finally: |
461 self.quitting = True |
468 self.quitting = True |
462 sys.settrace(None) |
469 sys.settrace(None) |
463 |
470 |
464 def _set_stopinfo(self, stopframe, returnframe): |
471 def _set_stopinfo(self, stopframe, returnframe): |