/* MI Command Set - varobj commands.
- Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Cygnus Solutions (a Red Hat company).
#include "mi-getopt.h"
#include "gdbthread.h"
#include "mi-parse.h"
-#include "common/gdb_optional.h"
-
-extern unsigned int varobjdebug; /* defined in varobj.c. */
+#include "gdbsupport/gdb_optional.h"
+#include "inferior.h"
static void varobj_update_one (struct varobj *var,
enum print_values print_values,
uiout->field_string ("exp", exp.c_str ());
}
- uiout->field_int ("numchild", varobj_get_num_children (var));
+ uiout->field_signed ("numchild", varobj_get_num_children (var));
if (mi_print_value_p (var, print_values))
{
thread_id = varobj_get_thread_id (var);
if (thread_id > 0)
- uiout->field_int ("thread-id", thread_id);
+ uiout->field_signed ("thread-id", thread_id);
if (varobj_get_frozen (var))
- uiout->field_int ("frozen", 1);
+ uiout->field_signed ("frozen", 1);
gdb::unique_xmalloc_ptr<char> display_hint = varobj_get_display_hint (var);
if (display_hint)
uiout->field_string ("displayhint", display_hint.get ());
if (varobj_is_dynamic_p (var))
- uiout->field_int ("dynamic", 1);
+ uiout->field_signed ("dynamic", 1);
}
/* VAROBJ operations */
print_varobj (var, PRINT_ALL_VALUES, 0 /* don't print expression */);
- uiout->field_int ("has_more", varobj_has_more (var, 0));
+ uiout->field_signed ("has_more", varobj_has_more (var, 0));
}
void
numdel = varobj_delete (var, children_only_p);
- uiout->field_int ("ndeleted", numdel);
+ uiout->field_signed ("ndeleted", numdel);
}
/* Parse a string argument into a format value. */
/* Get varobj handle, if a valid var obj name was specified. */
var = varobj_get_handle (argv[0]);
- uiout->field_int ("numchild", varobj_get_num_children (var));
+ uiout->field_signed ("numchild", varobj_get_num_children (var));
}
/* Return 1 if given the argument PRINT_VALUES we should display
const std::vector<varobj *> &children
= varobj_list_children (var, &from, &to);
- uiout->field_int ("numchild", to - from);
+ uiout->field_signed ("numchild", to - from);
if (argc == 2 || argc == 4)
print_values = mi_parse_print_values (argv[0]);
else
}
}
- uiout->field_int ("has_more", varobj_has_more (var, to));
+ uiout->field_signed ("has_more", varobj_has_more (var, to));
}
void
mi_cmd_var_update_iter (struct varobj *var, void *data_pointer)
{
struct mi_cmd_var_update *data = (struct mi_cmd_var_update *) data_pointer;
- int thread_id, thread_stopped;
+ bool thread_stopped;
- thread_id = varobj_get_thread_id (var);
+ int thread_id = varobj_get_thread_id (var);
- if (thread_id == -1
- && (ptid_equal (inferior_ptid, null_ptid)
- || is_stopped (inferior_ptid)))
- thread_stopped = 1;
+ if (thread_id == -1)
+ {
+ thread_stopped = (inferior_ptid == null_ptid
+ || inferior_thread ()->state == THREAD_STOPPED);
+ }
else
{
- struct thread_info *tp = find_thread_global_id (thread_id);
+ thread_info *tp = find_thread_global_id (thread_id);
- if (tp)
- thread_stopped = is_stopped (tp->ptid);
- else
- thread_stopped = 1;
+ thread_stopped = (tp == NULL
+ || tp->state == THREAD_STOPPED);
}
if (thread_stopped
}
if (r.type_changed || r.children_changed)
- uiout->field_int ("new_num_children",
- varobj_get_num_children (r.varobj));
+ uiout->field_signed ("new_num_children",
+ varobj_get_num_children (r.varobj));
gdb::unique_xmalloc_ptr<char> display_hint
= varobj_get_display_hint (r.varobj);
uiout->field_string ("displayhint", display_hint.get ());
if (varobj_is_dynamic_p (r.varobj))
- uiout->field_int ("dynamic", 1);
+ uiout->field_signed ("dynamic", 1);
varobj_get_child_range (r.varobj, &from, &to);
- uiout->field_int ("has_more", varobj_has_more (r.varobj, to));
+ uiout->field_signed ("has_more", varobj_has_more (r.varobj, to));
if (!r.newobj.empty ())
{
for (varobj *child : r.newobj)
{
- ui_out_emit_tuple tuple_emitter (uiout, NULL);
+ ui_out_emit_tuple inner_tuple_emitter (uiout, NULL);
print_varobj (child, print_values, 1 /* print_expression */);
}
}