Source code for angr.analyses.reaching_definitions.external_codeloc

from typing import Tuple

from ...code_location import CodeLocation


[docs]class ExternalCodeLocation(CodeLocation): """ Stands for a program point that originates from outside an analysis' scope. i.e. a value loaded from rdi in a callee where the caller has not been analyzed. """ __slots__ = ("call_string",)
[docs] def __init__(self, call_string: Tuple[int, ...] = None): super().__init__(0, None) self.call_string = call_string if call_string is not None else ()
def __repr__(self): return f"[External {[hex(x) if isinstance(x, int) else x for x in self.call_string]}]" def __hash__(self): """ returns the hash value of self. """ if self._hash is None: self._hash = hash((self.call_string,)) return self._hash