diff options
Diffstat (limited to 'examples/python/shadow.py')
| -rw-r--r-- | examples/python/shadow.py | 58 | 
1 files changed, 0 insertions, 58 deletions
diff --git a/examples/python/shadow.py b/examples/python/shadow.py deleted file mode 100644 index 0556cfc553ce..000000000000 --- a/examples/python/shadow.py +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/python - -import lldb -import shlex - - -@lldb.command("shadow") -def check_shadow_command(debugger, command, exe_ctx, result, dict): -    '''Check the currently selected stack frame for shadowed variables''' -    process = exe_ctx.GetProcess() -    state = process.GetState() -    if state != lldb.eStateStopped: -        print >>result, "process must be stopped, state is %s" % lldb.SBDebugger.StateAsCString( -            state) -        return -    frame = exe_ctx.GetFrame() -    if not frame: -        print >>result, "invalid frame" -        return -    # Parse command line args -    command_args = shlex.split(command) -    # TODO: add support for using arguments that are passed to this command... - -    # Make a dictionary of variable name to "SBBlock and SBValue" -    shadow_dict = {} - -    num_shadowed_variables = 0 -    # Get the deepest most block from the current frame -    block = frame.GetBlock() -    # Iterate through the block and all of its parents -    while block.IsValid(): -        # Get block variables from the current block only -        block_vars = block.GetVariables(frame, True, True, True, 0) -        # Iterate through all variables in the current block -        for block_var in block_vars: -            # Since we can have multiple shadowed variables, we our variable -            # name dictionary to have an array or "block + variable" pairs so -            # We can correctly print out all shadowed variables and whow which -            # blocks they come from -            block_var_name = block_var.GetName() -            if block_var_name in shadow_dict: -                shadow_dict[block_var_name].append(block_var) -            else: -                shadow_dict[block_var_name] = [block_var] -        # Get the parent block and continue -        block = block.GetParent() - -    num_shadowed_variables = 0 -    if shadow_dict: -        for name in shadow_dict.keys(): -            shadow_vars = shadow_dict[name] -            if len(shadow_vars) > 1: -                print '"%s" is shadowed by the following declarations:' % (name) -                num_shadowed_variables += 1 -                for shadow_var in shadow_vars: -                    print >>result, str(shadow_var.GetDeclaration()) -    if num_shadowed_variables == 0: -        print >>result, 'no variables are shadowed'  | 
