From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 921 invoked by alias); 9 Mar 2013 03:49:18 -0000 Received: (qmail 869 invoked by uid 22791); 9 Mar 2013 03:49:17 -0000 X-SWARE-Spam-Status: No, hits=-4.6 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,KHOP_THREADED,RCVD_IN_HOSTKARMA_W,RCVD_IN_HOSTKARMA_WL X-Spam-Check-By: sourceware.org Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sat, 09 Mar 2013 03:49:04 +0000 Received: from svr-orw-fem-01.mgc.mentorg.com ([147.34.98.93]) by relay1.mentorg.com with esmtp id 1UEAmN-0003d9-4d from Yao_Qi@mentor.com for gdb-patches@sourceware.org; Fri, 08 Mar 2013 19:49:03 -0800 Received: from SVR-ORW-FEM-03.mgc.mentorg.com ([147.34.97.39]) by svr-orw-fem-01.mgc.mentorg.com over TLS secured channel with Microsoft SMTPSVC(6.0.3790.4675); Fri, 8 Mar 2013 19:49:02 -0800 Received: from qiyao.dyndns.dyndns.org (147.34.91.1) by svr-orw-fem-03.mgc.mentorg.com (147.34.97.39) with Microsoft SMTP Server id 14.1.289.1; Fri, 8 Mar 2013 19:49:01 -0800 From: Yao Qi To: Subject: [PATCH v3 09/15] Check the tstatus output on tfile target Date: Sat, 09 Mar 2013 03:49:00 -0000 Message-ID: <1362800844-27940-10-git-send-email-yao@codesourcery.com> In-Reply-To: <1362800844-27940-1-git-send-email-yao@codesourcery.com> References: <1362800844-27940-1-git-send-email-yao@codesourcery.com> MIME-Version: 1.0 Content-Type: text/plain X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2013-03/txt/msg00404.txt.bz2 There is no reason that the "tstatus" output on tfile target is different from its output on live target (except for "Using a trace file"). In this patch, we capture the output of "tstatus" in live target, and use it to check the "tstatus" output in tfile target. It is quite useful to expose the differences in "tstatus" output and the previous two patches are to fix these differences. gdb/testsuite: 2013-03-08 Yao Qi * gdb.trace/tstatus.exp (run_trace_experiment): Save the output of 'tstatus' into tstatus_output. (top level): Save the trace data to tfile. Read trace file in tfile target. Check the trace status. --- gdb/testsuite/gdb.trace/tstatus.exp | 32 ++++++++++++++++++++++++++++++-- 1 files changed, 30 insertions(+), 2 deletions(-) diff --git a/gdb/testsuite/gdb.trace/tstatus.exp b/gdb/testsuite/gdb.trace/tstatus.exp index 743db91..c105048 100644 --- a/gdb/testsuite/gdb.trace/tstatus.exp +++ b/gdb/testsuite/gdb.trace/tstatus.exp @@ -34,9 +34,12 @@ if ![gdb_target_supports_trace] { return -1 } +set tstatus_output "" + proc run_trace_experiment {} { global gdb_prompt global decimal + global tstatus_output # gdb_test_no_output "set debug remote 1" "" @@ -93,10 +96,12 @@ proc run_trace_experiment {} { set test "tstatus reports trace stop reason" gdb_test_multiple "tstatus" $test { - -re "Trace stopped by a tstop command \\(because I can\\)\..*Trace will stop if GDB disconnects\.\[\r\n\]+Trace user is me me me\.\[\r\n\]+Trace notes: different note\.\[\r\n\]+Not looking at any trace frame\..*\r\n$gdb_prompt $" { + -re "(Trace stopped by a tstop command \\(because I can\\)\..*Trace will stop if GDB disconnects\.\[\r\n\]+Trace user is me me me\.\[\r\n\]+Trace notes: different note\.\[\r\n\]+Not looking at any trace frame\.).*\r\n$gdb_prompt $" { + set tstatus_output $expect_out(1,string) pass $test } - -re "Trace stopped by a tstop command\..*\r\n$gdb_prompt $" { + -re "(Trace stopped by a tstop command\.).*\r\n$gdb_prompt $" { + set tstatus_output $expect_out(1,string) unsupported $test } } @@ -131,3 +136,26 @@ proc test_tracepoints {} { } test_tracepoints + +# Save trace frames to tfile. +gdb_test "tsave tstatus.tf" "Trace data saved to file 'tstatus.tf'.*" + +# Change target to tfile. +set test "change to tfile target" +gdb_test_multiple "target tfile tstatus.tf" "$test" { + -re "A program is being debugged already. Kill it. .y or n. " { + send_gdb "y\n" + exp_continue + } + -re "$gdb_prompt $" { + pass "$test" + } +} + +# Convert "(because I can) to "\(because I can\)" +set tstatus_output [string map {\( \\(} $tstatus_output] +set tstatus_output [string map {\) \\)} $tstatus_output] + +# The status should be identical to the status of live inferior. +gdb_test "tstatus" "Using a trace file\.\r\n${tstatus_output}.*" \ + "tstatus on tfile target" -- 1.7.7.6