[all-commits] [llvm/llvm-project] c197cd: [lldb] Add support for escaping zsh arguments
Raphael Isemann via All-commits
all-commits at lists.llvm.org
Mon Jun 21 10:47:32 PDT 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: c197cddb16b3ed0de98f80566f8fc47f78aee64c
https://github.com/llvm/llvm-project/commit/c197cddb16b3ed0de98f80566f8fc47f78aee64c
Author: Raphael Isemann <teemperor at gmail.com>
Date: 2021-06-21 (Mon, 21 Jun 2021)
Changed paths:
M lldb/source/Utility/Args.cpp
M lldb/unittests/Utility/ArgsTest.cpp
Log Message:
-----------
[lldb] Add support for escaping zsh arguments
LLDB supports having globbing regexes in the process launch arguments that will
be resolved using the user's shell. This requires that we pass the launch args
to the shell and then read back the expanded arguments using LLDB's argdumper
utility.
As the shell will not just expand the globbing regexes but all special
characters, we need to escape all non-globbing charcters such as $, &, <, >,
etc. as those otherwise are interpreted and removed in the step where we expand
the globbing characters. Also because the special characters are shell-specific,
LLDB needs to maintain a list of all the characters that need to be escaped for
each specific shell.
This patch adds the list of special characters that need to be escaped for
`zsh`. Without this patch on systems where `zsh` is the user's shell (like on
all macOS systems) having any of these special characters in your arguments or
path to the binary will cause the process launch to fail. E.g., `lldb -- ./calc
1<2` is failing without this patch. The same happens if the absolute path to
`calc` is in a directory that contains for example parentheses or other special
characters.
Reviewed By: JDevlieghere
Differential Revision: https://reviews.llvm.org/D104627
More information about the All-commits
mailing list