MCPcopy Create free account
hub / github.com/Vector35/binaryninja-api / get_ssa_var_uses

Method get_ssa_var_uses

python/mediumlevelil.py:5345–5361  ·  view source on GitHub ↗

Gets all the instructions that use the given SSA variable.

(self, ssa_var: Union[SSAVariable, MediumLevelILVarSsa])

Source from the content-addressed store, hash-verified

5343 return self[result]
5344
5345 def get_ssa_var_uses(self, ssa_var: Union[SSAVariable, MediumLevelILVarSsa]) -> List[MediumLevelILInstruction]:
5346 """
5347 Gets all the instructions that use the given SSA variable.
5348 """
5349 if isinstance(ssa_var, MediumLevelILVarSsa):
5350 ssa_var = ssa_var.var
5351 if not isinstance(ssa_var, SSAVariable):
5352 raise ValueError("Expected SSAVariable")
5353 count = ctypes.c_ulonglong()
5354 var_data = ssa_var.var.to_BNVariable()
5355 instrs = core.BNGetMediumLevelILSSAVarUses(self.handle, var_data, ssa_var.version, count)
5356 assert instrs is not None, "core.BNGetMediumLevelILSSAVarUses returned None"
5357 result = []
5358 for i in range(0, count.value):
5359 result.append(self[instrs[i]])
5360 core.BNFreeILInstructionList(instrs)
5361 return result
5362
5363 def get_ssa_memory_uses(self, version: int) -> List[MediumLevelILInstruction]:
5364 count = ctypes.c_ulonglong()

Callers 1

use_sitesMethod · 0.45

Calls 2

to_BNVariableMethod · 0.80
appendMethod · 0.45

Tested by

no test coverage detected