From patchwork Wed Dec 10 20:16:43 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Marchi X-Patchwork-Id: 4161 Received: (qmail 506 invoked by alias); 10 Dec 2014 20:16:48 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 495 invoked by uid 89); 10 Dec 2014 20:16:47 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.0 required=5.0 tests=AWL, BAYES_00, SPF_PASS autolearn=ham version=3.3.2 X-HELO: usevmg21.ericsson.net Received: from usevmg21.ericsson.net (HELO usevmg21.ericsson.net) (198.24.6.65) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Wed, 10 Dec 2014 20:16:46 +0000 Received: from EUSAAHC006.ericsson.se (Unknown_Domain [147.117.188.90]) by usevmg21.ericsson.net (Symantec Mail Security) with SMTP id 80.F8.25146.89D48845; Wed, 10 Dec 2014 14:41:45 +0100 (CET) Received: from [142.133.110.254] (147.117.188.8) by smtps-am.internal.ericsson.com (147.117.188.90) with Microsoft SMTP Server (TLS) id 14.3.195.1; Wed, 10 Dec 2014 15:16:43 -0500 Message-ID: <5488AA2B.3050506@ericsson.com> Date: Wed, 10 Dec 2014 15:16:43 -0500 From: Simon Marchi User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: Pedro Alves , Subject: Re: [PATCH v5] Introduce target_is_gdbserver References: <1411485577-25675-1-git-send-email-simon.marchi@ericsson.com> <5480912B.5090702@redhat.com> <5481FAB2.9070105@ericsson.com> <54889CDA.3070300@redhat.com> In-Reply-To: <54889CDA.3070300@redhat.com> X-IsSubscribed: yes On 2014-12-10 02:19 PM, Pedro Alves wrote: > On 12/05/2014 06:34 PM, Simon Marchi wrote: > >> diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp >> index a29b661..b420e00 100644 >> --- a/gdb/testsuite/lib/gdb.exp >> +++ b/gdb/testsuite/lib/gdb.exp >> @@ -5004,5 +5004,30 @@ proc capture_command_output { command prefix } { >> return $output_string >> } >> >> +# Return 1 if the current remote target is an instance of our GDBserver, 0 >> +# otherwise. Return -1 if there was an error and we can't tell. >> + >> +gdb_caching_proc target_is_gdbserver { >> + global gdb_prompt >> + >> + set is_gdbserver -1 >> + set test "Probing for GDBserver" >> + >> + gdb_test_multiple "monitor help" $test { >> + -re "The following monitor commands are supported.*Quit GDBserver.*$gdb_prompt $" { >> + set is_gdbserver 1 >> + } >> + -re "$gdb_prompt $" { >> + set is_gdbserver 0 >> + } >> + } >> + >> + if { $is_gdbserver == -1 } { >> + verbose -log "Unable to tell whether we are using GDBserver or not." >> + } >> + >> + return $is_gdbserver >> +} >> + > > I think it'd be nice to have this close to gdb_is_target_remote. > How about moving it just below that one? > > Anyway, this is OK. Please push. > > Thanks, > Pedro Alves Aight, moved and pushed: From 0a46d518c7565be02e544ab508f8b5a99b1b5192 Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Wed, 10 Dec 2014 15:12:17 -0500 Subject: [PATCH] Introduce target_is_gdbserver This patch introduces a function in gdbserver-support.exp to find out whether the current target is GDBserver. The code was inspired from gdb.trace/qtro.exp, so it replaces the code there by a call to the new function. gdb/testsuite/ChangeLog: * gdb.trace/qtro.exp: Replace gdbserver detection code by... * lib/gdb.exp (target_is_gdbserver): New procedure. --- gdb/testsuite/ChangeLog | 5 +++++ gdb/testsuite/gdb.trace/qtro.exp | 13 +------------ gdb/testsuite/lib/gdb.exp | 25 +++++++++++++++++++++++++ 3 files changed, 31 insertions(+), 12 deletions(-) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 0e973f7..4abd097 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-12-10 Simon Marchi + + * gdb.trace/qtro.exp: Replace gdbserver detection code by... + * lib/gdb.exp (target_is_gdbserver): New procedure. + 2014-12-08 Doug Evans * gdb.python/py-objfile.exp: Add tests for objfile.owner. diff --git a/gdb/testsuite/gdb.trace/qtro.exp b/gdb/testsuite/gdb.trace/qtro.exp index 22b5051..d8ffc40 100644 --- a/gdb/testsuite/gdb.trace/qtro.exp +++ b/gdb/testsuite/gdb.trace/qtro.exp @@ -98,18 +98,7 @@ if { $traceframe_info_supported == -1 } { } # Check whether we're testing with our own GDBserver. -set is_gdbserver -1 -set test "probe for GDBserver" -gdb_test_multiple "monitor help" $test { - -re "The following monitor commands are supported.*debug-hw-points.*remote-debug.*GDBserver.*$gdb_prompt $" { - set is_gdbserver 1 - pass $test - } - -re "$gdb_prompt $" { - set is_gdbserver 0 - pass $test - } -} +set is_gdbserver [target_is_gdbserver] if { $is_gdbserver == -1 } { return -1 } diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index a29b661..609f22f 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -2537,6 +2537,31 @@ proc gdb_is_target_remote {} { return 0 } +# Return 1 if the current remote target is an instance of our GDBserver, 0 +# otherwise. Return -1 if there was an error and we can't tell. + +gdb_caching_proc target_is_gdbserver { + global gdb_prompt + + set is_gdbserver -1 + set test "Probing for GDBserver" + + gdb_test_multiple "monitor help" $test { + -re "The following monitor commands are supported.*Quit GDBserver.*$gdb_prompt $" { + set is_gdbserver 1 + } + -re "$gdb_prompt $" { + set is_gdbserver 0 + } + } + + if { $is_gdbserver == -1 } { + verbose -log "Unable to tell whether we are using GDBserver or not." + } + + return $is_gdbserver +} + set compiler_info "unknown" set gcc_compiled 0 set hp_cc_compiler 0