aboutsummaryrefslogtreecommitdiff
path: root/gdb/btrace.c
diff options
context:
space:
mode:
authorMarkus Metzger <markus.t.metzger@intel.com>2014-02-03 11:40:50 +0100
committerMarkus Metzger <markus.t.metzger@intel.com>2015-07-02 12:54:20 +0200
commit9be54cae43929ab989fcd44dfcf8d3313a55f7a0 (patch)
tree94df2cf071445b2fc70446451ce78b4cb441cded /gdb/btrace.c
parent010a18a1b12ec6d5219b7e602aa6abe12344dd1a (diff)
downloadgdb-9be54cae43929ab989fcd44dfcf8d3313a55f7a0.zip
gdb-9be54cae43929ab989fcd44dfcf8d3313a55f7a0.tar.gz
gdb-9be54cae43929ab989fcd44dfcf8d3313a55f7a0.tar.bz2
btrace: store raw btrace data
Store the raw branch trace data that has been read from the target. This data can be used for maintenance commands as well as for generating a core file for the "record save" command. gdb/ * btrace.c (btrace_fetch): Append the new trace data. (btrace_clear): Clear the stored trace data. * btrace.h (btrace_thread_info) <data>: New. * common/btrace-common.h (btrace_data_clear) (btrace_data_append): New. * common/btrace-common.c (btrace_data_clear) (btrace_data_append): New.
Diffstat (limited to 'gdb/btrace.c')
-rw-r--r--gdb/btrace.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gdb/btrace.c b/gdb/btrace.c
index 561ee7c..87b2601 100644
--- a/gdb/btrace.c
+++ b/gdb/btrace.c
@@ -1260,6 +1260,10 @@ btrace_fetch (struct thread_info *tp)
/* Compute the trace, provided we have any. */
if (!btrace_data_empty (&btrace))
{
+ /* Store the raw trace data. The stored data will be cleared in
+ btrace_clear, so we always append the new trace. */
+ btrace_data_append (&btinfo->data, &btrace);
+
btrace_clear_history (btinfo);
btrace_compute_ftrace (tp, &btrace);
}
@@ -1296,6 +1300,7 @@ btrace_clear (struct thread_info *tp)
btinfo->end = NULL;
btinfo->ngaps = 0;
+ btrace_data_clear (&btinfo->data);
btrace_clear_history (btinfo);
}