gdb.trace: Save XML target description in tfile.
gdb/ChangeLog: * ctf.c (ctf_write_tdesc): New function. (ctf_write_ops): Wire in ctf_write_tdesc. * tracefile-tfile.c (tfile_write_tdesc): New function. (tfile_write_ops): Wire in tfile_write_tdesc. * tracefile.c (trace_save): Call write_tdesc method. * tracefile.h (struct trace_file_write_ops): Add write_tdesc method. * xml-tdesc.c (target_fetch_description_xml): New function. * xml-tdesc.h: Add target_fetch_description_xml prototype.
This commit is contained in:
parent
9f6a71b4bf
commit
18d3cec54e
7 changed files with 101 additions and 0 deletions
|
@ -630,3 +630,33 @@ target_read_description_xml (struct target_ops *ops)
|
|||
|
||||
return tdesc;
|
||||
}
|
||||
|
||||
/* Fetches an XML target description using OPS, processing
|
||||
includes, but not parsing it. Used to dump whole tdesc
|
||||
as a single XML file. */
|
||||
|
||||
char *
|
||||
target_fetch_description_xml (struct target_ops *ops)
|
||||
{
|
||||
struct target_desc *tdesc;
|
||||
char *tdesc_str;
|
||||
char *expanded_text;
|
||||
struct cleanup *back_to;
|
||||
|
||||
tdesc_str = fetch_available_features_from_target ("target.xml", ops);
|
||||
if (tdesc_str == NULL)
|
||||
return NULL;
|
||||
|
||||
back_to = make_cleanup (xfree, tdesc_str);
|
||||
expanded_text = xml_process_xincludes (_("target description"),
|
||||
tdesc_str,
|
||||
fetch_available_features_from_target, ops, 0);
|
||||
do_cleanups (back_to);
|
||||
if (expanded_text == NULL)
|
||||
{
|
||||
warning (_("Could not load XML target description; ignoring"));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return expanded_text;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue