summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Metzger <markus.t.metzger@intel.com>2016-06-10 11:18:08 +0200
committerMarkus Metzger <markus.t.metzger@intel.com>2016-07-06 08:31:20 +0200
commite0139aa5f27ebef0bd92a182beca659e169560ef (patch)
tree69da51cb2374f87a837d23fee16b219b6e6f4816
parent42d940118a6372d6e85f71a54fed75fdf5c606bd (diff)
downloadbinutils-gdb-e0139aa5f27ebef0bd92a182beca659e169560ef.tar.gz
btrace: check if we're replaying when setting the replay position to the end
When setting the replay position to the end there is nothing to do if we are not replaying. Check that and return immediately. This avoids printing the current location if we're already at the end. Signed-off-by: Markus Metzger <markus.t.metzger@intel.com> gdb/ * record-btrace.c (record_btrace_set_replay): Check if replaying. testsuite/ * gdb.btrace/record_goto.exp: Test "record goto end" twice. Change-Id: I4878892408bab293261bbea40d6af28440ff3ec5
-rw-r--r--gdb/record-btrace.c7
-rw-r--r--gdb/testsuite/gdb.btrace/record_goto.exp3
2 files changed, 9 insertions, 1 deletions
diff --git a/gdb/record-btrace.c b/gdb/record-btrace.c
index 24594a96cfc..80d9f04a5e1 100644
--- a/gdb/record-btrace.c
+++ b/gdb/record-btrace.c
@@ -2704,7 +2704,12 @@ record_btrace_set_replay (struct thread_info *tp,
btinfo = &tp->btrace;
if (it == NULL || it->function == NULL)
- record_btrace_stop_replaying (tp);
+ {
+ if (!btrace_is_replaying (tp))
+ return;
+
+ record_btrace_stop_replaying (tp);
+ }
else
{
if (btinfo->replay == NULL)
diff --git a/gdb/testsuite/gdb.btrace/record_goto.exp b/gdb/testsuite/gdb.btrace/record_goto.exp
index 50b259adb4f..45df26148c8 100644
--- a/gdb/testsuite/gdb.btrace/record_goto.exp
+++ b/gdb/testsuite/gdb.btrace/record_goto.exp
@@ -160,6 +160,9 @@ gdb_test "record instruction-history -" [multi_line \
# check that we can go to the end of the trace
gdb_test "record goto end" ".*main \\(\\) at record_goto.c:50.*"
+# check that we don't repeat the current location if we go to the end again
+gdb_test_no_output "record goto end" "goto end again"
+
# check that we're filling up the context correctly
gdb_test "record function-call-history /ci" [multi_line \
"14\t fun2\tinst 35,36" \