[lldb-dev] Backslashes in command arguments

Zachary Turner zturner at google.com
Thu Jan 8 14:51:52 PST 2015

On Windows, that's not a valid file name, and in fact any file name that
has an escaped character is not a valid filename.  I see what you're
getting at though, that for non-Windows it's necessary.  Can I wrap the
backslash handling in #ifndef _WIN32 then?

On Thu Jan 08 2015 at 2:49:49 PM <jingham at apple.com> wrote:

> If I have a file called foo"bar'baz, how what would I put in the place of
> (lldb) file <AWKWARD NAME>
> Right now, I can do:
> (lldb) file foo\"bar\'baz
> Current executable set to 'foo"bar'baz' (x86_64).
> Jim
> > On Jan 8, 2015, at 2:31 PM, Zachary Turner <zturner at google.com> wrote:
> >
> > FWIW, Removing backslash handling from this function (essentially
> ignoring backslashes in command arguments) fixes about 12-15 tests on
> Windows with no other changes.  I see there's some logic in Args for
> encoding and decoding escape sequences, but this only happens if a
> particular command option is set, and that command only only appears to be
> set for the "prompt" command.  I'm not sure if removing the backslash logic
> from SetCommandString would interfere with this command in any way, but it
> doesn't seem like it would interfere with any other commands, unless I'm
> missing something.
> >
> > On Thu Jan 08 2015 at 1:43:16 PM Zachary Turner <zturner at google.com>
> wrote:
> > One thing causing many tests to fail on Windows is the presence of
> backslashes in argument.  Until now, I've worked around this in many cases
> by making sure that arguments with backslashes are always quoted.
> >
> > But there are some cases where this is not easy to guarantee and now I'm
> leaning towards (at least on Windows) allowing backslashes in argument
> strings.  The code in question comes from the function void
> SetCommandString (const char *command) in the file Args.cpp
> >
> > In particular, it implements special handling of whitespace, single
> quotes, double quotes, and backslashes.  For the case of backslashes it
> removes them from the string.
> >
> > What would be the implications of removing backslash handling from this
> function for all platforms?  I would prefer to keep platform specific code
> out of generic code, but I think this needs to be changed on Windows.
> > _______________________________________________
> > lldb-dev mailing list
> > lldb-dev at cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20150108/c14526b3/attachment.html>

More information about the lldb-dev mailing list