Please use GitHub pull requests for new patches. Avoid migrating existing patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_win.cpp
Show First 20 Lines • Show All 225 Lines • ▼ Show 20 Lines | bool SymbolizerProcess::StartSymbolizerSubprocess() { | ||||
GetArgV(path_, argv); | GetArgV(path_, argv); | ||||
InternalScopedString command_line; | InternalScopedString command_line; | ||||
for (int i = 0; argv[i]; i++) { | for (int i = 0; argv[i]; i++) { | ||||
const char *arg = argv[i]; | const char *arg = argv[i]; | ||||
int arglen = internal_strlen(arg); | int arglen = internal_strlen(arg); | ||||
// Check that tool command lines are simple and that complete escaping is | // Check that tool command lines are simple and that complete escaping is | ||||
// unnecessary. | // unnecessary. | ||||
CHECK(!internal_strchr(arg, '"') && "quotes in args unsupported"); | CHECK(!internal_strchr(arg, '"') && "quotes in args unsupported"); | ||||
CHECK(!internal_strstr(arg, "\\\\") && | |||||
"double backslashes in args unsupported"); | |||||
CHECK(arglen > 0 && arg[arglen - 1] != '\\' && | CHECK(arglen > 0 && arg[arglen - 1] != '\\' && | ||||
"args ending in backslash and empty args unsupported"); | "args ending in backslash and empty args unsupported"); | ||||
command_line.append("\"%s\" ", arg); | command_line.append("\"%s\" ", arg); | ||||
} | } | ||||
VReport(3, "Launching symbolizer command: %s\n", command_line.data()); | VReport(3, "Launching symbolizer command: %s\n", command_line.data()); | ||||
// Launch llvm-symbolizer with stdin and stdout redirected. | // Launch llvm-symbolizer with stdin and stdout redirected. | ||||
STARTUPINFOA si; | STARTUPINFOA si; | ||||
▲ Show 20 Lines • Show All 83 Lines • Show Last 20 Lines |