X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fvarobj.h;h=f750482313a28699fb3a91eabf390564c3e2a749;hb=0154d99053a95392380cd4629a89b0ac46df3737;hp=750660af1611195783b13f9342252b2ea7ebf9fd;hpb=b09e2c591f9221d865bfe8425990a6bf9fab24e3;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/varobj.h b/gdb/varobj.h index 750660af16..f750482313 100644 --- a/gdb/varobj.h +++ b/gdb/varobj.h @@ -1,5 +1,5 @@ /* GDB variable objects API. - Copyright (C) 1999-2015 Free Software Foundation, Inc. + Copyright (C) 1999-2016 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -28,7 +28,8 @@ enum varobj_display_formats FORMAT_BINARY, /* Binary display */ FORMAT_DECIMAL, /* Decimal display */ FORMAT_HEXADECIMAL, /* Hex display */ - FORMAT_OCTAL /* Octal display */ + FORMAT_OCTAL, /* Octal display */ + FORMAT_ZHEXADECIMAL /* Zero padded hexadecimal */ }; enum varobj_type @@ -52,7 +53,7 @@ enum varobj_scope_status /* String representations of gdb's format codes (defined in varobj.c). */ extern char *varobj_format_string[]; -/* Struct thar describes a variable object instance. */ +/* Struct that describes a variable object instance. */ struct varobj; @@ -75,7 +76,7 @@ typedef struct varobj_update_result_t It lists the new children (which must necessarily come at the end of the child list) added during an update. The caller is responsible for freeing this vector. */ - VEC (varobj_p) *new; + VEC (varobj_p) *newobj; } varobj_update_result; DEF_VEC_O (varobj_update_result); @@ -106,7 +107,7 @@ struct varobj int index; /* The type of this variable. This can be NULL - for artifial variable objects -- currently, the "accessibility" + for artificial variable objects -- currently, the "accessibility" variable objects in C++. */ struct type *type; @@ -120,7 +121,7 @@ struct varobj int num_children; /* If this object is a child, this points to its immediate parent. */ - struct varobj *parent; + const struct varobj *parent; /* Children of this object. */ VEC (varobj_p) *children; @@ -169,23 +170,27 @@ struct lang_varobj_ops /* The number of children of PARENT. */ int (*number_of_children) (const struct varobj *parent); - /* The name (expression) of a root varobj. */ + /* The name (expression) of a root varobj. The returned value must be freed + by the caller. */ char *(*name_of_variable) (const struct varobj *parent); - /* The name of the INDEX'th child of PARENT. */ - char *(*name_of_child) (struct varobj *parent, int index); + /* The name of the INDEX'th child of PARENT. The returned value must be + freed by the caller. */ + char *(*name_of_child) (const struct varobj *parent, int index); /* Returns the rooted expression of CHILD, which is a variable - obtain that has some parent. */ + obtain that has some parent. The returned value must be freed by the + caller. */ char *(*path_expr_of_child) (const struct varobj *child); /* The ``struct value *'' of the INDEX'th child of PARENT. */ - struct value *(*value_of_child) (struct varobj *parent, int index); + struct value *(*value_of_child) (const struct varobj *parent, int index); /* The type of the INDEX'th child of PARENT. */ - struct type *(*type_of_child) (struct varobj *parent, int index); + struct type *(*type_of_child) (const struct varobj *parent, int index); - /* The current value of VAR. */ + /* The current value of VAR. The returned value must be freed by the + caller. */ char *(*value_of_variable) (const struct varobj *var, enum varobj_display_formats format); @@ -193,7 +198,7 @@ struct lang_varobj_ops reported by -var-update. Return zero if -var-update should never report changes of such values. This makes sense for structures (since the changes in children values will be reported separately), - or for artifical objects (like 'public' pseudo-field in C++). + or for artificial objects (like 'public' pseudo-field in C++). Return value of 0 means that gdb need not call value_fetch_lazy for the value of this variable object. */ @@ -241,8 +246,10 @@ extern char *varobj_get_objname (const struct varobj *var); extern char *varobj_get_expression (const struct varobj *var); -extern int varobj_delete (struct varobj *var, char ***dellist, - int only_children); +/* Delete a varobj and all its children if only_children == 0, otherwise delete + only the children. Return the number of deleted variables. */ + +extern int varobj_delete (struct varobj *var, int only_children); extern enum varobj_display_formats varobj_set_display_format ( struct varobj *var, @@ -281,7 +288,7 @@ extern char *varobj_get_type (struct varobj *var); extern struct type *varobj_get_gdb_type (const struct varobj *var); -extern char *varobj_get_path_expr (struct varobj *var); +extern char *varobj_get_path_expr (const struct varobj *var); extern const struct language_defn * varobj_get_language (const struct varobj *var); @@ -299,7 +306,7 @@ extern void all_root_varobjs (void (*func) (struct varobj *var, void *data), void *data); extern VEC(varobj_update_result) *varobj_update (struct varobj **varp, - int explicit); + int is_explicit); extern void varobj_invalidate (void); @@ -325,7 +332,8 @@ extern struct type *varobj_get_value_type (const struct varobj *var); extern int varobj_is_anonymous_child (const struct varobj *child); -extern struct varobj *varobj_get_path_expr_parent (struct varobj *var); +extern const struct varobj * + varobj_get_path_expr_parent (const struct varobj *var); extern char *varobj_value_get_print_value (struct value *value, enum varobj_display_formats format,