in commands/FBDebugCommands.py [0:0]
def run(self, arguments, options):
# arguments contains the raw command first, followed by the split commands.
if len(arguments) == 1:
return
commands = filter(None, arguments[1:])
interpreter = lldb.debugger.GetCommandInterpreter()
# Complete one command before running the next one in the sequence. Disable
# async to do this. Also, save the current async value to restore it later.
asyncFlag = lldb.debugger.GetAsync()
lldb.debugger.SetAsync(False)
for command in commands[:-1]:
success = self.run_command(interpreter, command)
if not success:
lldb.debugger.SetAsync(asyncFlag)
return
# Restore original async value.
lldb.debugger.SetAsync(asyncFlag)
# If the last command is `continue`, call Continue() on the process
# instead. This is done because HandleCommand('continue') has strange
# behavior, while calling Continue() works as expected.
last = commands[-1]
if self.is_continue(interpreter, last):
self.context.process.Continue()
else:
self.run_command(interpreter, last)