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

Method ssa_reg_stacks

python/lowlevelil.py:3704–3726  ·  view source on GitHub ↗

List of all SSA register stacks and versions used in this IL

(self)

Source from the content-addressed store, hash-verified

3702
3703 @property
3704 def ssa_reg_stacks(self) -> List[SSARegisterStack]:
3705 """ List of all SSA register stacks and versions used in this IL """
3706 register_stack_count = ctypes.c_ulonglong()
3707 register_stacks = core.BNGetLowLevelSSARegisterStacksWithoutVersions(self.handle, register_stack_count)
3708 assert register_stacks is not None, "core.BNGetLowLevelRegisterStacks returned None"
3709 result = []
3710 try:
3711 for var_i in range(register_stack_count.value):
3712 version_count = ctypes.c_ulonglong()
3713 versions = core.BNGetLowLevelRegisterStackSSAVersions(
3714 self.handle, register_stacks[var_i], version_count
3715 )
3716 assert versions is not None, "core.BNGetLowLevelRegisterStackSSAVersions returned None"
3717 try:
3718 for version_i in range(version_count.value):
3719 result.append(
3720 SSARegisterStack(ILRegisterStack(self.arch, register_stacks[var_i]), versions[version_i])
3721 )
3722 finally:
3723 core.BNFreeLLILVariableVersionList(versions)
3724 finally:
3725 core.BNFreeLLILVariablesList(register_stacks)
3726 return result
3727
3728 @property
3729 def ssa_flags(self) -> List[SSAFlag]:

Callers

nothing calls this directly

Calls 3

ILRegisterStackClass · 0.85
SSARegisterStackClass · 0.70
appendMethod · 0.45

Tested by

no test coverage detected