Architectures In Python (Debugging with ROCGDB)

Next: Registers In Python, Previous: Lazy Strings In Python, Up: Python API [Contents][Index]

#### 24.3.2.33 Python representation of architectures

ROCGDB uses architecture specific parameters and artifacts in a number of its various computations. An architecture is represented by an instance of the `gdb.Architecture` class.

A `gdb.Architecture` class has the following methods:

Function: Architecture.name ()

  Return the name (string value) of the architecture.

Function: Architecture.disassemble (start_pc [, end_pc [, count]])

  Return a list of disassembled instructions starting from the memory address start_pc. The optional arguments end_pc and count determine the number of instructions in the returned list. If both the optional arguments end_pc and count are specified, then a list of at most count disassembled instructions whose start address falls in the closed memory address interval from start_pc to end_pc are returned. If end_pc is not specified, but count is specified, then count number of instructions starting from the address start_pc are returned. If count is not specified but end_pc is specified, then all instructions whose start address falls in the closed memory address interval from start_pc to end_pc are returned. If neither end_pc nor count are specified, then a single instruction at start_pc is returned. For all of these cases, each element of the returned list is a Python `dict` with the following string keys:

  `addr`

    The value corresponding to this key is a Python long integer capturing the memory address of the instruction.

  `asm`

    The value corresponding to this key is a string value which represents the instruction with assembly language mnemonics. The assembly language flavor used is the same as that specified by the current CLI variable `disassembly-flavor`. See Machine Code.

  `length`

    The value corresponding to this key is the length (integer value) of the instruction in bytes.

Function: Architecture.registers ([ reggroup ])

  Return a `gdb.RegisterDescriptorIterator` (see Registers In Python) for all of the registers in reggroup, a string that is the name of a register group. If reggroup is omitted, or is the empty string, then the register group ‘`all`’ is assumed.

Function: Architecture.register_groups ()

  Return a `gdb.RegisterGroupsIterator` (see Registers In Python) for all of the register groups available for the `gdb.Architecture`.

Next: Registers In Python, Previous: Lazy Strings In Python, Up: Python API [Contents][Index]