android, chromeos: fix build breakages

Also augment some documentation.

Change-Id: Icbb8bdbe435484346f2b24e37f81182a3f189cb5
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1797189
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
This commit is contained in:
Joshua Peraza 2019-09-11 10:37:54 -07:00 committed by Commit Bot
parent abeccef1ef
commit 06fdbdecdc
3 changed files with 19 additions and 9 deletions

View File

@ -615,7 +615,7 @@ class CrashpadClient {
#elif defined(OS_WIN)
std::wstring ipc_pipe_;
ScopedKernelHANDLE handler_start_thread_;
#elif defined(OS_LINUX)
#elif defined(OS_LINUX) || defined(OS_ANDROID)
std::set<int> unhandled_signals_;
#endif // OS_MACOSX

View File

@ -279,6 +279,13 @@ establish the Crashpad client environment before running a program.
library, typically in response to a user requesting this behavior. If this
option is not specified, this program will behave as if uploads are disabled.
* **--use-cros-crash-reporter**
Causes crash reports to be passed via an in-memory file to
`/sbin/crash_reporter` instead of storing them in the database. The database
is still used for Crashpad settings. This option is only valid on Chromium
OS.
* **--help**
Display help and exit.

View File

@ -163,8 +163,11 @@ void Usage(const base::FilePath& me) {
" only if uploads are enabled for the database\n"
#if defined(OS_CHROMEOS)
" --use-cros-crash-reporter\n"
" pass crash reports to /sbin/crash_reporter\n"
" instead of storing them in the database\n"
" --minidump-dir-for-tests=TEST_MINIDUMP_DIR\n"
" the directory for testing minidumps\n"
" causes /sbin/crash_reporter to leave dumps in\n"
" this directory instead of the normal location\n"
#endif // OS_CHROMEOS
" --help display this help and exit\n"
" --version output version information and exit\n",
@ -936,10 +939,16 @@ int HandlerMain(int argc,
#if defined(OS_CHROMEOS)
if (options.use_cros_crash_reporter) {
exception_handler = std::make_unique<CrosCrashReportExceptionHandler>(
auto cros_handler = std::make_unique<CrosCrashReportExceptionHandler>(
database.get(),
&options.annotations,
user_stream_sources);
if (!options.minidump_dir_for_tests.empty()) {
cros_handler->SetDumpDir(options.minidump_dir_for_tests);
}
exception_handler = std::move(cros_handler);
} else {
exception_handler = std::make_unique<CrashReportExceptionHandler>(
database.get(),
@ -959,12 +968,6 @@ int HandlerMain(int argc,
user_stream_sources);
#endif // OS_CHROMEOS
#if defined(OS_CHROMEOS)
if (!options.minidump_dir_for_tests.empty()) {
exception_handler->SetDumpDir(options.minidump_dir_for_tests);
}
#endif
#if defined(OS_LINUX) || defined(OS_ANDROID)
if (options.exception_information_address) {
ExceptionHandlerProtocol::ClientInformation info;