From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14180 invoked by alias); 22 Feb 2012 20:25:32 -0000 Received: (qmail 14165 invoked by uid 22791); 22 Feb 2012 20:25:30 -0000 X-SWARE-Spam-Status: No, hits=-6.8 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI,SPF_HELO_PASS,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 22 Feb 2012 20:25:17 +0000 Received: from int-mx01.intmail.prod.int.phx2.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id q1MKP8u0006314 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Wed, 22 Feb 2012 15:25:08 -0500 Received: from [127.0.0.1] (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx01.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id q1MKP7SC023935; Wed, 22 Feb 2012 15:25:07 -0500 Message-ID: <4F454F22.3000007@redhat.com> Date: Wed, 22 Feb 2012 20:41:00 -0000 From: Pedro Alves User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20120131 Thunderbird/10.0 MIME-Version: 1.0 To: Yao Qi CC: Eli Zaretskii , gdb-patches@sourceware.org Subject: Re: [PATCH 4/9] agent doc References: <1329447300-18841-1-git-send-email-yao@codesourcery.com> <1329447300-18841-5-git-send-email-yao@codesourcery.com> <83booxwv0m.fsf@gnu.org> <4F3E5251.1030202@codesourcery.com> <83r4xsuxft.fsf@gnu.org> <4F41B2B1.2040303@codesourcery.com> <4F43D3E3.8070307@redhat.com> <4F4444C0.3050402@codesourcery.com> In-Reply-To: <4F4444C0.3050402@codesourcery.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit 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: 2012-02/txt/msg00488.txt.bz2 On 02/22/2012 01:28 AM, Yao Qi wrote: > On 02/22/2012 01:26 AM, Pedro Alves wrote: >> > From agentexpr.texi: >> > >> > When GDB is debugging a remote target, the GDB @dfn{agent} code running >> > on the target computes the values of the expressions itself. To avoid >> > having a full symbolic expression evaluator on the agent, GDB translates >> > expressions in the source language into a simpler bytecode language, and >> > then sends the bytecode to the agent; the agent then executes the >> > bytecode, and records the values for GDB to retrieve later. >> > (...) The interpreter is >> > small, and strict limits on the memory and time required to evaluate an >> > expression are easy to determine, making it suitable for use by the >> > debugging agent in real-time applications. >> > >> > So nothing mentioned here about in-process or not. This applies all the >> > same to the agent expression mechinary in GDBserver (tracepoints, etc.). >> > That's an agent as well. "agent" is a very loose term for roughly something >> > that runs on the remote target on GDB's behalf. Can we just drop that >> > explanation? If we name things clearly then that's unnecessary. >> > > I am inclined to leave this explanation there, as it is still useful to > generic term "agent". Hmm, it still seems incorrect in the exact same way. > -When GDB is debugging a remote target, the GDB @dfn{agent} code running > +Although called @dfn{agent expression}, because they originally > +referred to the in-process agent (@pxref{In-Process Agent}), these Still false. Looks unchanged compared to the previous version? > +When @value{GDBN} is debugging, the @value{GDBN} agent code running > on the target computes the values of the expressions itself. To avoid > -having a full symbolic expression evaluator on the agent, GDB translates > -expressions in the source language into a simpler bytecode language, and > -then sends the bytecode to the agent; the agent then executes the > -bytecode, and records the values for GDB to retrieve later. > +having a full symbolic expression evaluator on the agent or remote stub, This is still confused on agent vs in-process agent. The remote stub is an agent as well; it does things for gdb (e.g., GDBserver supports tracepoints). Note the several references to "agent" on this whole paragraph. I suggest really just leave this paragraph as it was. > +@value{GDBN} translates expressions in the source language into a simpler > +bytecode language, and then sends the bytecode to the agent; the agent > +then executes the bytecode, and records the values for @value{GDBN} to > +retrieve later. We lost the intro about tracepoints, so this mention of recording values for gdb to retrieve later is now awkward. -- Pedro Alves