From: Sergio Durigan Junior <sergiodj@redhat.com>
To: Pedro Alves <palves@redhat.com>
Cc: GDB Patches <gdb-patches@sourceware.org>
Subject: Re: [PATCH v2 5/5] Extend "set cwd" to work on gdbserver
Date: Thu, 21 Sep 2017 01:37:00 -0000 [thread overview]
Message-ID: <87y3p8n85s.fsf@redhat.com> (raw)
In-Reply-To: <87shfh3p8y.fsf@redhat.com> (Sergio Durigan Junior's message of "Wed, 20 Sep 2017 19:49:01 -0400")
On Wednesday, September 20 2017, I wrote:
> On Wednesday, September 20 2017, Pedro Alves wrote:
>
>> On 09/19/2017 05:28 AM, Sergio Durigan Junior wrote:
>>> This is the "natural" extension necessary for the "set cwd" command
>>> (and the whole "set the inferior's cwd" logic) to work on gdbserver.
>>>
>>> The idea here is to have a new remote packet, QSetWorkingDir (name
>>> adopted from LLDB's extension to the RSP, as can be seen at
>>> <https://raw.githubusercontent.com/llvm-mirror/lldb/master/docs/lldb-gdb-remote.txt>),
>>> which sends an hex-encoded string representing the working directory
>>> that gdbserver is supposed to cd into before executing the inferior.
>>> The good thing is that since this feature is already implemented on
>>> nat/fork-inferior.c, all gdbserver has to do is to basically implement
>>> "set_inferior_cwd" and call it whenever such packet arrives.
>>>
>>> Aside from that, the patch consists basically of updates to the
>>> testcase (making it available on remote targets) the documentation.
>>>
>>> No regressions found.
>>>
>>> gdb/ChangeLog:
>>> yyyy-mm-dd Sergio Durigan Junior <sergiodj@redhat.com>
>>>
>>> * NEWS (Changes since GDB 8.0): Add entry about new
>>> 'set-cwd-on-gdbserver' feature.
>>> (New remote packets): Add entry for QSetWorkingDir.
>>> * common/common-inferior.h (set_inferior_cwd): New prototype.
>>> * infcmd.c (set_inferior_cwd): Remove "static".
>>> * remote.c: Add PACKET_QSetWorkingDir.
>>> (remote_protocol_features) <QSetWorkingDir>: New entry for
>>> PACKET_QSetWorkingDir.
>>> (extended_remote_handle_inferior_cwd): New function.
>>> (extended_remote_create_inferior): Call
>>> "extended_remote_handle_inferior_cwd".
>>> (_initialize_remote): Call "add_packet_config_cmd" for
>>> QSetWorkingDir.
>>>
>>> gdb/gdbserver/ChangeLog:
>>> yyyy-mm-dd Sergio Durigan Junior <sergiodj@redhat.com>
>>>
>>> * inferiors.c (set_inferior_cwd): New function.
>>> * server.c (handle_general_set): Handle QSetWorkingDir packet.
>>> (handle_query): Inform that QSetWorkingDir is supported.
>>> * win32-low.c (create_process): Pass "inferior_cwd" to
>>> CreateProcess.
>>>
>>> gdb/testsuite/ChangeLog:
>>> yyyy-mm-dd Sergio Durigan Junior <sergiodj@redhat.com>
>>>
>>> * gdb.base/set-cwd.exp: Make it available on gdbserver.
>>>
>>> gdb/doc/ChangeLog:
>>> yyyy-mm-dd Sergio Durigan Junior <sergiodj@redhat.com>
>>>
>>> * gdb.texinfo (Starting your Program) <The working directory.>:
>>> Mention remote debugging.
>>> (Working Directory) <Your Program's Working Directory>:
>>> Likewise.
>>> (Connecting) <Remote Packet>: Add "set-working-dir"
>>> and "QSetWorkingDir" to the table.
>>> (Remote Protocol) <QSetWorkingDir>: New item, explaining the
>>> packet.
>>> ---
>>> gdb/NEWS | 11 ++++++++++
>>> gdb/common/common-inferior.h | 4 ++++
>>> gdb/doc/gdb.texinfo | 44 ++++++++++++++++++++++++++++++++++----
>>> gdb/gdbserver/inferiors.c | 9 ++++++++
>>> gdb/gdbserver/server.c | 18 +++++++++++++++-
>>> gdb/gdbserver/win32-low.c | 5 +++--
>>> gdb/infcmd.c | 5 ++---
>>> gdb/remote.c | 35 ++++++++++++++++++++++++++++++
>>> gdb/testsuite/gdb.base/set-cwd.exp | 14 ++++++++----
>>> 9 files changed, 131 insertions(+), 14 deletions(-)
>>>
>>> diff --git a/gdb/NEWS b/gdb/NEWS
>>> index 0dcfcc98af..a0f78e4c35 100644
>>> --- a/gdb/NEWS
>>> +++ b/gdb/NEWS
>>> @@ -39,6 +39,14 @@
>>> variables that are to be set or unset from GDB. These variables
>>> will affect the environment to be passed to the inferior.
>>>
>>> + ** On Unix systems, GDBserver is now able to enter a directory
>>> + before starting an inferior.
>>> +
>>> + This is done by using the "cd" command in GDB, which instructs it
>>> + to tell GDBserver about this directory change the next time an
>>> + inferior is run. If you want to make GDBserver enter the
>>> + directory your GDB is currently in, you can do a "cd ." in GDB.
>>
>> This all looks stale to me.
>
> Indeed, sorry about this mistake. I will rewrite the entry as follows:
>
> * New features in the GDB remote stub, GDBserver
>
> ** GDBserver is now able to enter a directory before starting an
> inferior.
>
> The user can set the desired working directory to be used by the
> remote inferior on GDB, using the new "set cwd" command, which
> will instruct GDB to tell GDBserver about this directory change
> the next time an inferior is run.
Actually, the first sentence is still wrong. How about:
** GDBserver is now able to set the inferior's current working
directory.
The user can set the desired working directory to be used by the
remote inferior on GDB, using the new "set cwd" command, which
will instruct GDB to tell GDBserver about this directory change
the next time an inferior is run.
?
--
Sergio
GPG key ID: 237A 54B1 0287 28BF 00EF 31F4 D0EB 7628 65FC 5E36
Please send encrypted e-mail if possible
http://sergiodj.net/
next prev parent reply other threads:[~2017-09-21 1:37 UTC|newest]
Thread overview: 131+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-12 4:23 [PATCH 0/4] New "set cwd" command Sergio Durigan Junior
2017-09-12 4:23 ` [PATCH 2/4] Import "glob" module from gnulib Sergio Durigan Junior
2017-09-12 4:23 ` [PATCH 4/4] Implement "set cwd" command Sergio Durigan Junior
2017-09-12 14:50 ` Eli Zaretskii
2017-09-12 4:23 ` [PATCH 1/4] Make gdb_dirbuf local to functions Sergio Durigan Junior
2017-09-13 15:12 ` Pedro Alves
2017-09-13 22:03 ` Sergio Durigan Junior
2017-09-13 22:19 ` Pedro Alves
2017-09-13 22:46 ` Sergio Durigan Junior
2017-09-13 23:47 ` Pedro Alves
2017-09-12 4:23 ` [PATCH 3/4] Introduce gdb_chdir Sergio Durigan Junior
2017-09-12 14:53 ` Eli Zaretskii
2017-09-13 23:00 ` Sergio Durigan Junior
2017-09-13 16:07 ` Pedro Alves
2017-09-14 15:14 ` Sergio Durigan Junior
2017-09-14 15:23 ` Pedro Alves
2017-09-14 15:33 ` Sergio Durigan Junior
2017-09-12 14:55 ` [PATCH 0/4] New "set cwd" command Eli Zaretskii
2017-09-12 16:48 ` Sergio Durigan Junior
2017-09-12 16:57 ` Eli Zaretskii
2017-09-12 17:51 ` Sergio Durigan Junior
2017-09-13 15:00 ` Pedro Alves
2017-09-13 15:06 ` Eli Zaretskii
2017-09-13 21:56 ` Sergio Durigan Junior
2017-09-13 14:54 ` Pedro Alves
2017-09-13 21:54 ` Sergio Durigan Junior
2017-09-19 4:28 ` [PATCH v2 0/5] " Sergio Durigan Junior
2017-09-19 4:28 ` [PATCH v2 4/5] Implement " Sergio Durigan Junior
2017-09-20 14:01 ` Pedro Alves
2017-09-20 23:08 ` Sergio Durigan Junior
2017-09-19 4:28 ` [PATCH v2 2/5] Get rid of "gdb_dirbuf" and use "getcwd (NULL, 0)" Sergio Durigan Junior
2017-09-20 12:24 ` Pedro Alves
2017-09-20 17:02 ` Sergio Durigan Junior
2017-09-19 4:28 ` [PATCH v2 3/5] Introduce gdb_chdir Sergio Durigan Junior
2017-09-20 13:14 ` Pedro Alves
2017-09-20 17:25 ` Sergio Durigan Junior
2017-09-19 4:33 ` [PATCH v2 5/5] Extend "set cwd" to work on gdbserver Sergio Durigan Junior
2017-09-20 14:34 ` Pedro Alves
2017-09-20 23:49 ` Sergio Durigan Junior
2017-09-21 1:37 ` Sergio Durigan Junior [this message]
2017-09-22 10:47 ` Pedro Alves
2017-09-22 18:33 ` Sergio Durigan Junior
2017-09-27 13:28 ` Pedro Alves
2017-09-19 4:37 ` [PATCH v2 1/5] Import "glob" and "getcwd" modules from gnulib Sergio Durigan Junior
2017-09-20 12:17 ` Pedro Alves
2017-09-20 17:17 ` Sergio Durigan Junior
2017-09-20 17:33 ` Pedro Alves
2017-09-20 18:31 ` Sergio Durigan Junior
2017-09-20 20:30 ` Sergio Durigan Junior
2017-09-20 22:44 ` Pedro Alves
2017-09-20 23:12 ` Sergio Durigan Junior
2017-09-20 23:25 ` Pedro Alves
2017-09-21 22:59 ` New "set cwd" command Sergio Durigan Junior
2017-09-21 22:59 ` [PATCH v3 4/5] Implement "set cwd" command on GDB Sergio Durigan Junior
2017-09-22 8:03 ` Eli Zaretskii
2017-09-22 12:31 ` Pedro Alves
2017-09-22 18:15 ` Sergio Durigan Junior
2017-09-22 18:00 ` Sergio Durigan Junior
2017-09-22 18:56 ` Eli Zaretskii
2017-09-22 19:24 ` Pedro Alves
2017-09-22 19:41 ` Eli Zaretskii
2017-09-22 20:27 ` Sergio Durigan Junior
2017-09-22 20:37 ` Pedro Alves
2017-09-23 5:55 ` Eli Zaretskii
2017-09-27 14:02 ` Pedro Alves
2017-09-29 15:31 ` Eli Zaretskii
2017-09-29 15:46 ` Pedro Alves
2017-09-29 17:51 ` Eli Zaretskii
2017-09-23 5:52 ` Eli Zaretskii
2017-09-22 20:24 ` Sergio Durigan Junior
2017-09-23 5:51 ` Eli Zaretskii
2017-09-22 20:55 ` Sergio Durigan Junior
2017-09-23 6:05 ` Eli Zaretskii
2017-09-23 17:01 ` Sergio Durigan Junior
2017-09-21 22:59 ` [PATCH v3 1/5] Import "glob" and "getcwd" modules from gnulib Sergio Durigan Junior
2017-09-22 11:01 ` Pedro Alves
2017-09-22 17:29 ` Sergio Durigan Junior
2017-09-21 22:59 ` [PATCH v3 3/5] Introduce gdb_tilde_expand Sergio Durigan Junior
2017-09-22 11:57 ` Pedro Alves
2017-09-22 17:37 ` Sergio Durigan Junior
2017-09-22 17:41 ` Pedro Alves
2017-09-22 18:07 ` Sergio Durigan Junior
2017-09-22 18:20 ` Pedro Alves
2017-09-22 18:22 ` Sergio Durigan Junior
2017-09-21 22:59 ` [PATCH v3 2/5] Get rid of "gdb_dirbuf" and use "getcwd (NULL, 0)" Sergio Durigan Junior
2017-09-22 11:19 ` Pedro Alves
2017-09-22 17:30 ` Sergio Durigan Junior
2017-09-21 23:06 ` [PATCH v3 5/5] Extend "set cwd" to work on gdbserver Sergio Durigan Junior
2017-09-22 8:12 ` Eli Zaretskii
2017-09-22 18:46 ` Sergio Durigan Junior
2017-09-22 19:09 ` Eli Zaretskii
2017-09-22 20:47 ` Sergio Durigan Junior
2017-09-23 6:00 ` Eli Zaretskii
2017-09-27 14:42 ` Pedro Alves
2017-09-27 21:48 ` Sergio Durigan Junior
2017-09-29 14:03 ` Pedro Alves
2017-09-29 18:33 ` Sergio Durigan Junior
2017-09-28 4:10 ` [PATCH v4 0/3] New "set cwd" command Sergio Durigan Junior
2017-09-28 4:10 ` [PATCH v4 1/3] Introduce gdb_tilde_expand Sergio Durigan Junior
2017-09-29 14:08 ` Pedro Alves
2017-09-29 17:48 ` Sergio Durigan Junior
2017-09-28 4:11 ` [PATCH v4 2/3] Implement "set cwd" command on GDB Sergio Durigan Junior
2017-09-29 15:20 ` Pedro Alves
2017-09-29 18:31 ` Sergio Durigan Junior
2017-09-28 4:11 ` [PATCH v4 3/3] Extend "set cwd" to work on gdbserver Sergio Durigan Junior
2017-09-29 15:21 ` Pedro Alves
2017-09-29 18:48 ` Sergio Durigan Junior
2017-10-03 15:13 ` Pedro Alves
2017-09-29 22:58 ` [PATCH v5 0/3] New "set cwd" command Sergio Durigan Junior
2017-09-29 22:59 ` [PATCH v5 2/3] Implement "set cwd" command on GDB Sergio Durigan Junior
2017-10-03 15:15 ` Pedro Alves
2017-10-03 16:39 ` Sergio Durigan Junior
2017-10-03 16:44 ` Pedro Alves
2017-10-03 16:47 ` Sergio Durigan Junior
2017-10-03 16:58 ` Sergio Durigan Junior
2017-10-03 20:09 ` Sergio Durigan Junior
2017-10-03 21:29 ` Pedro Alves
2017-10-04 5:40 ` Eli Zaretskii
2017-10-04 6:10 ` Sergio Durigan Junior
2017-10-06 2:37 ` asmwarrior
2017-10-06 10:54 ` [pushed] Fix GDB build under msys+mingw gcc 32bit (Re: [PATCH v5 2/3] Implement "set cwd" command on GDB) Pedro Alves
2017-10-06 11:06 ` [pushed] Fix more GDB build breakage on mingw32 " Pedro Alves
2017-10-06 11:15 ` asmwarrior
2017-10-09 21:58 ` Sergio Durigan Junior
2017-09-29 22:59 ` [PATCH v5 3/3] Extend "set cwd" to work on gdbserver Sergio Durigan Junior
2017-10-03 15:15 ` Pedro Alves
2017-10-03 16:45 ` Sergio Durigan Junior
2017-10-04 6:09 ` Sergio Durigan Junior
2017-09-29 22:59 ` [PATCH v5 1/3] Introduce gdb_tilde_expand Sergio Durigan Junior
2017-10-03 15:15 ` Pedro Alves
2017-10-04 6:09 ` Sergio Durigan Junior
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87y3p8n85s.fsf@redhat.com \
--to=sergiodj@redhat.com \
--cc=gdb-patches@sourceware.org \
--cc=palves@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox