28 #if !defined(HAVE_LIBEXPAT) 30 std::unique_ptr<osdata>
33 static int have_warned;
38 warning (
_(
"Can not parse XML OS data; XML support was disabled " 50 std::unique_ptr<struct osdata>
osdata;
78 data->
osdata->items.emplace_back ();
100 void *user_data,
const char *body_text)
143 std::unique_ptr<osdata>
152 return std::move (data.
osdata);
159 std::unique_ptr<osdata>
162 std::unique_ptr<osdata>
osdata;
167 if (xml.get ()[0] ==
'\0')
170 warning (
_(
"Empty data returned by target. Wrong osdata type?"));
172 warning (
_(
"Empty type list returned by target. No type data?"));
179 error (
_(
"Can not fetch data now."));
200 int col_to_skip = -1;
209 if (*
type ==
'\0' && nrows == 0)
210 error (
_(
"Available types of OS data not reported."));
223 for (
int ix = 0; ix < last->
columns.size (); ix++)
225 if (last->
columns[ix].name ==
"Title")
230 if (col_to_skip >= 0)
242 if (last != NULL && !last->
columns.empty ())
244 for (
int ix = 0; ix < last->
columns.size (); ix++)
248 if (ix == col_to_skip)
251 snprintf (col_name, 32,
"col%d", ix);
253 col_name, last->
columns[ix].name.c_str ());
266 for (
int ix_cols = 0; ix_cols < item.
columns.size (); ix_cols++)
270 if (ix_cols == col_to_skip)
273 snprintf (col_name, 32,
"col%d", ix_cols);
275 item.
columns[ix_cols].value.c_str ());
294 _(
"Show OS data ARG."));
std::unique_ptr< struct osdata > osdata
std::string property_name
static void osdata_end_column(struct gdb_xml_parser *parser, const struct gdb_xml_element *element, void *user_data, const char *body_text)
void field_string(const char *fldname, const char *string)
void warning(const char *fmt,...)
struct cmd_list_element * add_info(const char *name, cmd_const_cfunc_ftype *fun, const char *doc)
void table_header(int width, ui_align align, const std::string &col_name, const std::string &col_hdr)
std::unique_ptr< osdata > get_osdata(const char *type)
void text(const char *string)
const struct gdb_xml_element osdata_elements[]
const struct gdb_xml_attribute column_attributes[]
std::unique_ptr< T, xfree_deleter< T > > unique_xmalloc_ptr
int gdb_xml_parse_quick(const char *name, const char *dtd_name, const struct gdb_xml_element *elements, const char *document, void *user_data)
std::unique_ptr< osdata > osdata_parse(const char *xml)
struct gdb_xml_value * xml_find_attribute(VEC(gdb_xml_value_s) *attributes, const char *name)
const std::string * get_osdata_column(const osdata_item &item, const char *name)
static void osdata_start_item(struct gdb_xml_parser *parser, const struct gdb_xml_element *element, void *user_data, VEC(gdb_xml_value_s) *attributes)
std::vector< osdata_column > columns
void gdb_xml_error(struct gdb_xml_parser *parser, const char *format,...)
static void osdata_start_osdata(struct gdb_xml_parser *parser, const struct gdb_xml_element *element, void *user_data, VEC(gdb_xml_value_s) *attributes)
std::vector< osdata_item > items
static void info_osdata_command(const char *arg, int from_tty)
const struct gdb_xml_element osdata_children[]
void _initialize_osdata(void)
gdb::unique_xmalloc_ptr< char > target_get_osdata(const char *type)
void info_osdata(const char *type)
static void osdata_start_column(struct gdb_xml_parser *parser, const struct gdb_xml_element *element, void *user_data, VEC(gdb_xml_value_s) *attributes)
const struct gdb_xml_element item_children[]
void error(const char *fmt,...)
const struct gdb_xml_attribute osdata_attributes[]