426 self.user_exception(excinfo, True) |
426 self.user_exception(excinfo, True) |
427 finally: |
427 finally: |
428 sys.settrace(None) |
428 sys.settrace(None) |
429 sys.setprofile(None) |
429 sys.setprofile(None) |
430 |
430 |
431 def run(self, cmd, globals=None, locals=None): |
431 def run(self, cmd, globals=None, locals=None, debug=True): |
432 """ |
432 """ |
433 Public method to start a given command under debugger control. |
433 Public method to start a given command under debugger control. |
434 |
434 |
435 @param cmd command / code to execute under debugger control |
435 @param cmd command / code to execute under debugger control |
436 @type str or CodeType |
436 @type str or CodeType |
444 globals = __main__.__dict__ |
444 globals = __main__.__dict__ |
445 |
445 |
446 if locals is None: |
446 if locals is None: |
447 locals = globals |
447 locals = globals |
448 |
448 |
449 sys.settrace(self.trace_dispatch) |
|
450 if not isinstance(cmd, types.CodeType): |
449 if not isinstance(cmd, types.CodeType): |
451 cmd = compile(cmd, "<string>", "exec") |
450 cmd = compile(cmd, "<string>", "exec") |
|
451 |
|
452 if debug: |
|
453 sys.settrace(self.trace_dispatch) |
452 |
454 |
453 try: |
455 try: |
454 exec(cmd, globals, locals) |
456 exec(cmd, globals, locals) |
455 atexit._run_exitfuncs() |
457 atexit._run_exitfuncs() |
456 self._dbgClient.progTerminated(0) |
458 self._dbgClient.progTerminated(0) |