Message ID | 20150415135555.GA18079@blade.nx |
---|---|
State | Superseded |
Headers |
Received: (qmail 52857 invoked by alias); 15 Apr 2015 13:56:02 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: <gdb-patches.sourceware.org> List-Unsubscribe: <mailto:gdb-patches-unsubscribe-##L=##H@sourceware.org> List-Subscribe: <mailto:gdb-patches-subscribe@sourceware.org> List-Archive: <http://sourceware.org/ml/gdb-patches/> List-Post: <mailto:gdb-patches@sourceware.org> List-Help: <mailto:gdb-patches-help@sourceware.org>, <http://sourceware.org/ml/#faqs> Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 52845 invoked by uid 89); 15 Apr 2015 13:56:02 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.6 required=5.0 tests=AWL, BAYES_00, KAM_LAZY_DOMAIN_SECURITY, SPF_HELO_PASS, T_RP_MATCHES_RCVD autolearn=no version=3.3.2 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Wed, 15 Apr 2015 13:56:00 +0000 Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id t3FDtvgG030059 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Wed, 15 Apr 2015 09:55:57 -0400 Received: from blade.nx (ovpn-116-95.ams2.redhat.com [10.36.116.95]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t3FDtuc8032195; Wed, 15 Apr 2015 09:55:56 -0400 Received: by blade.nx (Postfix, from userid 1000) id 910C9263FB7; Wed, 15 Apr 2015 14:55:55 +0100 (BST) Date: Wed, 15 Apr 2015 14:55:55 +0100 From: Gary Benson <gbenson@redhat.com> To: Pedro Alves <palves@redhat.com>, Eli Zaretskii <eliz@gnu.org> Cc: gdb-patches@sourceware.org Subject: Re: [PATCH 7/7] Access executable from remote system when first inferior appears Message-ID: <20150415135555.GA18079@blade.nx> References: <1427887341-31819-1-git-send-email-gbenson@redhat.com> <1427887341-31819-8-git-send-email-gbenson@redhat.com> <552E3C6B.2090300@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <552E3C6B.2090300@redhat.com> X-IsSubscribed: yes |
Commit Message
Gary Benson
April 15, 2015, 1:55 p.m. UTC
Pedro Alves wrote: > On 04/01/2015 12:22 PM, Gary Benson wrote: > > This commit modifies remote_add_inferior to take an extra argument > > try_open_exec. If this is nonzero, remote_add_inferior will > > attempt to open this inferior's executable as the main executable > > if no main executable is open already. Callers are updated > > appropriately. > > > > One testcase required updating as a result of this commit. The > > test checked that GDB's "info files" command does not crash if no > > main executable is open, and relied on GDB's inability to access > > the main executable over the remote protocol. The test was > > updated to inhibit this new behavior. > > So this is significant user-visible change too. I think it deserves > an example in the commit log, and a NEWS entry. The manual should > probably be updated to explain/mention this too. We already mention > something like this in the "attach" docs: > > "When you use @code{attach}, the debugger finds the program running in > the process first (...)" How about these?
Comments
Gary Benson wrote: > Pedro Alves wrote: > > On 04/01/2015 12:22 PM, Gary Benson wrote: > > > This commit modifies remote_add_inferior to take an extra argument > > > try_open_exec. If this is nonzero, remote_add_inferior will > > > attempt to open this inferior's executable as the main executable > > > if no main executable is open already. Callers are updated > > > appropriately. > > > > > > One testcase required updating as a result of this commit. The > > > test checked that GDB's "info files" command does not crash if no > > > main executable is open, and relied on GDB's inability to access > > > the main executable over the remote protocol. The test was > > > updated to inhibit this new behavior. > > > > So this is significant user-visible change too. I think it deserves > > an example in the commit log, and a NEWS entry. The manual should > > probably be updated to explain/mention this too. We already mention > > something like this in the "attach" docs: > > > > "When you use @code{attach}, the debugger finds the program running in > > the process first (...)" > > How about these? > > diff --git a/gdb/NEWS b/gdb/NEWS > index b11a6fc..e88210f 100644 > --- a/gdb/NEWS > +++ b/gdb/NEWS > @@ -36,6 +36,11 @@ > the operating system) when starting processes remotely, and when > attaching to already-running local or remote processes. > > +* GDB now supports automatic location and retrieval of executable > + files from remote targets. Remote debugging can now be initiated > + using only a "target remote" or "target extended-remote" command > + (no "set sysroot" or "file" commands are required). > + > * Python Scripting > > ** gdb.Objfile objects have a new attribute "username", > diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo > index 964f9c4..4f9c21b 100644 > --- a/gdb/doc/gdb.texinfo > +++ b/gdb/doc/gdb.texinfo > @@ -2531,7 +2531,8 @@ programs on bare-board targets that lack an operating system. You must > also have permission to send the process a signal. > > When you use @code{attach}, the debugger finds the program running in > -the process first by looking in the current working directory, then (if > +the process first by querying the operating system. If this fails, > +@value{GDBN} looks first in the current working directory, then (if > the program is not found) by using the source file search path > (@pxref{Source Path, ,Specifying Source Directories}). You can also use > the @code{file} command to load the program. @xref{Files, ,Commands to Also, I added this to the commit message: With this commit, remote debugging can now be initiated using only a "target remote" or "target extended-remote" command; no "set sysroot" or "file" commands are required, e.g. bash$ gdb -q (gdb) target remote | gdbserver - /bin/sh Remote debugging using | gdbserver - /bin/sh Process /bin/sh created; pid = 32166 stdin/stdout redirected Remote debugging using stdio Reading symbols from target:/bin/bash... Is that ok? Cheers, Gary
On 04/15/2015 02:55 PM, Gary Benson wrote: > Pedro Alves wrote: >> On 04/01/2015 12:22 PM, Gary Benson wrote: >>> This commit modifies remote_add_inferior to take an extra argument >>> try_open_exec. If this is nonzero, remote_add_inferior will >>> attempt to open this inferior's executable as the main executable >>> if no main executable is open already. Callers are updated >>> appropriately. >>> >>> One testcase required updating as a result of this commit. The >>> test checked that GDB's "info files" command does not crash if no >>> main executable is open, and relied on GDB's inability to access >>> the main executable over the remote protocol. The test was >>> updated to inhibit this new behavior. >> >> So this is significant user-visible change too. I think it deserves >> an example in the commit log, and a NEWS entry. The manual should >> probably be updated to explain/mention this too. We already mention >> something like this in the "attach" docs: >> >> "When you use @code{attach}, the debugger finds the program running in >> the process first (...)" > > How about these? > > diff --git a/gdb/NEWS b/gdb/NEWS > index b11a6fc..e88210f 100644 > --- a/gdb/NEWS > +++ b/gdb/NEWS > @@ -36,6 +36,11 @@ > the operating system) when starting processes remotely, and when > attaching to already-running local or remote processes. > > +* GDB now supports automatic location and retrieval of executable > + files from remote targets. Remote debugging can now be initiated > + using only a "target remote" or "target extended-remote" command > + (no "set sysroot" or "file" commands are required). LGTM, though it should probably say See "New remote packets" below/above. too, to hint that this needs remote target support. It's what we did in the range-stepping NEWS entry, for example. Thanks, Pedro Alves
On 04/15/2015 02:55 PM, Gary Benson wrote: > Pedro Alves wrote: >> > On 04/01/2015 12:22 PM, Gary Benson wrote: >>> > > This commit modifies remote_add_inferior to take an extra argument >>> > > try_open_exec. If this is nonzero, remote_add_inferior will >>> > > attempt to open this inferior's executable as the main executable >>> > > if no main executable is open already. Callers are updated >>> > > appropriately. >>> > > >>> > > One testcase required updating as a result of this commit. The >>> > > test checked that GDB's "info files" command does not crash if no >>> > > main executable is open, and relied on GDB's inability to access >>> > > the main executable over the remote protocol. The test was >>> > > updated to inhibit this new behavior. >> > >> > So this is significant user-visible change too. I think it deserves >> > an example in the commit log, and a NEWS entry. The manual should >> > probably be updated to explain/mention this too. We already mention >> > something like this in the "attach" docs: >> > >> > "When you use @code{attach}, the debugger finds the program running in >> > the process first (...)" > How about these? > Missed the manual bit: > > ** gdb.Objfile objects have a new attribute "username", > diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo > index 964f9c4..4f9c21b 100644 > --- a/gdb/doc/gdb.texinfo > +++ b/gdb/doc/gdb.texinfo > @@ -2531,7 +2531,8 @@ programs on bare-board targets that lack an operating system. You must > also have permission to send the process a signal. > > When you use @code{attach}, the debugger finds the program running in > -the process first by looking in the current working directory, then (if > +the process first by querying the operating system. If this fails, > +@value{GDBN} looks first in the current working directory, then (if > the program is not found) by using the source file search path > (@pxref{Source Path, ,Specifying Source Directories}). You can also use > the @code{file} command to load the program. @xref{Files, ,Commands to This looks right, but it's not what I was thinking. The "attach" reference was just to give an example of where we document that gdb find the program for the user. I think we should say something like that in the "target remote" documentation too. Thanks, Pedro Alves
On 04/15/2015 03:05 PM, Gary Benson wrote: > Also, I added this to the commit message: > > With this commit, remote debugging can now be initiated using only a > "target remote" or "target extended-remote" command; no "set sysroot" > or "file" commands are required, e.g. > > bash$ gdb -q > (gdb) target remote | gdbserver - /bin/sh > Remote debugging using | gdbserver - /bin/sh > Process /bin/sh created; pid = 32166 > stdin/stdout redirected > Remote debugging using stdio > Reading symbols from target:/bin/bash... > > Is that ok? > OK. Thanks, Pedro Alves
> Date: Wed, 15 Apr 2015 14:55:55 +0100 > From: Gary Benson <gbenson@redhat.com> > Cc: gdb-patches@sourceware.org > > How about these? Fine with me, thanks.
Pedro Alves wrote: > On 04/15/2015 02:55 PM, Gary Benson wrote: > > diff --git a/gdb/NEWS b/gdb/NEWS > > index b11a6fc..e88210f 100644 > > --- a/gdb/NEWS > > +++ b/gdb/NEWS > > @@ -36,6 +36,11 @@ > > > > +* GDB now supports automatic location and retrieval of executable > > + files from remote targets. Remote debugging can now be initiated > > + using only a "target remote" or "target extended-remote" command > > + (no "set sysroot" or "file" commands are required). > > LGTM, though it should probably say > > See "New remote packets" below/above. > > too, to hint that this needs remote target support. It's what we > did in the range-stepping NEWS entry, for example. Ok, I added it. Cheers, Gary
diff --git a/gdb/NEWS b/gdb/NEWS index b11a6fc..e88210f 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -36,6 +36,11 @@ the operating system) when starting processes remotely, and when attaching to already-running local or remote processes. +* GDB now supports automatic location and retrieval of executable + files from remote targets. Remote debugging can now be initiated + using only a "target remote" or "target extended-remote" command + (no "set sysroot" or "file" commands are required). + * Python Scripting ** gdb.Objfile objects have a new attribute "username", diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index 964f9c4..4f9c21b 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -2531,7 +2531,8 @@ programs on bare-board targets that lack an operating system. You must also have permission to send the process a signal. When you use @code{attach}, the debugger finds the program running in -the process first by looking in the current working directory, then (if +the process first by querying the operating system. If this fails, +@value{GDBN} looks first in the current working directory, then (if the program is not found) by using the source file search path (@pxref{Source Path, ,Specifying Source Directories}). You can also use the @code{file} command to load the program. @xref{Files, ,Commands to