GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Typedefs | Functions | Variables
py-registers.c File Reference
#include "defs.h"
#include "gdbarch.h"
#include "arch-utils.h"
#include "reggroups.h"
#include "python-internal.h"
#include "user-regs.h"
#include <unordered_map>

Go to the source code of this file.

Classes

struct  register_descriptor_iterator_object
 
struct  register_descriptor_object
 
struct  reggroup_iterator_object
 
struct  reggroup_object
 

Typedefs

typedef std::vector< gdbpy_ref<> > gdbpy_register_type
 

Functions

PyTypeObject register_descriptor_iterator_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("register_descriptor_iterator_object")
 
PyTypeObject register_descriptor_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("register_descriptor_object")
 
PyTypeObject reggroup_iterator_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("reggroup_iterator_object")
 
PyTypeObject reggroup_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("reggroup_object")
 
static gdbpy_ref gdbpy_get_reggroup (const reggroup *reggroup)
 
static PyObjectgdbpy_reggroup_to_string (PyObject *self)
 
static PyObjectgdbpy_reggroup_name (PyObject *self, void *closure)
 
static gdbpy_ref gdbpy_get_register_descriptor (struct gdbarch *gdbarch, int regnum)
 
static PyObjectgdbpy_register_descriptor_to_string (PyObject *self)
 
static PyObjectgdbpy_register_descriptor_name (PyObject *self, void *closure)
 
static PyObjectgdbpy_reggroup_iter (PyObject *self)
 
static PyObjectgdbpy_reggroup_iter_next (PyObject *self)
 
PyObjectgdbpy_new_reggroup_iterator (struct gdbarch *gdbarch)
 
PyObjectgdbpy_new_register_descriptor_iterator (struct gdbarch *gdbarch, const char *group_name)
 
static PyObjectgdbpy_register_descriptor_iter (PyObject *self)
 
static PyObjectgdbpy_register_descriptor_iter_next (PyObject *self)
 
static PyObjectregister_descriptor_iter_find (PyObject *self, PyObject *args, PyObject *kw)
 
bool gdbpy_parse_register_id (struct gdbarch *gdbarch, PyObject *pyo_reg_id, int *reg_num)
 
static int CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION gdbpy_initialize_registers ()
 
 GDBPY_INITIALIZE_FILE (gdbpy_initialize_registers)
 

Variables

static const registry< gdbarch >::key< gdbpy_register_typegdbpy_register_object_data
 
static PyMethodDef register_descriptor_iterator_object_methods []
 
PyTypeObject register_descriptor_iterator_object_type
 
static gdb_PyGetSetDef gdbpy_register_descriptor_getset []
 
PyTypeObject register_descriptor_object_type
 
PyTypeObject reggroup_iterator_object_type
 
static gdb_PyGetSetDef gdbpy_reggroup_getset []
 
PyTypeObject reggroup_object_type
 

Typedef Documentation

◆ gdbpy_register_type

typedef std::vector<gdbpy_ref<> > gdbpy_register_type

Definition at line 29 of file py-registers.c.

Function Documentation

◆ CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF() [1/4]

PyTypeObject reggroup_iterator_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ( "reggroup_iterator_object" )
extern

◆ CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF() [2/4]

PyTypeObject reggroup_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ( "reggroup_object" )
extern

◆ CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF() [3/4]

PyTypeObject register_descriptor_iterator_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ( "register_descriptor_iterator_object" )
extern

◆ CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF() [4/4]

PyTypeObject register_descriptor_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ( "register_descriptor_object" )
extern

◆ gdbpy_get_reggroup()

static gdbpy_ref gdbpy_get_reggroup ( const reggroup * reggroup)
static

Definition at line 97 of file py-registers.c.

References reggroup::reggroup(), and reggroup_object_type.

Referenced by gdbpy_reggroup_iter_next().

◆ gdbpy_get_register_descriptor()

static gdbpy_ref gdbpy_get_register_descriptor ( struct gdbarch * gdbarch,
int regnum )
static

◆ GDBPY_INITIALIZE_FILE()

GDBPY_INITIALIZE_FILE ( gdbpy_initialize_registers )

◆ gdbpy_initialize_registers()

static int CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION gdbpy_initialize_registers ( )
static

◆ gdbpy_new_reggroup_iterator()

PyObject * gdbpy_new_reggroup_iterator ( struct gdbarch * gdbarch)

◆ gdbpy_new_register_descriptor_iterator()

PyObject * gdbpy_new_register_descriptor_iterator ( struct gdbarch * gdbarch,
const char * group_name )

◆ gdbpy_parse_register_id()

bool gdbpy_parse_register_id ( struct gdbarch * gdbarch,
PyObject * pyo_reg_id,
int * reg_num )

◆ gdbpy_reggroup_iter()

