GDB (xrefs)
|
#include "defs.h"
#include "value.h"
#include "python-internal.h"
#include "charset.h"
#include "gdbtypes.h"
#include "cp-support.h"
#include "demangle.h"
#include "objfiles.h"
#include "language.h"
#include "vec.h"
#include "typeprint.h"
Go to the source code of this file.
Classes | |
struct | pyty_type_object |
struct | pyty_field_object |
struct | typy_iterator_object |
struct | pyty_code |
Macros | |
#define | ENTRY(X) { X, #X } |
Typedefs | |
typedef struct pyty_type_object | type_object |
typedef struct pyty_field_object | field_object |
Functions | |
PyTypeObject type_object_type | CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("type_object") |
PyTypeObject field_object_type | CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("field_object") |
PyTypeObject type_iterator_object_type | CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("typy_iterator_object") |
static PyObject * | typy_make_iter (PyObject *self, enum gdbpy_iter_kind kind) |
static void | field_dealloc (PyObject *obj) |
static PyObject * | field_new (void) |
int | gdbpy_is_field (PyObject *obj) |
static PyObject * | typy_get_code (PyObject *self, void *closure) |
static PyObject * | convert_field (struct type *type, int field) |
static PyObject * | field_name (struct type *type, int field) |
static PyObject * | make_fielditem (struct type *type, int i, enum gdbpy_iter_kind kind) |
static PyObject * | typy_fields_items (PyObject *self, enum gdbpy_iter_kind kind) |
static PyObject * | typy_values (PyObject *self, PyObject *args) |
static PyObject * | typy_fields (PyObject *self, PyObject *args) |
static PyObject * | typy_field_names (PyObject *self, PyObject *args) |
static PyObject * | typy_items (PyObject *self, PyObject *args) |
static PyObject * | typy_get_name (PyObject *self, void *closure) |
static PyObject * | typy_get_tag (PyObject *self, void *closure) |
static PyObject * | typy_strip_typedefs (PyObject *self, PyObject *args) |
static struct type * | typy_get_composite (struct type *type) |
static PyObject * | typy_array_1 (PyObject *self, PyObject *args, int is_vector) |
static PyObject * | typy_array (PyObject *self, PyObject *args) |
static PyObject * | typy_vector (PyObject *self, PyObject *args) |
static PyObject * | typy_pointer (PyObject *self, PyObject *args) |
static PyObject * | typy_range (PyObject *self, PyObject *args) |
static PyObject * | typy_reference (PyObject *self, PyObject *args) |
static PyObject * | typy_target (PyObject *self, PyObject *args) |
static PyObject * | typy_const (PyObject *self, PyObject *args) |
static PyObject * | typy_volatile (PyObject *self, PyObject *args) |
static PyObject * | typy_unqualified (PyObject *self, PyObject *args) |
static PyObject * | typy_get_sizeof (PyObject *self, void *closure) |
static struct type * | typy_lookup_typename (const char *type_name, const struct block *block) |
static struct type * | typy_lookup_type (struct demangle_component *demangled, const struct block *block) |
static PyObject * | typy_legacy_template_argument (struct type *type, const struct block *block, int argno) |
static PyObject * | typy_template_argument (PyObject *self, PyObject *args) |
static PyObject * | typy_str (PyObject *self) |
static PyObject * | typy_richcompare (PyObject *self, PyObject *other, int op) |
static void | save_objfile_types (struct objfile *objfile, void *datum) |
static void | set_type (type_object *obj, struct type *type) |
static void | typy_dealloc (PyObject *obj) |
static Py_ssize_t | typy_length (PyObject *self) |
static int | typy_nonzero (PyObject *self) |
static PyObject * | typy_optimized_out (PyObject *self, PyObject *args) |
static PyObject * | typy_getitem (PyObject *self, PyObject *key) |
static PyObject * | typy_get (PyObject *self, PyObject *args) |
static PyObject * | typy_has_key (PyObject *self, PyObject *args) |
static PyObject * | typy_iteritems (PyObject *self, PyObject *args) |
static PyObject * | typy_iterkeys (PyObject *self, PyObject *args) |
static PyObject * | typy_iter (PyObject *self) |
static PyObject * | typy_itervalues (PyObject *self, PyObject *args) |
static PyObject * | typy_iterator_iter (PyObject *self) |
static PyObject * | typy_iterator_iternext (PyObject *self) |
static void | typy_iterator_dealloc (PyObject *obj) |
PyObject * | type_to_type_object (struct type *type) |
struct type * | type_object_to_type (PyObject *obj) |
PyObject * | gdbpy_lookup_type (PyObject *self, PyObject *args, PyObject *kw) |
int | gdbpy_initialize_types (void) |
Variables | |
static struct pyty_code | pyty_codes [] |
static const struct objfile_data * | typy_objfile_data_key |
static PyGetSetDef | type_object_getset [] |
static PyMethodDef | type_object_methods [] |
static PyNumberMethods | type_object_as_number |
static PyMappingMethods | typy_mapping |
PyTypeObject | type_object_type |
static PyGetSetDef | field_object_getset [] |
PyTypeObject | field_object_type |
PyTypeObject | type_iterator_object_type |
typedef struct pyty_field_object field_object |
typedef struct pyty_type_object type_object |
Definition at line 169 of file py-type.c.
References field_is_static(), field_name(), field_new(), gdb_py_long_from_longest, Py_DECREF, TYPE_CODE, TYPE_CODE_ENUM, TYPE_CODE_STRUCT, TYPE_FIELD, TYPE_FIELD_ARTIFICIAL, TYPE_FIELD_BITPOS, TYPE_FIELD_BITSIZE, TYPE_FIELD_ENUMVAL, TYPE_FIELD_NAME, TYPE_FIELD_TYPE, TYPE_N_BASECLASSES, and type_to_type_object().
Referenced by make_fielditem(), typy_fields(), and typy_getitem().
PyTypeObject type_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF | ( | "type_object" | ) |
PyTypeObject field_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF | ( | "field_object" | ) |
PyTypeObject type_iterator_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF | ( | "typy_iterator_object" | ) |
|
static |
Definition at line 121 of file py-type.c.
References pyty_field_object::dict, and Py_TYPE.
Definition at line 278 of file py-type.c.
References TYPE_FIELD_NAME.
Referenced by ada_nget_field_index(), ada_varobj_describe_struct_child(), c_describe_child(), c_is_path_expr_parent(), convert_field(), cplus_describe_child(), gdb_mangle_name(), get_symbol_field_type(), make_fielditem(), and tdesc_start_field().
|
static |
Definition at line 130 of file py-type.c.
References pyty_field_object::dict, field_object_type, and Py_DECREF.
Referenced by convert_field().
int gdbpy_initialize_types | ( | void | ) |
Definition at line 1436 of file py-type.c.
References code, field_object_type, gdb_module, gdb_pymodule_addobject(), name, pyty_code::name, save_objfile_types(), type_iterator_object_type, type_object_type, and typy_objfile_data_key.
Referenced by _initialize_python().
int gdbpy_is_field | ( | PyObject * | obj | ) |
Definition at line 151 of file py-type.c.
References field_object_type.
Referenced by valpy_getitem().
PyObject* gdbpy_lookup_type | ( | PyObject * | self, |
PyObject * | args, | ||
PyObject * | kw | ||
) |
Definition at line 1405 of file py-type.c.
References _, block_object_to_block(), type_to_type_object(), and typy_lookup_typename().
|
static |
Definition at line 299 of file py-type.c.
References convert_field(), field_name(), gdb_assert_not_reached, iter_items, iter_keys, and iter_values.
Referenced by typy_iterator_iternext().
|
static |
Definition at line 1087 of file py-type.c.
References copy_type_recursive(), create_copied_types_hash(), current_language, do_cleanups(), ensure_python_env(), gdb_python_initialized, get_objfile_arch(), cleanup::next, pyty_type_object::next, pyty_type_object::prev, and pyty_type_object::type.
Referenced by gdbpy_initialize_types().
|
static |
Definition at line 1122 of file py-type.c.
References pyty_type_object::next, pyty_type_object::prev, pyty_type_object::type, type, TYPE_OBJFILE, and typy_objfile_data_key.
Referenced by read_set_type(), and type_to_type_object().
struct type* type_object_to_type | ( | PyObject * | obj | ) |
Definition at line 1394 of file py-type.c.
References type_object_type.
Referenced by bpfinishpy_pre_stop_hook(), gdbpy_get_xmethod_arg_types(), gdbpy_get_xmethod_result_type(), gdbpy_invoke_xmethod(), get_field_type(), typy_richcompare(), typy_str(), valpy_do_cast(), and value_has_field().
PyObject* type_to_type_object | ( | struct type * | type | ) |
Definition at line 1382 of file py-type.c.
References set_type(), and type_object_type.
Referenced by bpfinishpy_init(), convert_field(), gdbpy_apply_type_printers(), gdbpy_get_matching_xmethod_workers(), gdbpy_lookup_type(), stpy_get_type(), sympy_get_type(), typy_array_1(), typy_const(), typy_fields_items(), typy_legacy_template_argument(), typy_pointer(), typy_reference(), typy_strip_typedefs(), typy_target(), typy_template_argument(), typy_unqualified(), typy_volatile(), valpy_get_dynamic_type(), and valpy_get_type().
|
static |
Definition at line 564 of file py-type.c.
References typy_array_1().
|
static |
Definition at line 511 of file py-type.c.
References _, CATCH, END_CATCH, GDB_PY_HANDLE_EXCEPTION, gdb_py_int_as_long(), lookup_array_range_type(), make_vector_type(), RETURN_MASK_ALL, TRY, and type_to_type_object().
Referenced by typy_array(), and typy_vector().
|
static |
Definition at line 698 of file py-type.c.
References CATCH, END_CATCH, GDB_PY_HANDLE_EXCEPTION, make_cv_type(), RETURN_MASK_ALL, TRY, and type_to_type_object().
|
static |
Definition at line 1140 of file py-type.c.
References pyty_type_object::next, pyty_type_object::prev, Py_TYPE, pyty_type_object::type, TYPE_OBJFILE, and typy_objfile_data_key.
|
static |
Definition at line 413 of file py-type.c.
References iter_keys, and typy_fields_items().
|
static |
Definition at line 389 of file py-type.c.
References convert_field(), iter_values, Py_DECREF, TYPE_CODE, TYPE_CODE_ARRAY, and typy_fields_items().
|
static |
Definition at line 340 of file py-type.c.
References CATCH, CHECK_TYPEDEF, END_CATCH, GDB_PY_HANDLE_EXCEPTION, Py_DECREF, RETURN_MASK_ALL, TRY, type, type_to_type_object(), and typy_make_iter().
Referenced by typy_field_names(), typy_fields(), typy_items(), and typy_values().
|
static |
Definition at line 1233 of file py-type.c.
References typy_getitem().
|
static |
Definition at line 473 of file py-type.c.
References CATCH, CHECK_TYPEDEF, END_CATCH, GDB_PY_HANDLE_EXCEPTION, RETURN_MASK_ALL, TRY, type, TYPE_CODE, TYPE_CODE_ENUM, TYPE_CODE_PTR, TYPE_CODE_REF, TYPE_CODE_STRUCT, TYPE_CODE_UNION, and TYPE_TARGET_TYPE.
Referenced by typy_getitem(), typy_has_key(), typy_length(), and typy_make_iter().
|
static |
|
static |
Definition at line 755 of file py-type.c.
References CATCH, check_typedef(), END_CATCH, gdb_py_long_from_longest, RETURN_MASK_ALL, TRY, and TYPE_LENGTH.
|
static |
Definition at line 441 of file py-type.c.
References TYPE_TAG_NAME.
|
static |
Definition at line 1197 of file py-type.c.
References convert_field(), python_string_to_host_string(), strcmp_iw(), TYPE_FIELD_NAME, TYPE_NFIELDS, and typy_get_composite().
Referenced by typy_get().
|
static |
Definition at line 1258 of file py-type.c.
References strcmp_iw(), TYPE_FIELD_NAME, TYPE_NFIELDS, and typy_get_composite().
|
static |
Definition at line 422 of file py-type.c.
References iter_items, and typy_fields_items().
|
static |
Definition at line 1329 of file py-type.c.
References iter_keys, and typy_make_iter().
|
static |
Definition at line 1373 of file py-type.c.
References Py_DECREF, and typy_iterator_object::source.
|
static |
|
static |
Definition at line 1355 of file py-type.c.
References typy_iterator_object::field, typy_iterator_object::kind, make_fielditem(), typy_iterator_object::source, pyty_type_object::type, and TYPE_NFIELDS.
|
static |
Definition at line 1312 of file py-type.c.
References iter_items, and typy_make_iter().
|
static |
Definition at line 1320 of file py-type.c.
References iter_keys, and typy_make_iter().
|
static |
Definition at line 1337 of file py-type.c.
References iter_values, and typy_make_iter().
|
static |
Definition at line 868 of file py-type.c.
References _, CATCH, cp_demangled_name_to_comp(), do_cleanups(), END_CATCH, err, GDB_PY_HANDLE_EXCEPTION, if(), demangle_parse_info::info, make_cleanup_cp_demangled_name_parse_free(), RETURN_MASK_ALL, demangle_parse_info::tree, TRY, TYPE_NAME, type_to_type_object(), and typy_lookup_type().
Referenced by typy_template_argument().
|
static |
Definition at line 1163 of file py-type.c.
References TYPE_NFIELDS, and typy_get_composite().
|
static |
Definition at line 800 of file py-type.c.
References CATCH, cp_comp_to_string(), END_CATCH, GDB_PY_HANDLE_EXCEPTION, lookup_pointer_type(), lookup_reference_type(), make_cv_type(), RETURN_MASK_ALL, TRY, type, typy_lookup_typename(), and xfree().
Referenced by typy_legacy_template_argument().
|
static |
Definition at line 774 of file py-type.c.
References CATCH, END_CATCH, GDB_PY_HANDLE_EXCEPTION, lookup_enum(), lookup_struct(), lookup_typename(), lookup_union(), python_gdbarch, python_language, RETURN_MASK_ALL, startswith(), TRY, and type.
Referenced by gdbpy_lookup_type(), and typy_lookup_type().
|
static |
Definition at line 1288 of file py-type.c.
References typy_iterator_object::field, typy_iterator_object::kind, typy_iterator_object::source, type_iterator_object_type, and typy_get_composite().
Referenced by typy_fields_items(), typy_iter(), typy_iteritems(), typy_iterkeys(), and typy_itervalues().
|
static |
Definition at line 1187 of file py-type.c.
References allocate_optimized_out_value(), and value_to_value_object().
|
static |
Definition at line 579 of file py-type.c.
References CATCH, END_CATCH, GDB_PY_HANDLE_EXCEPTION, lookup_pointer_type(), RETURN_MASK_ALL, TRY, and type_to_type_object().
|
static |
Definition at line 600 of file py-type.c.
References _, Py_DECREF, TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_RANGE, TYPE_CODE_STRING, TYPE_HIGH_BOUND, TYPE_INDEX_TYPE, and TYPE_LOW_BOUND.
|
static |
Definition at line 663 of file py-type.c.
References CATCH, END_CATCH, GDB_PY_HANDLE_EXCEPTION, lookup_reference_type(), RETURN_MASK_ALL, TRY, and type_to_type_object().
|
static |
Definition at line 1046 of file py-type.c.
References CATCH, END_CATCH, GDB_PY_HANDLE_EXCEPTION, RETURN_MASK_ALL, TRY, type_object_to_type(), and types_deeply_equal().
|
static |
Definition at line 1010 of file py-type.c.
References CATCH, do_cleanups(), END_CATCH, GDB_PY_HANDLE_EXCEPTION, host_charset(), LA_PRINT_TYPE, make_cleanup_ui_file_delete(), mem_fileopen(), RETURN_MASK_ALL, TRY, type_object_to_type(), type_print_raw_options, ui_file_xstrdup(), and xfree().
|
static |
Definition at line 452 of file py-type.c.
References CATCH, check_typedef(), END_CATCH, GDB_PY_HANDLE_EXCEPTION, RETURN_MASK_ALL, TRY, and type_to_type_object().
|
static |
Definition at line 682 of file py-type.c.
References _, TYPE_TARGET_TYPE, and type_to_type_object().
|
static |
Definition at line 938 of file py-type.c.
References _, block_object_to_block(), CATCH, check_typedef(), END_CATCH, GDB_PY_HANDLE_EXCEPTION, LOC_OPTIMIZED_OUT, LOC_TYPEDEF, RETURN_MASK_ALL, SYMBOL_CLASS, SYMBOL_TYPE, TRY, TYPE_CODE, TYPE_CODE_REF, TYPE_N_TEMPLATE_ARGUMENTS, TYPE_TARGET_TYPE, TYPE_TEMPLATE_ARGUMENT, type_to_type_object(), typy_legacy_template_argument(), value_of_variable(), and value_to_value_object().
|
static |
Definition at line 736 of file py-type.c.
References CATCH, END_CATCH, GDB_PY_HANDLE_EXCEPTION, make_cv_type(), RETURN_MASK_ALL, TRY, and type_to_type_object().
|
static |
Definition at line 378 of file py-type.c.
References iter_values, and typy_fields_items().
|
static |
Definition at line 572 of file py-type.c.
References typy_array_1().
|
static |
Definition at line 717 of file py-type.c.
References CATCH, END_CATCH, GDB_PY_HANDLE_EXCEPTION, make_cv_type(), RETURN_MASK_ALL, TRY, and type_to_type_object().
|
static |
PyTypeObject field_object_type |
Definition at line 1654 of file py-type.c.
Referenced by field_new(), gdbpy_initialize_types(), and gdbpy_is_field().
|
static |
PyTypeObject type_iterator_object_type |
Definition at line 1696 of file py-type.c.
Referenced by gdbpy_initialize_types(), and typy_make_iter().
|
static |
PyTypeObject type_object_type |
Definition at line 1605 of file py-type.c.
Referenced by gdbpy_initialize_types(), type_object_to_type(), and type_to_type_object().
|
static |
|
static |
Definition at line 1084 of file py-type.c.
Referenced by gdbpy_initialize_types(), set_type(), and typy_dealloc().