diff options
author | 2020-08-03 14:33:06 +0000 | |
---|---|---|
committer | 2020-08-03 14:33:06 +0000 | |
commit | 061da546b983eb767bad15e67af1174fb0bcf31c (patch) | |
tree | 83c78b820819d70aa40c36d90447978b300078c5 /gnu/llvm/lldb/examples/python/in_call_stack.py | |
parent | Import LLVM 10.0.0 release including clang, lld and lldb. (diff) | |
download | wireguard-openbsd-061da546b983eb767bad15e67af1174fb0bcf31c.tar.xz wireguard-openbsd-061da546b983eb767bad15e67af1174fb0bcf31c.zip |
Import LLVM 10.0.0 release including clang, lld and lldb.
ok hackroom
tested by plenty
Diffstat (limited to 'gnu/llvm/lldb/examples/python/in_call_stack.py')
-rwxr-xr-x | gnu/llvm/lldb/examples/python/in_call_stack.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/gnu/llvm/lldb/examples/python/in_call_stack.py b/gnu/llvm/lldb/examples/python/in_call_stack.py new file mode 100755 index 00000000000..0647f2ca342 --- /dev/null +++ b/gnu/llvm/lldb/examples/python/in_call_stack.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python + + +def __lldb_init_module(debugger, internal_dict): + debugger.HandleCommand( + 'command alias in_call_stack breakpoint command add --python-function in_call_stack.in_call_stack -k name -v %1' + ) + + +def in_call_stack(frame, bp_loc, arg_dict, _): + """Only break if the given name is in the current call stack.""" + name = arg_dict.GetValueForKey('name').GetStringValue(1000) + thread = frame.GetThread() + found = False + for frame in thread.frames: + # Check the symbol. + symbol = frame.GetSymbol() + if symbol and name in frame.GetSymbol().GetName(): + return True + # Check the function. + function = frame.GetFunction() + if function and name in function.GetName(): + return True + return False |