import lldb import sys class WelcomeCommand(object): def __init__(self, debugger, session_dict): pass def get_short_help(self): return ( "Just a docstring for welcome_impl\nA command that says hello to LLDB users" ) def __call__(self, debugger, args, exe_ctx, result): print("Hello " + args + ", welcome to LLDB", file=result) return None class TargetnameCommand(object): def __init__(self, debugger, session_dict): pass def __call__(self, debugger, args, exe_ctx, result): target = debugger.GetSelectedTarget() file = target.GetExecutable() print("Current target " + file.GetFilename(), file=result) if args == "fail": result.SetError("a test for error in command") def get_flags(self): return lldb.eCommandRequiresTarget def print_wait_impl(debugger, args, result, dict): result.SetImmediateOutputFile(sys.stdout) print("Trying to do long task..", file=result) import time time.sleep(1) print("Still doing long task..", file=result) time.sleep(1) print("Done; if you saw the delays I am doing OK", file=result) def check_for_synchro(debugger, args, result, dict): if debugger.GetAsync(): print("I am running async", file=result) if not debugger.GetAsync(): print("I am running sync", file=result) def takes_exe_ctx(debugger, args, exe_ctx, result, dict): print(str(exe_ctx.GetTarget()), file=result)