Disassembler module

Class configuring the used disassembler parser.

class ocgraph.internal.disassembler.interface.Disassembler

Bases: ABC

Disassembler Class.

abstract extract_information(lines: list[str]) Generator[Instruction | FunctionHeader]

Parse the given lines of disassembler output.

This extracts all available information from the disassembler output and returns a generator providing Instruction or a FunctionHeader.

name: str = ''

Disassembler tool identification like objdump, objdump-msp430, gdb, …

abstract parse_jump_target(ops: list[str]) int | None

Return the jump target value from a list of operands.

exception ocgraph.internal.disassembler.interface.DisassemblerError

Bases: Exception

Raised when the extract_information method was not successful.

Contains the functionality to create a specific Disassembler.

class ocgraph.internal.disassembler.factory.DisassemblerFactory

Bases: object

Factory class to instantiate a Disassembler.

static create(name: str) Disassembler

Create a Parser according to the given configuration.

static options() list[str]

Return all available disassemblers options.

Contains a parser for a common generic objdump disassembler.

class ocgraph.internal.disassembler.objdump.ObjdumpDisassembler

Bases: Disassembler

Objdump Disassembler Class.

__init__() None

Initialize objdump parser.

extract_information(lines: list[str]) Generator[Instruction | FunctionHeader]

Parse the given lines of disassembler output.

This extracts all available information from the disassembler output and returns a generator providing Instruction or a FunctionHeader.

name: str = 'objdump'

Disassembler tool identification like SparcV8Objdump, GDB, …

parse_jump_target(ops: list[str]) int | None

Return the jump target value from a list of operands.