27 #define ANONYMOUS_STRUCT_NAME _("<anonymous struct>") 28 #define ANONYMOUS_UNION_NAME _("<anonymous union>") 68 int lookup_actual_type)
119 struct type *enclosing_type;
120 int real_type_found = 0;
125 *
type = enclosing_type;
158 struct type *parent_type;
246 static struct value *
249 struct value *result = NULL;
300 if (cfull_expression)
333 if (cfull_expression)
362 if (cfull_expression)
363 *cfull_expression =
"";
370 if (cfull_expression)
372 const char *join = was_ptr ?
"->" :
".";
375 parent_expression.c_str (),
415 if (cfull_expression)
416 *cfull_expression =
string_printf (
"*(%s)", parent_expression.c_str ());
423 if (cfull_expression)
424 *cfull_expression =
"???";
448 static struct value *
507 if (var->
value == NULL)
527 if (format == var->
format)
566 int children, dont_know;
567 int lookup_actual_type = 0;
626 if (var->
name ==
"public")
628 else if (var->
name ==
"private")
649 struct type *basetype = NULL;
661 if ((
type == basetype && i == vptr_fieldno)
707 int lookup_actual_type = 0;
708 const char *parent_expression = NULL;
718 if (cfull_expression)
729 if (cfull_expression)
738 const char *join = was_ptr ?
"->" :
".";
751 struct type *basetype = NULL;
755 if (parent->
name ==
"private")
757 else if (parent->
name ==
"protected")
762 if ((
type == basetype && type_index == vptr_fieldno)
786 if (cfull_expression)
794 if (cfull_expression)
820 if (cfull_expression)
822 const char *ptr = was_ptr ?
"*" :
"";
846 const char *access = NULL;
865 access =
"protected";
873 access =
"protected";
876 access =
"protected";
880 access =
"protected";
919 static struct value *
#define TYPE_FIELD_PRIVATE(thistype, n)
static std::string c_name_of_variable(const struct varobj *parent)
static std::string cplus_value_of_variable(const struct varobj *var, enum varobj_display_formats format)
struct value * value_subscript(struct value *array, LONGEST index)
static void c_describe_child(const struct varobj *parent, int index, std::string *cname, struct value **cvalue, struct type **ctype, std::string *cfull_expression)
int get_vptr_fieldno(struct type *type, struct type **basetypep)
#define TYPE_FIELD_NAME(thistype, n)
#define TYPE_N_BASECLASSES(thistype)
static std::string cplus_name_of_child(const struct varobj *parent, int index)
#define TYPE_LOW_BOUND(range_type)
char * int_string(LONGEST val, int radix, int is_signed, int width, int use_c_format)
#define TYPE_NAME(thistype)
#define TYPE_FIELD_ARTIFICIAL(thistype, n)
static void adjust_value_for_child_access(struct value **value, struct type **type, int *was_ptr, int lookup_actual_type)
int value_lazy(const struct value *value)
struct value * value_ind(struct value *arg1)
#define CPLUS_FAKE_CHILD(x)
static struct value * cplus_value_of_child(const struct varobj *parent, int index)
#define TYPE_FIELD(thistype, n)
static std::string c_path_expr_of_child(const struct varobj *child)
#define TYPE_FIELD_TYPE(thistype, n)
const struct lang_varobj_ops c_varobj_ops
static void cplus_class_num_children(struct type *type, int children[3])
bool varobj_default_value_is_changeable_p(const struct varobj *var)
static struct value * c_value_of_child(const struct varobj *parent, int index)
#define TYPE_IS_REFERENCE(t)
struct type * check_typedef(struct type *type)
#define CATCH(EXCEPTION, MASK)
int field_is_static(struct field *f)
struct value * value_static_field(struct type *type, int fieldno)
bool varobj_is_anonymous_child(const struct varobj *child)
static struct type * cplus_type_of_child(const struct varobj *parent, int index)
struct value * value_cast(struct type *type, struct value *arg2)
const struct lang_varobj_ops cplus_varobj_ops
bool varobj_value_is_changeable_p(const struct varobj *var)
static std::string c_name_of_child(const struct varobj *parent, int index)
#define TYPE_ARRAY_UPPER_BOUND_IS_UNDEFINED(arraytype)
static void cplus_describe_child(const struct varobj *parent, int index, std::string *cname, struct value **cvalue, struct type **ctype, std::string *cfull_expression)
struct type * get_target_type(struct type *type)
#define ANONYMOUS_UNION_NAME
#define TYPE_FIELD_PROTECTED(thistype, n)
static struct type * c_type_of_child(const struct varobj *parent, int index)
static struct value * value_struct_element_index(struct value *value, int type_index)
static int cplus_number_of_children(const struct varobj *var)
static int match_accessibility(struct type *type, int index, enum accessibility acc)
#define TYPE_TARGET_TYPE(thistype)
#define TYPE_CODE(thistype)
#define TYPE_INDEX_TYPE(type)
std::vector< varobj * > children
void get_user_print_options(struct value_print_options *opts)
std::string varobj_value_get_print_value(struct value *value, enum varobj_display_formats format, const struct varobj *var)
#define TYPE_NFIELDS(thistype)
std::string string_printf(const char *fmt,...)
static bool c_is_path_expr_parent(const struct varobj *var)
#define TYPE_TAG_NAME(type)
struct type * varobj_get_gdb_type(const struct varobj *var)
static struct type * get_type(const struct varobj *var)
static PyObject * field_name(struct type *type, int field)
struct value * value_primitive_field(struct value *arg1, LONGEST offset, int fieldno, struct type *arg_type)
struct type * value_type(const struct value *value)
struct type * varobj_get_value_type(const struct varobj *var)
#define TYPE_LENGTH(thistype)
static std::string cplus_name_of_variable(const struct varobj *parent)
const struct varobj * varobj_get_path_expr_parent(const struct varobj *var)
static std::string c_value_of_variable(const struct varobj *var, enum varobj_display_formats format)
enum varobj_display_formats format
#define ANONYMOUS_STRUCT_NAME
static int c_number_of_children(const struct varobj *var)
static std::string cplus_path_expr_of_child(const struct varobj *child)
struct type * value_actual_type(struct value *value, int resolve_simple_types, int *real_type_found)
const char * varobj_get_path_expr(const struct varobj *var)