/* MI Command Set - varobj commands.
- Copyright (C) 2000-2015 Free Software Foundation, Inc.
+ Copyright (C) 2000-2016 Free Software Foundation, Inc.
Contributed by Cygnus Solutions (a Red Hat company).
static void varobj_update_one (struct varobj *var,
enum print_values print_values,
- int explicit);
+ int is_explicit);
static int mi_print_value_p (struct varobj *var,
enum print_values print_values);
ui_out_field_string (uiout, "name", varobj_get_objname (var));
if (print_expression)
- ui_out_field_string (uiout, "exp", varobj_get_expression (var));
+ {
+ char *exp = varobj_get_expression (var);
+
+ ui_out_field_string (uiout, "exp", exp);
+ xfree (exp);
+ }
ui_out_field_int (uiout, "numchild", varobj_get_num_children (var));
if (mi_print_value_p (var, print_values))
return FORMAT_HEXADECIMAL;
else if (strncmp (arg, "octal", len) == 0)
return FORMAT_OCTAL;
+ else if (strncmp (arg, "zero-hexadecimal", len) == 0)
+ return FORMAT_ZHEXADECIMAL;
}
error (_("Must specify the format as: \"natural\", "
- "\"binary\", \"decimal\", \"hexadecimal\", or \"octal\""));
+ "\"binary\", \"decimal\", \"hexadecimal\", \"octal\" or \"zero-hexadecimal\""));
}
void
struct ui_out *uiout = current_uiout;
const struct language_defn *lang;
struct varobj *var;
+ char *exp;
if (argc != 1)
error (_("-var-info-expression: Usage: NAME."));
lang = varobj_get_language (var);
ui_out_field_string (uiout, "lang", lang->la_natural_name);
- ui_out_field_string (uiout, "exp", varobj_get_expression (var));
+
+ exp = varobj_get_expression (var);
+ ui_out_field_string (uiout, "exp", exp);
+ xfree (exp);
}
void
static void
mi_cmd_var_update_iter (struct varobj *var, void *data_pointer)
{
- struct mi_cmd_var_update *data = data_pointer;
+ struct mi_cmd_var_update *data = (struct mi_cmd_var_update *) data_pointer;
int thread_id, thread_stopped;
thread_id = varobj_get_thread_id (var);
static void
varobj_update_one (struct varobj *var, enum print_values print_values,
- int explicit)
+ int is_explicit)
{
struct ui_out *uiout = current_uiout;
VEC (varobj_update_result) *changes;
varobj_update_result *r;
int i;
- changes = varobj_update (&var, explicit);
+ changes = varobj_update (&var, is_explicit);
for (i = 0; VEC_iterate (varobj_update_result, changes, i, r); ++i)
{
ui_out_field_int (uiout, "has_more",
varobj_has_more (r->varobj, to));
- if (r->new)
+ if (r->newobj)
{
int j;
varobj_p child;
struct cleanup *cleanup;
cleanup = make_cleanup_ui_out_list_begin_end (uiout, "new_children");
- for (j = 0; VEC_iterate (varobj_p, r->new, j, child); ++j)
+ for (j = 0; VEC_iterate (varobj_p, r->newobj, j, child); ++j)
{
struct cleanup *cleanup_child;
}
do_cleanups (cleanup);
- VEC_free (varobj_p, r->new);
- r->new = NULL; /* Paranoia. */
+ VEC_free (varobj_p, r->newobj);
+ r->newobj = NULL; /* Paranoia. */
}
do_cleanups (cleanup);