GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Macros | Functions | Variables
py-progspace.c File Reference
#include "defs.h"
#include "python-internal.h"
#include "charset.h"
#include "progspace.h"
#include "objfiles.h"
#include "language.h"
#include "arch-utils.h"
#include "solib.h"
#include "block.h"

Go to the source code of this file.

Classes

struct  pspace_object
 
struct  pspace_deleter
 

Macros

#define PSPY_REQUIRE_VALID(pspace_obj)
 

Functions

PyTypeObject pspace_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("pspace_object")
 
static PyObject * pspy_get_filename (PyObject *self, void *closure)
 
static void pspy_dealloc (PyObject *self)
 
static int pspy_initialize (pspace_object *self)
 
static PyObject * pspy_new (PyTypeObject *type, PyObject *args, PyObject *keywords)
 
PyObject * pspy_get_printers (PyObject *o, void *ignore)
 
static int pspy_set_printers (PyObject *o, PyObject *value, void *ignore)
 
PyObject * pspy_get_frame_filters (PyObject *o, void *ignore)
 
static int pspy_set_frame_filters (PyObject *o, PyObject *frame, void *ignore)
 
PyObject * pspy_get_frame_unwinders (PyObject *o, void *ignore)
 
static int pspy_set_frame_unwinders (PyObject *o, PyObject *unwinders, void *ignore)
 
static PyObject * pspy_get_type_printers (PyObject *o, void *ignore)
 
PyObject * pspy_get_xmethods (PyObject *o, void *ignore)
 
static int pspy_set_type_printers (PyObject *o, PyObject *value, void *ignore)
 
static PyObject * pspy_get_objfiles (PyObject *self_, PyObject *args)
 
static PyObject * pspy_solib_name (PyObject *o, PyObject *args)
 
static PyObject * pspy_block_for_pc (PyObject *o, PyObject *args)
 
static PyObject * pspy_find_pc_line (PyObject *o, PyObject *args)
 
static PyObject * pspy_is_valid (PyObject *o, PyObject *args)
 
gdbpy_ref pspace_to_pspace_object (struct program_space *pspace)
 
struct program_spaceprogspace_object_to_program_space (PyObject *obj)
 
bool gdbpy_is_progspace (PyObject *obj)
 
int gdbpy_initialize_pspace (void)
 

Variables

static const registry< program_space >::key< pspace_object, pspace_deleterpspy_pspace_data_key
 
static gdb_PyGetSetDef pspace_getset []
 
static PyMethodDef progspace_object_methods []
 
PyTypeObject pspace_object_type
 

Macro Definition Documentation

◆ PSPY_REQUIRE_VALID

#define PSPY_REQUIRE_VALID (   pspace_obj)
Value:
do { \
if (pspace_obj->pspace == nullptr) \
{ \
PyErr_SetString (PyExc_RuntimeError, \
_("Program space no longer exists.")); \
return NULL; \
} \
} while (0)

Definition at line 86 of file py-progspace.c.

Function Documentation

◆ CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF()

PyTypeObject pspace_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ( "pspace_object"  )

◆ gdbpy_initialize_pspace()

int gdbpy_initialize_pspace ( void  )

Definition at line 533 of file py-progspace.c.

References gdb_module, gdb_pymodule_addobject(), and pspace_object_type.

Referenced by do_start_initialization().

◆ gdbpy_is_progspace()

bool gdbpy_is_progspace ( PyObject *  obj)

Definition at line 527 of file py-progspace.c.

References pspace_object_type.

Referenced by gdbpy_format_address(), and progspace_object_to_program_space().

◆ progspace_object_to_program_space()

struct program_space * progspace_object_to_program_space ( PyObject *  obj)

Definition at line 518 of file py-progspace.c.

References gdbpy_is_progspace().

Referenced by gdbpy_format_address().

◆ pspace_to_pspace_object()

gdbpy_ref pspace_to_pspace_object ( struct program_space pspace)

◆ pspy_block_for_pc()

static PyObject * pspy_block_for_pc ( PyObject *  o,
PyObject *  args 
)
static

◆ pspy_dealloc()

static void pspy_dealloc ( PyObject *  self)
static

◆ pspy_find_pc_line()

static PyObject * pspy_find_pc_line ( PyObject *  o,
PyObject *  args 
)
static

◆ pspy_get_filename()

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

◆ pspy_get_frame_filters()

PyObject * pspy_get_frame_filters ( PyObject *  o,
void *  ignore 
)

Definition at line 216 of file py-progspace.c.

References pspace_object::frame_filters.

◆ pspy_get_frame_unwinders()

PyObject * pspy_get_frame_unwinders ( PyObject *  o,
void *  ignore 
)

Definition at line 255 of file py-progspace.c.

References pspace_object::frame_unwinders.

◆ pspy_get_objfiles()

static PyObject * pspy_get_objfiles ( PyObject *  self_,
PyObject *  args 
)
static

◆ pspy_get_printers()

PyObject * pspy_get_printers ( PyObject *  o,
void *  ignore 
)

Definition at line 178 of file py-progspace.c.

References pspace_object::printers.

Referenced by find_pretty_printer_from_progspace().

◆ pspy_get_type_printers()

static PyObject * pspy_get_type_printers ( PyObject *  o,
void *  ignore 
)
static

Definition at line 295 of file py-progspace.c.

References pspace_object::type_printers.

◆ pspy_get_xmethods()

PyObject * pspy_get_xmethods ( PyObject *  o,
void *  ignore 
)

Definition at line 306 of file py-progspace.c.

