From e0139aa5f27ebef0bd92a182beca659e169560ef Mon Sep 17 00:00:00 2001 From: Markus Metzger Date: Fri, 10 Jun 2016 11:18:08 +0200 Subject: [PATCH] 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 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 --- gdb/record-btrace.c | 7 ++++++- gdb/testsuite/gdb.btrace/record_goto.exp | 3 +++ 2 files changed, 9 insertions(+), 1 deletion(-) 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" \ -- 2.47.2