aboutsummaryrefslogtreecommitdiff
path: root/gdb/mi/mi-cmd-var.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/mi/mi-cmd-var.c')
-rw-r--r--gdb/mi/mi-cmd-var.c70
1 files changed, 25 insertions, 45 deletions
diff --git a/gdb/mi/mi-cmd-var.c b/gdb/mi/mi-cmd-var.c
index 16d51f9..147e026 100644
--- a/gdb/mi/mi-cmd-var.c
+++ b/gdb/mi/mi-cmd-var.c
@@ -49,34 +49,28 @@ print_varobj (struct varobj *var, enum print_values print_values,
int print_expression)
{
struct ui_out *uiout = current_uiout;
- char *type;
int thread_id;
char *display_hint;
ui_out_field_string (uiout, "name", varobj_get_objname (var));
if (print_expression)
{
- char *exp = varobj_get_expression (var);
+ std::string exp = varobj_get_expression (var);
- ui_out_field_string (uiout, "exp", exp);
- xfree (exp);
+ ui_out_field_string (uiout, "exp", exp.c_str ());
}
ui_out_field_int (uiout, "numchild", varobj_get_num_children (var));
if (mi_print_value_p (var, print_values))
{
- char *val = varobj_get_value (var);
+ std::string val = varobj_get_value (var);
- ui_out_field_string (uiout, "value", val);
- xfree (val);
+ ui_out_field_string (uiout, "value", val.c_str ());
}
- type = varobj_get_type (var);
- if (type != NULL)
- {
- ui_out_field_string (uiout, "type", type);
- xfree (type);
- }
+ std::string type = varobj_get_type (var);
+ if (!type.empty ())
+ ui_out_field_string (uiout, "type", type.c_str ());
thread_id = varobj_get_thread_id (var);
if (thread_id > 0)
@@ -246,7 +240,6 @@ mi_cmd_var_set_format (char *command, char **argv, int argc)
{
enum varobj_display_formats format;
struct varobj *var;
- char *val;
struct ui_out *uiout = current_uiout;
if (argc != 2)
@@ -264,9 +257,8 @@ mi_cmd_var_set_format (char *command, char **argv, int argc)
ui_out_field_string (uiout, "format", varobj_format_string[(int) format]);
/* Report the value in the new format. */
- val = varobj_get_value (var);
- ui_out_field_string (uiout, "value", val);
- xfree (val);
+ std::string val = varobj_get_value (var);
+ ui_out_field_string (uiout, "value", val.c_str ());
}
void
@@ -454,18 +446,15 @@ mi_cmd_var_info_type (char *command, char **argv, int argc)
{
struct ui_out *uiout = current_uiout;
struct varobj *var;
- char *type_name;
if (argc != 1)
error (_("-var-info-type: Usage: NAME."));
/* Get varobj handle, if a valid var obj name was specified. */
var = varobj_get_handle (argv[0]);
- type_name = varobj_get_type (var);
-
- ui_out_field_string (uiout, "type", type_name);
- xfree (type_name);
+ std::string type_name = varobj_get_type (var);
+ ui_out_field_string (uiout, "type", type_name.c_str ());
}
void
@@ -473,7 +462,6 @@ mi_cmd_var_info_path_expression (char *command, char **argv, int argc)
{
struct ui_out *uiout = current_uiout;
struct varobj *var;
- char *path_expr;
if (argc != 1)
error (_("Usage: NAME."));
@@ -481,7 +469,7 @@ mi_cmd_var_info_path_expression (char *command, char **argv, int argc)
/* Get varobj handle, if a valid var obj name was specified. */
var = varobj_get_handle (argv[0]);
- path_expr = varobj_get_path_expr (var);
+ const char *path_expr = varobj_get_path_expr (var);
ui_out_field_string (uiout, "path_expr", path_expr);
}
@@ -492,7 +480,6 @@ mi_cmd_var_info_expression (char *command, char **argv, int argc)
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."));
@@ -504,9 +491,8 @@ mi_cmd_var_info_expression (char *command, char **argv, int argc)
ui_out_field_string (uiout, "lang", lang->la_natural_name);
- exp = varobj_get_expression (var);
- ui_out_field_string (uiout, "exp", exp);
- xfree (exp);
+ std::string exp = varobj_get_expression (var);
+ ui_out_field_string (uiout, "exp", exp.c_str ());
}
void
@@ -588,17 +574,15 @@ mi_cmd_var_evaluate_expression (char *command, char **argv, int argc)
if (formatFound)
{
- char *val = varobj_get_formatted_value (var, format);
+ std::string val = varobj_get_formatted_value (var, format);
- ui_out_field_string (uiout, "value", val);
- xfree (val);
+ ui_out_field_string (uiout, "value", val.c_str ());
}
else
{
- char *val = varobj_get_value (var);
+ std::string val = varobj_get_value (var);
- ui_out_field_string (uiout, "value", val);
- xfree (val);
+ ui_out_field_string (uiout, "value", val.c_str ());
}
}
@@ -607,7 +591,6 @@ mi_cmd_var_assign (char *command, char **argv, int argc)
{
struct ui_out *uiout = current_uiout;
struct varobj *var;
- char *expression, *val;
if (argc != 2)
error (_("-var-assign: Usage: NAME EXPRESSION."));
@@ -618,7 +601,7 @@ mi_cmd_var_assign (char *command, char **argv, int argc)
if (!varobj_editable_p (var))
error (_("-var-assign: Variable object is not editable"));
- expression = xstrdup (argv[1]);
+ const char *expression = argv[1];
/* MI command '-var-assign' may write memory, so suppress memory
changed notification if it does. */
@@ -629,9 +612,8 @@ mi_cmd_var_assign (char *command, char **argv, int argc)
error (_("-var-assign: Could not assign "
"expression to variable object"));
- val = varobj_get_value (var);
- ui_out_field_string (uiout, "value", val);
- xfree (val);
+ std::string val = varobj_get_value (var);
+ ui_out_field_string (uiout, "value", val.c_str ());
}
/* Type used for parameters passing to mi_cmd_var_update_iter. */
@@ -752,10 +734,9 @@ varobj_update_one (struct varobj *var, enum print_values print_values,
case VAROBJ_IN_SCOPE:
if (mi_print_value_p (r->varobj, print_values))
{
- char *val = varobj_get_value (r->varobj);
+ std::string val = varobj_get_value (r->varobj);
- ui_out_field_string (uiout, "value", val);
- xfree (val);
+ ui_out_field_string (uiout, "value", val.c_str ());
}
ui_out_field_string (uiout, "in_scope", "true");
break;
@@ -777,10 +758,9 @@ varobj_update_one (struct varobj *var, enum print_values print_values,
if (r->type_changed)
{
- char *type_name = varobj_get_type (r->varobj);
+ std::string type_name = varobj_get_type (r->varobj);
- ui_out_field_string (uiout, "new_type", type_name);
- xfree (type_name);
+ ui_out_field_string (uiout, "new_type", type_name.c_str ());
}
if (r->type_changed || r->children_changed)