1#!/usr/bin/env python 2 3 4def __lldb_init_module(debugger, internal_dict): 5 debugger.HandleCommand( 6 f'command alias in_call_stack breakpoint command add --python-function {__name__}.in_call_stack -k name -v %1' 7 ) 8 9 10def in_call_stack(frame, bp_loc, arg_dict, _): 11 """Only break if the given name is in the current call stack.""" 12 name = arg_dict.GetValueForKey('name').GetStringValue(1000) 13 thread = frame.GetThread() 14 found = False 15 for frame in thread.frames: 16 # Check the symbol. 17 symbol = frame.GetSymbol() 18 if symbol and name in frame.GetSymbol().GetName(): 19 return True 20 # Check the function. 21 function = frame.GetFunction() 22 if function and name in function.GetName(): 23 return True 24 return False 25