| #!/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 |