mirror of
https://github.com/chromium/crashpad.git
synced 2025-03-09 14:06:33 +00:00
android: insert app_process at start of handler argv
HandlerMain() consumes argv[0] as the name for itself. Arguments before the class name are consumed by app_process when using a Java handler. Re-insert app_process for HandlerMain() to consume as the program name or else it will consume the next real argument. Bug: chromium:1011145 Change-Id: Id7090db36cc382a9fdba49b9259dbbce3a9bcc5c Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1841974 Commit-Queue: Joshua Peraza <jperaza@chromium.org> Reviewed-by: Mark Mentovai <mark@chromium.org>
This commit is contained in:
parent
eb0c4726f1
commit
c87486f595
@ -58,24 +58,31 @@ std::vector<std::string> BuildAppProcessArgs(
|
|||||||
const std::map<std::string, std::string>& annotations,
|
const std::map<std::string, std::string>& annotations,
|
||||||
const std::vector<std::string>& arguments,
|
const std::vector<std::string>& arguments,
|
||||||
int socket) {
|
int socket) {
|
||||||
std::vector<std::string> argv;
|
|
||||||
#if defined(ARCH_CPU_64_BITS)
|
#if defined(ARCH_CPU_64_BITS)
|
||||||
argv.push_back("/system/bin/app_process64");
|
static constexpr char kAppProcess[] = "/system/bin/app_process64";
|
||||||
#else
|
#else
|
||||||
argv.push_back("/system/bin/app_process32");
|
static constexpr char kAppProcess[] = "/system/bin/app_process32";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
std::vector<std::string> argv;
|
||||||
|
argv.push_back(kAppProcess);
|
||||||
argv.push_back("/system/bin");
|
argv.push_back("/system/bin");
|
||||||
argv.push_back("--application");
|
argv.push_back("--application");
|
||||||
argv.push_back(class_name);
|
argv.push_back(class_name);
|
||||||
|
|
||||||
std::vector<std::string> handler_argv = BuildHandlerArgvStrings(
|
std::vector<std::string> handler_argv =
|
||||||
base::FilePath(), database, metrics_dir, url, annotations, arguments);
|
BuildHandlerArgvStrings(base::FilePath(kAppProcess),
|
||||||
|
database,
|
||||||
|
metrics_dir,
|
||||||
|
url,
|
||||||
|
annotations,
|
||||||
|
arguments);
|
||||||
|
|
||||||
if (socket != kInvalidFileHandle) {
|
if (socket != kInvalidFileHandle) {
|
||||||
handler_argv.push_back(FormatArgumentInt("initial-client-fd", socket));
|
handler_argv.push_back(FormatArgumentInt("initial-client-fd", socket));
|
||||||
}
|
}
|
||||||
|
|
||||||
argv.insert(argv.end(), handler_argv.begin() + 1, handler_argv.end());
|
argv.insert(argv.end(), handler_argv.begin(), handler_argv.end());
|
||||||
return argv;
|
return argv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user