angr.knowledge_plugins.key_definitions.rd_model

class angr.knowledge_plugins.key_definitions.rd_model.ReachingDefinitionsModel

Bases: object

Models the definitions, uses, and memory of a ReachingDefinitionState object

__init__(func_addr=None, track_liveness=True)
Parameters:
  • func_addr (int | None)

  • track_liveness (bool)

add_def(d)
Return type:

None

Parameters:

d (Definition)

kill_def(d)
Return type:

None

Parameters:

d (Definition)

at_new_stmt(codeloc)
Return type:

None

Parameters:

codeloc (CodeLocation)

at_new_block(code_loc, pred_codelocs)
Return type:

None

Parameters:
make_liveness_snapshot()
Return type:

None

find_defs_at(code_loc, op=ObservationPointType.OP_BEFORE)
Return type:

set[Definition]

Parameters:
get_defs(atom, code_loc, op)
Return type:

set[Definition]

Parameters:
copy()
Return type:

ReachingDefinitionsModel

merge(model)
Parameters:

model (ReachingDefinitionsModel)

get_observation_by_insn(ins_addr, kind)
Return type:

LiveDefinitions | None

Parameters:
get_observation_by_node(node_addr, kind, node_idx=None)
Return type:

LiveDefinitions | None

Parameters:
get_observation_by_stmt(arg1, arg2, arg3=None, *, block_idx=None)
Overloads:
  • self, codeloc (CodeLocation), kind (ObservationPointType) → LiveDefinitions | None

  • self, node_addr (int), stmt_idx (int), kind (ObservationPointType), block_idx (int | None)

get_observation_by_exit(node_addr, stmt_idx, src_node_idx=None)
Return type:

LiveDefinitions | None

Parameters:
  • node_addr (int)

  • stmt_idx (int)

  • src_node_idx (int | None)