77 uiout->
field_int (
"thread-id", thread_id);
103 error (
_(
"-var-create: Usage: NAME FRAME EXPRESSION."));
110 if (strcmp (
name,
"-") == 0)
113 name = gen_name.c_str ();
115 else if (!isalpha (
name[0]))
116 error (
_(
"-var-create: name of object must begin with a letter"));
118 if (strcmp (frame,
"*") == 0)
120 else if (strcmp (frame,
"@") == 0)
130 "Name=\"%s\", Frame=\"%s\" (%s), Expression=\"%s\"\n",
136 error (
_(
"-var-create: unable to create variable object"));
149 int children_only_p = 0;
152 if (argc < 1 || argc > 2)
153 error (
_(
"-var-delete: Usage: [-c] EXPRESSION."));
161 if (strcmp (
name,
"-c") == 0)
162 error (
_(
"-var-delete: Missing required " 163 "argument after '-c': variable object name"));
165 error (
_(
"-var-delete: Illegal variable object name"));
172 if (strcmp (
name,
"-c") != 0)
173 error (
_(
"-var-delete: Invalid option."));
199 if (strncmp (arg,
"natural", len) == 0)
201 else if (strncmp (arg,
"binary", len) == 0)
203 else if (strncmp (arg,
"decimal", len) == 0)
205 else if (strncmp (arg,
"hexadecimal", len) == 0)
207 else if (strncmp (arg,
"octal", len) == 0)
209 else if (strncmp (arg,
"zero-hexadecimal", len) == 0)
213 error (
_(
"Must specify the format as: \"natural\", " 214 "\"binary\", \"decimal\", \"hexadecimal\", \"octal\" or \"zero-hexadecimal\""));
225 error (
_(
"-var-set-format: Usage: NAME FORMAT."));
249 error (
_(
"Usage: NAME VISUALIZER_FUNCTION."));
254 error (
_(
"Variable object not found"));
266 error (
_(
"-var-set-format: Usage: NAME FROZEN_FLAG."));
270 if (strcmp (
argv[1],
"0") == 0)
272 else if (strcmp (
argv[1],
"1") == 0)
275 error (
_(
"Invalid flag value"));
292 error (
_(
"-var-show-format: Usage: NAME."));
310 error (
_(
"-var-info-num-children: Usage: NAME."));
358 if (argc < 1 || argc > 4)
359 error (
_(
"-var-list-children: Usage: " 360 "[PRINT_VALUES] NAME [FROM TO]"));
363 if (argc == 1 || argc == 3)
371 to = atoi (
argv[argc - 1]);
379 const std::vector<varobj *> &
children 383 if (argc == 2 || argc == 4)
400 tuple_emitter.
emplace (uiout,
"children");
402 list_emitter.
emplace (uiout,
"children");
421 error (
_(
"-var-info-type: Usage: NAME."));
437 error (
_(
"Usage: NAME."));
455 error (
_(
"-var-info-expression: Usage: NAME."));
477 error (
_(
"-var-show-attributes: Usage: NAME."));
484 if (attr & 0x00000001)
487 attstr =
"noneditable";
507 static const struct mi_opt opts[] =
524 switch ((
enum opt) opt)
528 error (
_(
"Cannot specify format more than once"));
537 error (
_(
"Usage: [-f FORMAT] NAME"));
540 error (
_(
"Garbage at end of command"));
566 error (
_(
"-var-assign: Usage: NAME EXPRESSION."));
572 error (
_(
"-var-assign: Variable object is not editable"));
582 error (
_(
"-var-assign: Could not assign " 583 "expression to variable object"));
603 int thread_id, thread_stopped;
633 if (argc != 1 && argc != 2)
634 error (
_(
"-var-update: Usage: [PRINT_VALUES] NAME."));
652 tuple_emitter.
emplace (uiout,
"changelist");
654 list_emitter.
emplace (uiout,
"changelist");
659 if ((*
name ==
'*' || *
name ==
'@') && (*(
name + 1) ==
'\0'))
689 std::vector<varobj_update_result> changes =
varobj_update (&var, is_explicit);
697 tuple_emitter.
emplace (uiout,
nullptr);
734 if (r.type_changed || r.children_changed)
749 if (!r.newobj.empty ())
753 for (
varobj *child : r.newobj)
766 error (
_(
"-enable-pretty-printing: no arguments allowed"));
778 error (
_(
"-var-set-update-range: Usage: VAROBJ FROM TO"));
struct varobj * varobj_get_handle(const char *objname)
char * hex_string(LONGEST num)
void all_root_varobjs(void(*func)(struct varobj *var, void *data), void *data)
CORE_ADDR string_to_core_addr(const char *my_string)
void field_string(const char *fldname, const char *string)
bool varobj_set_value(struct varobj *var, const char *expression)
const char * varobj_get_objname(const struct varobj *var)
std::string varobj_gen_name(void)
enum varobj_display_formats varobj_set_display_format(struct varobj *var, enum varobj_display_formats format)
void varobj_set_child_range(struct varobj *var, int from, int to)
void mi_cmd_var_update(const char *command, char **argv, int argc)
void mi_cmd_enable_pretty_printing(const char *command, char **argv, int argc)
void varobj_set_visualizer(struct varobj *var, const char *visualizer)
std::string varobj_get_type(struct varobj *var)
void mi_cmd_var_info_expression(const char *command, char **argv, int argc)
const std::vector< varobj * > & varobj_list_children(struct varobj *var, int *from, int *to)
scoped_restore_tmpl< T > make_scoped_restore(T *var)
void mi_cmd_var_set_visualizer(const char *command, char **argv, int argc)
int varobj_get_thread_id(const struct varobj *var)
bool varobj_has_more(const struct varobj *var, int to)
int is_stopped(ptid_t ptid)
struct type * check_typedef(struct type *type)
int mi_getopt(const char *prefix, int argc, char **argv, const struct mi_opt *opts, int *oind, char **oarg)
const struct language_defn * varobj_get_language(const struct varobj *var)
std::unique_ptr< T, xfree_deleter< T > > unique_xmalloc_ptr
void varobj_set_frozen(struct varobj *var, bool frozen)
void mi_cmd_var_info_path_expression(const char *command, char **argv, int argc)
struct thread_info * find_thread_global_id(int global_id)
const char * varobj_format_string[]
std::string varobj_get_expression(const struct varobj *var)
void fprintf_unfiltered(struct ui_file *stream, const char *format,...)
void print_expression(struct expression *exp, struct ui_file *stream)
gdb::unique_xmalloc_ptr< char > varobj_get_display_hint(const struct varobj *var)
int mi_version(ui_out *uiout)
bool varobj_get_frozen(const struct varobj *var)
int varobj_delete(struct varobj *var, bool only_children)
static void print_varobj(struct varobj *var, enum print_values print_values, int print_expression)
void mi_cmd_var_evaluate_expression(const char *command, char **argv, int argc)
void mi_cmd_var_info_num_children(const char *command, char **argv, int argc)
void mi_cmd_var_set_update_range(const char *command, char **argv, int argc)
static enum varobj_display_formats mi_parse_format(const char *arg)
std::string varobj_get_value(struct varobj *var)
static void varobj_update_one(struct varobj *var, enum print_values print_values, bool is_explicit)
bool varobj_editable_p(const struct varobj *var)
std::vector< varobj_update_result > varobj_update(struct varobj **varp, bool is_explicit)
static void mi_cmd_var_update_iter(struct varobj *var, void *data_pointer)
void mi_cmd_var_set_format(const char *command, char **argv, int argc)
const char * la_natural_name
void mi_cmd_var_info_type(const char *command, char **argv, int argc)
std::string varobj_get_formatted_value(struct varobj *var, enum varobj_display_formats format)
enum varobj_display_formats varobj_get_display_format(const struct varobj *var)
T & emplace(Args &&... args)
void varobj_enable_pretty_printing(void)
static int mi_print_value_p(struct varobj *var, enum print_values print_values)
#define TYPE_CODE(thistype)
void field_int(const char *fldname, int value)
std::vector< varobj * > children
int varobj_get_num_children(struct varobj *var)
void mi_cmd_var_assign(const char *command, char **argv, int argc)
bool varobj_floating_p(const struct varobj *var)
void mi_cmd_var_show_attributes(const char *command, char **argv, int argc)
enum print_values print_values
int ptid_equal(const ptid_t &ptid1, const ptid_t &ptid2)
struct type * varobj_get_gdb_type(const struct varobj *var)
bool varobj_is_dynamic_p(const struct varobj *var)
void mi_cmd_var_show_format(const char *command, char **argv, int argc)
struct varobj * varobj_create(const char *objname, const char *expression, CORE_ADDR frame, enum varobj_type type)
void mi_cmd_var_delete(const char *command, char **argv, int argc)
void mi_cmd_var_list_children(const char *command, char **argv, int argc)
void mi_cmd_var_create(const char *command, char **argv, int argc)
void varobj_get_child_range(const struct varobj *var, int *from, int *to)
enum varobj_display_formats format
int varobj_get_attributes(const struct varobj *var)
enum print_values mi_parse_print_values(const char *name)
void error(const char *fmt,...)
const char * varobj_get_path_expr(const struct varobj *var)
void mi_cmd_var_set_frozen(const char *command, char **argv, int argc)