References pspace_object::xmethods.

Referenced by gdbpy_get_matching_xmethod_workers().

◆ pspy_initialize()

static int pspy_initialize ( pspace_object self)
static

◆ pspy_is_valid()

static PyObject * pspy_is_valid ( PyObject *  o,
PyObject *  args 
)
static

Definition at line 477 of file py-progspace.c.

References pspace_object::pspace.

◆ pspy_new()

static PyObject * pspy_new ( PyTypeObject *  type,
PyObject *  args,
PyObject *  keywords 
)
static

Definition at line 164 of file py-progspace.c.

References pspy_initialize().

◆ pspy_set_frame_filters()

static int pspy_set_frame_filters ( PyObject *  o,
PyObject *  frame,
void *  ignore 
)
static

Definition at line 226 of file py-progspace.c.

References pspace_object::frame_filters.

◆ pspy_set_frame_unwinders()

static int pspy_set_frame_unwinders ( PyObject *  o,
PyObject *  unwinders,
void *  ignore 
)
static

Definition at line 266 of file py-progspace.c.

References pspace_object::frame_unwinders.

◆ pspy_set_printers()

static int pspy_set_printers ( PyObject *  o,
PyObject *  value,
void *  ignore 
)
static

Definition at line 187 of file py-progspace.c.

References pspace_object::printers.

◆ pspy_set_type_printers()

static int pspy_set_type_printers ( PyObject *  o,
PyObject *  value,
void *  ignore 
)
static

Definition at line 317 of file py-progspace.c.

References pspace_object::type_printers.

◆ pspy_solib_name()

static PyObject * pspy_solib_name ( PyObject *  o,
PyObject *  args 
)
static

Variable Documentation

◆ progspace_object_methods

PyMethodDef progspace_object_methods[]
static
Initial value:
=
{
{ "objfiles", pspy_get_objfiles, METH_NOARGS,
"Return a sequence of objfiles associated to this program space." },
{ "solib_name", pspy_solib_name, METH_VARARGS,
"solib_name (Long) -> String.\n\
Return the name of the shared library holding a given address, or None." },
{ "block_for_pc", pspy_block_for_pc, METH_VARARGS,
"Return the block containing the given pc value, or None." },
{ "find_pc_line", pspy_find_pc_line, METH_VARARGS,
"find_pc_line (pc) -> Symtab_and_line.\n\
Return the gdb.Symtab_and_line object corresponding to the pc value." },
{ "is_valid", pspy_is_valid, METH_NOARGS,
"is_valid () -> Boolean.\n\
Return true if this program space is valid, false if not." },
{ NULL }
}
static PyObject * pspy_is_valid(PyObject *o, PyObject *args)
Definition: py-progspace.c:477
static PyObject * pspy_get_objfiles(PyObject *self_, PyObject *args)
Definition: py-progspace.c:346
static PyObject * pspy_find_pc_line(PyObject *o, PyObject *args)
Definition: py-progspace.c:441
static PyObject * pspy_solib_name(PyObject *o, PyObject *args)
Definition: py-progspace.c:375
static PyObject * pspy_block_for_pc(PyObject *o, PyObject *args)
Definition: py-progspace.c:398

Definition at line 563 of file py-progspace.c.

◆ pspace_getset

gdb_PyGetSetDef pspace_getset[]
static
Initial value:
=
{
{ "__dict__", gdb_py_generic_dict, NULL,
"The __dict__ for this progspace.", &pspace_object_type },
{ "filename", pspy_get_filename, NULL,
"The progspace's main filename, or None.", NULL },
{ "pretty_printers", pspy_get_printers, pspy_set_printers,
"Pretty printers.", NULL },
"Frame filters.", NULL },
"Frame unwinders.", NULL },
"Type printers.", NULL },
{ "xmethods", pspy_get_xmethods, NULL,
"Debug methods.", NULL },
{ NULL }
}
PyTypeObject pspace_object_type
Definition: py-progspace.c:581
static int pspy_set_frame_filters(PyObject *o, PyObject *frame, void *ignore)
Definition: py-progspace.c:226
static PyObject * pspy_get_filename(PyObject *self, void *closure)
Definition: py-progspace.c:99
static int pspy_set_type_printers(PyObject *o, PyObject *value, void *ignore)
Definition: py-progspace.c:317
PyObject * pspy_get_xmethods(PyObject *o, void *ignore)
Definition: py-progspace.c:306
static int pspy_set_frame_unwinders(PyObject *o, PyObject *unwinders, void *ignore)
Definition: py-progspace.c:266
static PyObject * pspy_get_type_printers(PyObject *o, void *ignore)
Definition: py-progspace.c:295
static int pspy_set_printers(PyObject *o, PyObject *value, void *ignore)
Definition: py-progspace.c:187
PyObject * pspy_get_printers(PyObject *o, void *ignore)
Definition: py-progspace.c:178
PyObject * pspy_get_frame_filters(PyObject *o, void *ignore)
Definition: py-progspace.c:216
PyObject * pspy_get_frame_unwinders(PyObject *o, void *ignore)
Definition: py-progspace.c:255
PyObject * gdb_py_generic_dict(PyObject *self, void *closure)
Definition: py-utils.c:314

Definition at line 544 of file py-progspace.c.

◆ pspace_object_type

PyTypeObject pspace_object_type

◆ pspy_pspace_data_key

const registry<program_space>::key<pspace_object, pspace_deleter> pspy_pspace_data_key
static

Definition at line 83 of file py-progspace.c.

Referenced by pspace_to_pspace_object().