static PyObject * gdbpy_reggroup_iter ( PyObject * self)
static

Definition at line 208 of file py-registers.c.

◆ gdbpy_reggroup_iter_next()

static PyObject * gdbpy_reggroup_iter_next ( PyObject * self)
static

◆ gdbpy_reggroup_name()

static PyObject * gdbpy_reggroup_name ( PyObject * self,
void * closure )
static

Definition at line 140 of file py-registers.c.

References gdbpy_reggroup_to_string().

◆ gdbpy_reggroup_to_string()

static PyObject * gdbpy_reggroup_to_string ( PyObject * self)
static

Definition at line 128 of file py-registers.c.

References reggroup::name(), and reggroup_object::reggroup.

Referenced by gdbpy_reggroup_name().

◆ gdbpy_register_descriptor_iter()

static PyObject * gdbpy_register_descriptor_iter ( PyObject * self)
static

Definition at line 299 of file py-registers.c.

◆ gdbpy_register_descriptor_iter_next()

static PyObject * gdbpy_register_descriptor_iter_next ( PyObject * self)
static

◆ gdbpy_register_descriptor_name()

static PyObject * gdbpy_register_descriptor_name ( PyObject * self,
void * closure )
static

Definition at line 200 of file py-registers.c.

References gdbpy_register_descriptor_to_string().

◆ gdbpy_register_descriptor_to_string()

static PyObject * gdbpy_register_descriptor_to_string ( PyObject * self)
static

◆ register_descriptor_iter_find()

static PyObject * register_descriptor_iter_find ( PyObject * self,
PyObject * args,
PyObject * kw )
static

Variable Documentation

◆ gdbpy_reggroup_getset

gdb_PyGetSetDef gdbpy_reggroup_getset[]
static
Initial value:
= {
{ "name", gdbpy_reggroup_name, NULL,
"The name of this register group.", NULL },
{ NULL }
}
static PyObject * gdbpy_reggroup_name(PyObject *self, void *closure)

Definition at line 579 of file py-registers.c.

◆ gdbpy_register_descriptor_getset

gdb_PyGetSetDef gdbpy_register_descriptor_getset[]
static
Initial value:
= {
"The name of this register.", NULL },
{ NULL }
}
static PyObject * gdbpy_register_descriptor_name(PyObject *self, void *closure)

Definition at line 509 of file py-registers.c.

◆ gdbpy_register_object_data

const registry<gdbarch>::key<gdbpy_register_type> gdbpy_register_object_data
static

Definition at line 33 of file py-registers.c.

Referenced by gdbpy_get_register_descriptor().

◆ reggroup_iterator_object_type

PyTypeObject reggroup_iterator_object_type
Initial value:
= {
PyVarObject_HEAD_INIT (NULL, 0)
"gdb.RegisterGroupsIterator",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
Py_TPFLAGS_DEFAULT,
"GDB register groups iterator object",
0,
0,
0,
0,
0
}
static PyObject * gdbpy_reggroup_iter_next(PyObject *self)
static PyObject * gdbpy_reggroup_iter(PyObject *self)

Definition at line 548 of file py-registers.c.

Referenced by gdbpy_initialize_registers(), and gdbpy_new_reggroup_iterator().

◆ reggroup_object_type

PyTypeObject reggroup_object_type

Definition at line 585 of file py-registers.c.

Referenced by gdbpy_get_reggroup(), and gdbpy_initialize_registers().

◆ register_descriptor_iterator_object_methods

PyMethodDef register_descriptor_iterator_object_methods[]
static
Initial value:
= {
{ "find", (PyCFunction) register_descriptor_iter_find,
METH_VARARGS | METH_KEYWORDS,
"registers (name) -> gdb.RegisterDescriptor.\n\
Return a register descriptor for the register NAME, or None if no register\n\
with that name exists in this iterator." },
{NULL}
}
static PyObject * register_descriptor_iter_find(PyObject *self, PyObject *args, PyObject *kw)

Definition at line 469 of file py-registers.c.

◆ register_descriptor_iterator_object_type

PyTypeObject register_descriptor_iterator_object_type
Initial value:
= {
PyVarObject_HEAD_INIT (NULL, 0)
"gdb.RegisterDescriptorIterator",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
Py_TPFLAGS_DEFAULT,
"GDB architecture register descriptor iterator object",
0,
0,
0,
0,
}
static PyMethodDef register_descriptor_iterator_object_methods[]
static PyObject * gdbpy_register_descriptor_iter(PyObject *self)
static PyObject * gdbpy_register_descriptor_iter_next(PyObject *self)

Definition at line 478 of file py-registers.c.

Referenced by gdbpy_initialize_registers(), and gdbpy_new_register_descriptor_iterator().

◆ register_descriptor_object_type

PyTypeObject register_descriptor_object_type