| 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) |