diff options
author | Markus Metzger <markus.t.metzger@intel.com> | 2013-11-28 16:39:12 +0100 |
---|---|---|
committer | Markus Metzger <markus.t.metzger@intel.com> | 2015-02-09 09:42:28 +0100 |
commit | d33501a51f46193387ff2d101752a9a878202f82 (patch) | |
tree | fbe786f422bb7045cc2c626314076e41ad3a346b /gdb/common | |
parent | f4abbc168227003a4836dd1a5dd558f40be96372 (diff) | |
download | gdb-d33501a51f46193387ff2d101752a9a878202f82.zip gdb-d33501a51f46193387ff2d101752a9a878202f82.tar.gz gdb-d33501a51f46193387ff2d101752a9a878202f82.tar.bz2 |
record-btrace: add bts buffer size configuration option
Allow the size of the branch trace ring buffer to be defined by the
user. The specified buffer size will be used when BTS tracing is
enabled for new threads.
The obtained buffer size may differ from the requested size. The
actual buffer size for the current thread is shown in the "info record"
command.
Bigger buffers mean longer traces, but also longer processing time.
2015-02-09 Markus Metzger <markus.t.metzger@intel.com>
* btrace.c (parse_xml_btrace_conf_bts): Add size.
(btrace_conf_bts_attributes): New.
(btrace_conf_children): Add attributes.
* common/btrace-common.h (btrace_config_bts): New.
(btrace_config)<bts>: New.
(btrace_config): Update comment.
* nat/linux-btrace.c (linux_enable_btrace, linux_enable_bts):
Use config.
* features/btrace-conf.dtd: Increment version. Add size
attribute to bts element.
* record-btrace.c (set_record_btrace_bts_cmdlist,
show_record_btrace_bts_cmdlist): New.
(record_btrace_adjust_size, record_btrace_print_bts_conf,
record_btrace_print_conf, cmd_set_record_btrace_bts,
cmd_show_record_btrace_bts): New.
(record_btrace_info): Call record_btrace_print_conf.
(_initialize_record_btrace): Add commands.
* remote.c: Add PACKET_Qbtrace_conf_bts_size enum.
(remote_protocol_features): Add Qbtrace-conf:bts:size packet.
(btrace_sync_conf): Synchronize bts size.
(_initialize_remote): Add Qbtrace-conf:bts:size packet.
* NEWS: Announce new commands and new packets.
doc/
* gdb.texinfo (Branch Trace Configuration Format): Add size.
(Process Record and Replay): Describe new set|show commands.
(General Query Packets): Describe Qbtrace-conf:bts:size packet.
testsuite/
* gdb.btrace/buffer-size: New.
gdbserver/
* linux-low.c (linux_low_btrace_conf): Print size.
* server.c (handle_btrace_conf_general_set): New.
(hanle_general_set): Call handle_btrace_conf_general_set.
(handle_query): Report Qbtrace-conf:bts:size as supported.
Diffstat (limited to 'gdb/common')
-rw-r--r-- | gdb/common/btrace-common.h | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/gdb/common/btrace-common.h b/gdb/common/btrace-common.h index 1df5821..bb15109 100644 --- a/gdb/common/btrace-common.h +++ b/gdb/common/btrace-common.h @@ -61,15 +61,28 @@ enum btrace_format BTRACE_FORMAT_BTS }; +/* A BTS configuration. */ + +struct btrace_config_bts +{ + /* The size of the branch trace buffer in bytes. */ + unsigned int size; +}; + /* A branch tracing configuration. This describes the requested configuration as well as the actually - obtained configuration. */ + obtained configuration. + We describe the configuration for all different formats so we can + easily switch between formats. */ struct btrace_config { /* The branch tracing format. */ enum btrace_format format; + + /* The BTS format configuration. */ + struct btrace_config_bts bts; }; /* Branch trace in BTS format. */ |