This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH v3 4/5] Implement "set cwd" command on GDB


On Friday, September 22 2017, Eli Zaretskii wrote:

>> From: Sergio Durigan Junior <sergiodj@redhat.com>
>> Cc: gdb-patches@sourceware.org,  palves@redhat.com
>> Date: Fri, 22 Sep 2017 14:00:51 -0400
>> 
>> On Friday, September 22 2017, Eli Zaretskii wrote:
>> 
>> >> +@kindex set cwd
>> >> +@cindex change inferior's working directory
>> >> +@item set cwd @r{[}@var{directory}@r{]}
>> >> +Set the inferior's working directory to @var{directory}.  If not
>> >> +given, @var{directory} uses @file{'~'}.
>> >
>> > I think we should document here what does "~" mean on MS-Windows,
>> > especially since, when HOME is not in the environment, Gnulib's glob
>> > module doesn't behave according to MS platform recommendations (which
>> > say not to create files directly below %HOMEDRIVE%%HOMEPATH%).
>> 
>> Sure, but just to be clear, this text was strongly based on another part
>> of the docs, which also mentions '~' without explaining further.
>> 
>> As I am totally out of the loop when it comes to Windows environments,
>> I'd appreciate a suggestion for the new text.
>
> If you write the Unix part, I can propose how to amend it to cover
> Windows.  OK?

Deal.  Thanks.

>> > This seems to pass the unexpanded cwd directly to CreateProcess.  I
>> > don't think this will work on Windows, as this directory is not
>> > interpreted by any shell, so "~" will cause errors.  I think we should
>> > pass this via gdb_tilde_expand, like we do in the Unix case, and I
>> > also think we should mirror all the slashes in the result, just in
>> > case.
>> 
>> Hm, you're right.  I will call "gdb_tilde_expand" here.  I'm not sure
>> what you mean by "mirror all the slashes in the result".  Do you mean
>> "escape the slashes"?
>
> No, I mean convert forward slashes to backslashes.

Sorry, I wasn't familiar with the term.  Anyway, I think I can implement
that.  In fact, I think gdbserver/win32-low.c:create_process already
does that, right?

  wprogram = alloca ((strlen (program) + 1) * sizeof (wchar_t));
  mbstowcs (wprogram, program, strlen (program) + 1);

  for (p = wprogram; *p; ++p)
    if (L'/' == *p)
      *p = L'\\';

Anyway, I'll do the same for the inferior's cwd.

Thanks,

-- 
Sergio
GPG key ID: 237A 54B1 0287 28BF 00EF  31F4 D0EB 7628 65FC 5E36
Please send encrypted e-mail if possible
http://sergiodj.net/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]