diff options
author | Jim Ingham <jingham@apple.com> | 2017-10-05 00:49:49 +0000 |
---|---|---|
committer | Jim Ingham <jingham@apple.com> | 2017-10-05 00:49:49 +0000 |
commit | da5c4f682efe4d9227aa1817950b6ef332051265 (patch) | |
tree | d7a5170ef951a6c31ec40643e09d7efe18390fd9 /lldb/examples | |
parent | 071f7f5a5756be089ec213e0e16844ec7d2eb158 (diff) |
Another silly little thing you can do with Python commands.
Sometimes you want to step along and print a local each time as you go.
You can do that with stop hooks, but that's a little heavy-weight. This
is a sketch of a command that steps and then does "frame variable" on all
its arguments.
Diffstat (limited to 'lldb/examples')
-rw-r--r-- | lldb/examples/python/step_and_print.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/lldb/examples/python/step_and_print.py b/lldb/examples/python/step_and_print.py new file mode 100644 index 00000000000..41364ef97ba --- /dev/null +++ b/lldb/examples/python/step_and_print.py @@ -0,0 +1,24 @@ +""" Does a step-over then prints the local variables or only the ones passed in """ +import lldb + +class StepAndPrint: + def __init__(self, debugger, unused): + return + + def __call__(self, debugger, command, exe_ctx, result): + # Set the command to synchronous so the step will complete + # before we try to run the frame variable. + old_async = debugger.GetAsync() + debugger.SetAsync(False) + + debugger.HandleCommand("thread step-over") + print("---------- Values: -------------------\n") + debugger.HandleCommand("frame variable %s"%(command)) + + debugger.SetAsync(old_async) + + def get_short_help(self): + return "Does a step-over then runs frame variable passing the command args to it\n" + +def __lldb_init_module(debugger, unused): + debugger.HandleCommand("command script add -c step_and_print.StepAndPrint sap") |