angr.storage.memory_mixins.paged_memory.pages.multi_values

class angr.storage.memory_mixins.paged_memory.pages.multi_values.MultiValues

Bases: Generic

Represents a byte vector where each byte can have one or multiple values.

As an implementation optimization (so that we do not create excessive sets and dicts), self._single_value stores a claripy AST when this MultiValues object represents only one value at offset 0.

__init__(v=None, offset_to_values=None)
Parameters:
add_value(offset, value)
Return type:

None

Parameters:
  • offset (int)

  • value (MVType)

one_value(strip_annotations=False)
Return type:

Optional[TypeVar(MVType, bound= BV | FP)]

Parameters:

strip_annotations (bool)

merge(mv)
Return type:

MultiValues[TypeVar(MVType, bound= BV | FP)]

Parameters:

mv (MultiValues[MVType])

keys()
Return type:

set[int]

values()
Return type:

Iterator[set[TypeVar(MVType, bound= BV | FP)]]

items()
Return type:

Iterator[tuple[int, set[TypeVar(MVType, bound= BV | FP)]]]

count()
Return type:

int

extract(offset, length, endness)
Return type:

MultiValues[BV]

Parameters:
concat(other)
Return type:

MultiValues[BV]

Parameters:
angr.storage.memory_mixins.paged_memory.pages.multi_values.mv_is_bv(mv)
Return type:

TypeGuard[MultiValues[BV]]

Parameters:

mv (MultiValues[Any])

angr.storage.memory_mixins.paged_memory.pages.multi_values.mv_is_fp(mv)
Return type:

TypeGuard[MultiValues[FP]]

Parameters:

mv (MultiValues[Any])