angr.ailment.tagged_object¶
Python-side marker for the legacy isinstance(x, TaggedObject) checks.
We can get rid of this base class once IncompleteSwitchCaseHeadStatement is migrated to Rust.
- class angr.ailment.tagged_object.TagDict¶
Bases:
TypedDictSchema for the
.tagsmapping on AIL data classes.Only primitive-valued tags survive the Rust port.
reg_vvarswas promoted to a dedicated field onVirtualVariable. Variable information (variable,variable_offset,reference_*) now lives in a sideVariableMap(seeangr.analyses.decompiler.variable_map).- always_propagate: NotRequired[bool]
- block_idx: NotRequired[int]
- deref_src_addr: NotRequired[int]
- extra_def: NotRequired[bool]
- extra_defs: NotRequired[list[int]]
- ins_addr: NotRequired[int]
- is_prototype_guessed: NotRequired[bool]
- keep_in_slice: NotRequired[bool]
- orig_ins_addr: NotRequired[int]
- reg_name: NotRequired[str]
- uninitialized: NotRequired[bool]
- vex_block_addr: NotRequired[int]
- vex_stmt_idx: NotRequired[int]
- write_size: NotRequired[int]
- class angr.ailment.tagged_object.TaggedObject¶
Bases:
objectMarker class for backward-compatible
isinstance(x, TaggedObject)checks.The real hierarchy has no shared base anymore; this class only exists so legacy isinstance checks keep returning the same result.
Some legacy code does
__hash__ = ailment.statement.TaggedObject.__hash__to opt in to the cached-hash machinery. We expose a pure-Python__hash__here so that idiom keeps working.- idx: int
- tags: Any