Binder
addrc = C.green
module-attribute
code_to_name = {getattr(gdb, name): namefor name in codenames}
module-attribute
codenames = [x for x in dir(gdb) if 'TYPE_CODE_' in x]
module-attribute
entry_field_names = {'waiting_threads': 'waiting_thread_node', 'todo': 'entry', 'refs': 'node_entry'}
module-attribute
fieldnamec = C.blue
module-attribute
fieldvaluec = C.yellow
module-attribute
log = logging.getLogger(__name__)
module-attribute
name_to_code = {v: kfor (k, v) in code_to_name.items()}
module-attribute
node_types = {'waiting_threads': 'struct binder_thread', 'todo': 'struct binder_work', 'refs': 'struct binder_ref', 'threads': 'struct binder_thread', 'nodes': 'struct binder_node', 'refs_by_node': 'struct binder_ref'}
module-attribute
parser = argparse.ArgumentParser(description='Show Android Binder information')
module-attribute
rb_node_field_names = {'threads': 'rb_node', 'nodes': 'rb_node', 'refs_by_node': 'rb_node_node'}
module-attribute
typenamec = C.red
module-attribute
BinderVisitor
addr = pwndbg.gdblib.memory.get_typed_pointer_value(gdb.lookup_type('struct hlist_head'), procs_addr)
instance-attribute
indent = IndentContextManager()
instance-attribute
IndentContextManager
indent = 0
instance-attribute
__exit__(exc_type, exc_value, exc_tb)
for_each_hlist_entry(head, typename, field)
for_each_transaction(addr, field)