#ifndef VAROBJ_H
#define VAROBJ_H 1
#include "symtab.h"
#include "gdbtypes.h"
enum varobj_display_formats
{
FORMAT_NATURAL,
FORMAT_BINARY,
FORMAT_DECIMAL,
FORMAT_HEXADECIMAL,
FORMAT_OCTAL,
FORMAT_UNSIGNED
};
enum varobj_type
{
USE_SPECIFIED_FRAME,
USE_CURRENT_FRAME,
USE_SELECTED_FRAME,
USE_BLOCK_IN_FRAME
};
extern char *varobj_format_string[];
enum varobj_languages
{
vlang_unknown = 0, vlang_c, vlang_cplus, vlang_java, vlang_end
};
extern char *varobj_language_string[];
enum varobj_type_change {
VAROBJ_TYPE_UNCHANGED,
VAROBJ_TYPE_CHANGED,
VAROBJ_DYNAMIC_TYPE_CHANGED
};
struct varobj;
struct varobj_changelist;
extern struct varobj *varobj_create (char *objname,
char *expression, CORE_ADDR frame,
struct block *block,
enum varobj_type type);
extern char *varobj_gen_name (void);
extern struct varobj *varobj_get_handle (char *name);
extern char *varobj_get_objname (struct varobj *var);
extern char *varobj_get_expression (struct varobj *var);
extern int varobj_delete (struct varobj *var, char ***dellist,
int only_children);
extern enum varobj_display_formats varobj_set_display_format (
struct varobj *var,
enum varobj_display_formats format);
extern enum varobj_display_formats varobj_get_display_format (
struct varobj *var);
extern int varobj_get_num_children (struct varobj *var);
extern int varobj_list_children (struct varobj *var,
struct varobj ***childlist);
extern char *varobj_get_type (struct varobj *var);
extern char *varobj_get_dynamic_type (struct varobj *var);
extern char *varobj_get_path_expr (struct varobj *var);
extern struct type *varobj_get_type_struct (struct varobj *var);
extern enum varobj_languages varobj_get_language (struct varobj *var);
extern int varobj_get_attributes (struct varobj *var);
extern char *varobj_get_value (struct varobj *var);
extern int varobj_set_value (struct varobj *var, char *expression);
extern int varobj_list (struct varobj ***rootlist);
extern int varobj_in_scope_p (struct varobj *var);
extern int varobj_pc_in_valid_block_p (struct varobj *var);
extern int varobj_update (struct varobj **varp,
struct varobj_changelist **changelist);
extern struct varobj *varobj_changelist_pop (struct varobj_changelist *changelist,
enum varobj_type_change *type_changed);
extern void varobj_get_valid_block (struct varobj *var, CORE_ADDR *start,
CORE_ADDR *end);
#endif