From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7000 invoked by alias); 1 Sep 2009 04:02:43 -0000 Received: (qmail 6579 invoked by uid 22791); 1 Sep 2009 04:02:42 -0000 X-SWARE-Spam-Status: No, hits=-2.3 required=5.0 tests=AWL,BAYES_00,SARE_SUB_OBFU_Q1 X-Spam-Check-By: sourceware.org Received: from smtp-outbound-1.vmware.com (HELO smtp-outbound-1.vmware.com) (65.115.85.69) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 01 Sep 2009 04:02:36 +0000 Received: from mailhost2.vmware.com (mailhost2.vmware.com [10.16.67.167]) by smtp-outbound-1.vmware.com (Postfix) with ESMTP id 9A2F5130A6; Mon, 31 Aug 2009 21:02:33 -0700 (PDT) Received: from [10.20.94.141] (msnyder-server.eng.vmware.com [10.20.94.141]) by mailhost2.vmware.com (Postfix) with ESMTP id 64B908E88C; Mon, 31 Aug 2009 21:02:33 -0700 (PDT) Message-ID: <4A9C9CD2.7030207@vmware.com> Date: Tue, 01 Sep 2009 04:02:00 -0000 From: Michael Snyder User-Agent: Thunderbird 1.5.0.12 (X11/20080411) MIME-Version: 1.0 To: Hui Zhu CC: "gdb-patches@sourceware.org" , Jakob Engblom , Pedro Alves , Greg Law Subject: Re: [PATCH] Add 'reverse' capability query to remote protocol (qSupported). References: <4A9C2AD3.5070904@vmware.com> In-Reply-To: Content-Type: multipart/mixed; boundary="------------060303040406090508000607" 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: 2009-09/txt/msg00005.txt.bz2 This is a multi-part message in MIME format. --------------060303040406090508000607 Content-Type: text/plain; charset=iso-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-length: 253 Hui Zhu wrote: > Should we need update them? > static int remote_target_can_reverse = 1; > > static int > remote_can_execute_reverse (void) > { > return remote_target_can_reverse; > } Right! I forgot about it -- thanks for reminding me. New diff. --------------060303040406090508000607 Content-Type: text/plain; name="qStatus-2.txt" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="qStatus-2.txt" Content-length: 2620 2009-08-31 Michael Snyder * remote.c (PACKET_bc, PACKET_bs): New enums. (remote_protocol_features): Add ReverseStep, ReverseContinue. (remote_resume): Check for reverse capability. (remote_can_execute_reverse): Use packet config variables. (_initialize_remote): Add packet config for "bs" and "bc" packets. Index: remote.c =================================================================== RCS file: /cvs/src/src/gdb/remote.c,v retrieving revision 1.370 diff -u -p -r1.370 remote.c --- remote.c 18 Aug 2009 16:17:16 -0000 1.370 +++ remote.c 1 Sep 2009 04:01:04 -0000 @@ -1000,6 +1000,8 @@ enum { PACKET_qXfer_siginfo_write, PACKET_qAttached, PACKET_ConditionalTracepoints, + PACKET_bc, + PACKET_bs, PACKET_MAX }; @@ -3051,6 +3053,10 @@ static struct protocol_feature remote_pr PACKET_qXfer_siginfo_write }, { "ConditionalTracepoints", PACKET_DISABLE, remote_cond_tracepoint_feature, PACKET_ConditionalTracepoints }, + { "ReverseContinue", PACKET_DISABLE, remote_supported_packet, + PACKET_bc }, + { "ReverseStep", PACKET_DISABLE, remote_supported_packet, + PACKET_bs }, }; static void @@ -3818,6 +3824,14 @@ remote_resume (struct target_ops *ops, if (info_verbose && siggnal != TARGET_SIGNAL_0) warning (" - Can't pass signal %d to target in reverse: ignored.\n", siggnal); + + if (step && + remote_protocol_packets[PACKET_bs].support == PACKET_DISABLE) + error ("Remote reverse-step not supported."); + if (!step && + remote_protocol_packets[PACKET_bc].support == PACKET_DISABLE) + error ("Remote reverse-continue not supported."); + strcpy (buf, step ? "bs" : "bc"); } else if (siggnal != TARGET_SIGNAL_0) @@ -8730,12 +8744,14 @@ remote_command (char *args, int from_tty help_list (remote_cmdlist, "remote ", -1, gdb_stdout); } -static int remote_target_can_reverse = 1; - static int remote_can_execute_reverse (void) { - return remote_target_can_reverse; + if (remote_protocol_packets[PACKET_bs].support == PACKET_ENABLE + || remote_protocol_packets[PACKET_bc].support == PACKET_ENABLE) + return 1; + else + return 0; } static int @@ -9165,6 +9181,12 @@ Show the maximum size of the address (in "qGetTLSAddr", "get-thread-local-storage-address", 0); + add_packet_config_cmd (&remote_protocol_packets[PACKET_bc], + "bc", "reverse-continue", 0); + + add_packet_config_cmd (&remote_protocol_packets[PACKET_bs], + "bs", "reverse-step", 0); + add_packet_config_cmd (&remote_protocol_packets[PACKET_qSupported], "qSupported", "supported-packets", 0); --------------060303040406090508000607--