diff options
author | Pedro Alves <palves@redhat.com> | 2011-02-14 11:13:12 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2011-02-14 11:13:12 +0000 |
commit | b3b9301ef4f284b2f2f3dd276cf63600507fe47a (patch) | |
tree | 9bd1640020d2fdb0b3e05644c08fbbf7341e7cfb /gdb/target.h | |
parent | 4e07d55ffbd3d926ab776b2ce3fd13e96d214269 (diff) | |
download | gdb-b3b9301ef4f284b2f2f3dd276cf63600507fe47a.zip gdb-b3b9301ef4f284b2f2f3dd276cf63600507fe47a.tar.gz gdb-b3b9301ef4f284b2f2f3dd276cf63600507fe47a.tar.bz2 |
gdb/
* target.h (struct traceframe_info): Forward declare.
(enum target_object): Add TARGET_OBJECT_TRACEFRAME_INFO.
(struct target_ops) <to_traceframe_info>: New field.
(target_traceframe_info): New.
* target.c (update_current_target): Inherit and default
to_traceframe_info.
* remote.c (PACKET_qXfer_traceframe_info): New.
(remote_protocol_features): Register qXfer:traceframe-info:read.
(remote_xfer_partial): Handle TARGET_OBJECT_TRACEFRAME_INFO.
(remote_traceframe_info): New.
(init_remote_ops): Install it.
(_initialize_remote): Install "set/show remote traceframe-info"
commands.
* tracepoint.h (parse_traceframe_info): Declare.
* tracepoint.c (struct mem_range): New.
(mem_range_s): New typedef.
(struct traceframe_info): New.
(traceframe_info): New global.
(free_traceframe_info): New function.
(clear_traceframe_info): New function.
(start_tracing, tfind_1, set_traceframe_number): Clear traceframe
info.
(build_traceframe_info): New function.
(tfile_traceframe_info): New function.
(init_tfile_ops): Install tfile_traceframe_info.
(traceframe_info_start_memory, free_result): New functions.
(memory_attributes, traceframe_info_elements): New globals.
(parse_traceframe_info, get_traceframe_info): New functions.
* features/traceframe-info.dtd: New file.
* Makefile.in (XMLFILES): Add traceframe-info.dtd.
gdb/gdbserver/
* server.c (handle_qxfer_traceframe_info): New.
(qxfer_packets): Register "traceframe-info".
(handle_query): Report support for qXfer:traceframe-info:read+.
* tracepoint.c (match_blocktype): New.
(traceframe_find_block_type): Rename to ...
(traceframe_walk_blocks): ... this. Add callback filter argument,
and use it.
(traceframe_find_block_type): New, reimplemented on top of
traceframe_walk_blocks.
(build_traceframe_info_xml): New.
(traceframe_read_info): New.
* server.h (traceframe_read_info): Declare.
gdb/doc/
* gdb.texinfo (Remote Configuration): Mention set/show remote
traceframe-info.
(Tools/Packages Optional for Building GDB): Mention that expat is
used for traceframe info.
(Remote Protocol) <Menu>: Add "Traceframe Info Format".
(General Query Packets) <qSupported>: Describe the
qXfer:traceframe-info:read feature.
(qXfer::read): Describe qXfer:traceframe-info:read.
(Traceframe Info Format): New section.
Diffstat (limited to 'gdb/target.h')
-rw-r--r-- | gdb/target.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/gdb/target.h b/gdb/target.h index 4625d52..e856dde 100644 --- a/gdb/target.h +++ b/gdb/target.h @@ -36,7 +36,7 @@ struct trace_status; struct uploaded_tsv; struct uploaded_tp; struct static_tracepoint_marker; - +struct traceframe_info; struct expression; /* This include file defines the interface between the main part @@ -275,6 +275,8 @@ enum target_object The size of the data transfered is always 8 bytes (the size of an address on ia64). */ TARGET_OBJECT_HPUX_SOLIB_GOT, + /* Traceframe info, in XML format. */ + TARGET_OBJECT_TRACEFRAME_INFO, /* Possible future objects: TARGET_OBJECT_FILE, ... */ }; @@ -736,6 +738,12 @@ struct target_ops VEC(static_tracepoint_marker_p) *(*to_static_tracepoint_markers_by_strid) (const char *id); + /* Return a traceframe info object describing the current + traceframe's contents. This method should not cache data; + higher layers take care of caching, invalidating, and + re-fetching when necessary. */ + struct traceframe_info *(*to_traceframe_info) (void); + int to_magic; /* Need sub-structure for target machine related rather than comm related? */ @@ -1458,6 +1466,9 @@ extern int target_search_memory (CORE_ADDR start_addr, #define target_static_tracepoint_markers_by_strid(marker_id) \ (*current_target.to_static_tracepoint_markers_by_strid) (marker_id) +#define target_traceframe_info() \ + (*current_target.to_traceframe_info) () + /* Command logging facility. */ #define target_log_command(p) \ |