diff options
author | Simon Marchi <simon.marchi@ericsson.com> | 2016-05-30 17:29:39 -0400 |
---|---|---|
committer | Simon Marchi <simon.marchi@ericsson.com> | 2016-06-06 17:10:18 -0400 |
commit | 38b022b4452f996fb5a8598f80d850b594621bcf (patch) | |
tree | 8ed5065415b8788590724df647994b0162e1d203 /gdb/common | |
parent | e2cbcd9156d1606a9f2153aecd93a89fe6e29180 (diff) | |
download | gdb-38b022b4452f996fb5a8598f80d850b594621bcf.zip gdb-38b022b4452f996fb5a8598f80d850b594621bcf.tar.gz gdb-38b022b4452f996fb5a8598f80d850b594621bcf.tar.bz2 |
Add method/format information to =record-started
Eclipse CDT now supports enabling execution recording using two methods
(full and btrace) and both formats for btrace (bts and pt). In the
event that recording is enabled behind the back of the GUI (by the user
on the command line, or a script), we need to know which method/format
are being used, so it can be correctly reflected in the interface. This
patch adds this information to the =record-started async record.
Before:
=record-started,thread-group="i1"
After:
=record-started,thread-group="i1",method="btrace",format="bts"
=record-started,thread-group="i1",method="btrace",format="pt"
=record-started,thread-group="i1",method="full"
The "format" field is only present when the current method supports
multiple formats (only the btrace method as of now).
gdb/ChangeLog:
* NEWS: Mention the new fields in =record-started.
* common/btrace-common.h (btrace_format_short_string): New function
declaration.
* common/btrace-common.c (btrace_format_short_string): New
function.
* mi/mi-interp.c (mi_record_changed): Output method and format
fields in the =record-started record.
* record-btrace.c (record_btrace_open): Adapt record_changed
notification.
* record-full.c (record_full_open): Likewise.
* record.c (cmd_record_stop): Likewise.
gdb/doc/ChangeLog:
* gdb.texinfo (GDB/MI Async Records): Document method and
format fields in =record-started.
* observer.texi (record_changed): Add method and format
parameters.
gdb/testsuite/ChangeLog:
* gdb.mi/mi-record-changed.exp: Adjust =record-started output
matching.
Diffstat (limited to 'gdb/common')
-rw-r--r-- | gdb/common/btrace-common.c | 20 | ||||
-rw-r--r-- | gdb/common/btrace-common.h | 3 |
2 files changed, 23 insertions, 0 deletions
diff --git a/gdb/common/btrace-common.c b/gdb/common/btrace-common.c index eba3979..90aef76 100644 --- a/gdb/common/btrace-common.c +++ b/gdb/common/btrace-common.c @@ -43,6 +43,26 @@ btrace_format_string (enum btrace_format format) /* See btrace-common.h. */ +const char * +btrace_format_short_string (enum btrace_format format) +{ + switch (format) + { + case BTRACE_FORMAT_NONE: + return "unknown"; + + case BTRACE_FORMAT_BTS: + return "bts"; + + case BTRACE_FORMAT_PT: + return "pt"; + } + + internal_error (__FILE__, __LINE__, _("Unknown branch trace format")); +} + +/* See btrace-common.h. */ + void btrace_data_init (struct btrace_data *data) { diff --git a/gdb/common/btrace-common.h b/gdb/common/btrace-common.h index ad208cd..d702bb8 100644 --- a/gdb/common/btrace-common.h +++ b/gdb/common/btrace-common.h @@ -214,6 +214,9 @@ enum btrace_error /* Return a string representation of FORMAT. */ extern const char *btrace_format_string (enum btrace_format format); +/* Return an abbreviation string representation of FORMAT. */ +extern const char *btrace_format_short_string (enum btrace_format format); + /* Initialize DATA. */ extern void btrace_data_init (struct btrace_data *data); |