Skip to content

Enriched Output

Enriched output is opt-in: set DecompileRequest.enriched to True to receive post-simplification pcode operations and varnode use-def graph data alongside the standard decompilation result.

Container

flatline.Enriched dataclass

Enriched(pcode: Pcode | None = None)

Optional companion payload for enriched decompiler output.

Pcode

flatline.Pcode dataclass

Pcode(pcode_ops: list[PcodeOpInfo], varnodes: list[VarnodeInfo])

Opt-in pcode payload extracted from the decompiler IR.

Attributes

pcode_ops instance-attribute

pcode_ops: list[PcodeOpInfo]

varnodes instance-attribute

varnodes: list[VarnodeInfo]

Functions

get_pcode_op

get_pcode_op(op_id: int) -> PcodeOpInfo

Return one pcode op by stable ID.

get_varnode

get_varnode(varnode_id: int) -> VarnodeInfo

Return one varnode by stable ID.

to_graph

to_graph() -> nx.MultiDiGraph

Return a traversable bipartite graph of pcode ops and varnodes.

Pcode Types

flatline.PcodeOpInfo dataclass

PcodeOpInfo(id: int, opcode: str, instruction_address: int, sequence_time: int, sequence_order: int, input_varnode_ids: list[int], output_varnode_id: int | None = None)

One post-simplification pcode operation.

flatline.VarnodeInfo dataclass

VarnodeInfo(id: int, space: str, offset: int, size: int, flags: VarnodeFlags, defining_op_id: int | None, use_op_ids: list[int])

One varnode in the enriched use-def graph.

flatline.VarnodeFlags dataclass

VarnodeFlags(is_constant: bool, is_input: bool, is_free: bool, is_implied: bool, is_explicit: bool, is_read_only: bool, is_persist: bool, is_addr_tied: bool)

Stable boolean flags exported for one varnode.