This patch adds a library that contains an interposer function for
pthread_create(). The interposer will setup an alternate signal stack to
handle crashes - thus enabling us to catch stack overflows - and then call the
real pthread_create() function. Since the interposer needs to appear in the
linker's search order before libpthread we manually link it into firefox,
plugin-container and xpcshell's executables ASAP.
Differential Revision: https://phabricator.services.mozilla.com/D132736
Adds a crash annotation, `LinuxUnderMemoryPressure`, which the memory pressure monitor updates based on whether or not it is under memory pressure.
Differential Revision: https://phabricator.services.mozilla.com/D133555
While mingw builds don't require user32 and advapi32 explicitly, it doesn't
hurt for them to be there (and they're required for clang-cl build).
Likewise, while clang-builds don't require uuid and userenv explicitly
because they're pulled in via #pragmas in the source code, mingw doesn't
support those #pragmas and needs them explicitly, which doesn't hurt the
clang-cl builds.
Differential Revision: https://phabricator.services.mozilla.com/D134737
While mingw builds don't require user32 and advapi32 explicitly, it doesn't
hurt for them to be there (and they're required for clang-cl build).
Likewise, while clang-builds don't require uuid and userenv explicitly
because they're pulled in via #pragmas in the source code, mingw doesn't
support those #pragmas and needs them explicitly, which doesn't hurt the
clang-cl builds.
Differential Revision: https://phabricator.services.mozilla.com/D134737
Also update the table of Firefox requirements. It's worth noting that I
actually upgraded to 1.57 earlier than I should have (too close to
freeze), but what is done is done.
Differential Revision: https://phabricator.services.mozilla.com/D134124
Currently the geckoview crash reporter has an EXTRA_CRASH_FATAL
argument, which indicates whether a crash is fatal, ie it occured in
the parent process and cannot be recovered from. Crashes in content
processes are by contrast deemed non-fatal, as the application can
recover from them.
With the upcoming GPU process on Android we will start collecting GPU
process crashes. These are certainly not fatal, and in fact should
barely be noticed by users. Applications may want a way to distinguish
between non-fatal but prominent content process crashes, and barely
noticeable GPU process crashes, so that they can avoid showing an
intrusive UI for GPU process crashes.
This deprecates the old EXTRA_CRASH_FATAL argument, and instead adds a
EXTRA_CRASH_PROCESS_TYPE argument to crash intents, whose value is a
String matching a new CRASHED_PROCESS_TYPE_* constant.
These constants are as follows:
* CRASHED_PROCESS_TYPE_MAIN: indicating a fatal main-process crash.
* CRASHED_PROCESS_TYPE_FOREGROUND_CHILD: indicating a recoverable but
obvious crash such as in a content process.
* CRASHED_PROCESS_TYPE_BACKGROUND_CHILD indicating a barely noticable
crash in a background process such as the GPU process
Differential Revision: https://phabricator.services.mozilla.com/D132809
-Wshadow warnings are not enabled globally, so these -Wno-shadow suppressions have no effect. I had intended to enable -Wshadow globally along with these suppressions in some directories (in bug 1272513), but that was blocked by other issues.
There are too many -Wshadow warnings (now over 2000) to realistically fix them all. We should remove all these unnecessary -Wno-shadow flags cluttering many moz.build files.
Differential Revision: https://phabricator.services.mozilla.com/D132289
I'm being extra-defensive here: we're not resizing the vector that is supposed
to hold the UUID until we're sure we can fill it and we're also explicitly
clearing it in case `LinuxDumper::ElfFileIdentifierForMapping()` returns
false. This should cover all possible cases.
Differential Revision: https://phabricator.services.mozilla.com/D131496
This also adds documentation and renames the function tasked with this job to
clarify that we're not only copying the file holding the debug information but
also the corresponding executable or library.
Differential Revision: https://phabricator.services.mozilla.com/D132002
toolkit/crashreporter/breakpad-client/mac/handler/minidump_generator.cc:1761:17: error: use of undeclared identifier 'ReadTaskString'
toolkit/crashreporter/breakpad-client/mac/handler/minidump_generator.cc:1766:9: error: use of undeclared identifier 'ReadTaskString'
toolkit/crashreporter/breakpad-client/mac/handler/minidump_generator.cc:1770:19: error: use of undeclared identifier 'ReadTaskString'
toolkit/crashreporter/breakpad-client/mac/handler/minidump_generator.cc:1774:18: error: use of undeclared identifier 'ReadTaskString'
toolkit/crashreporter/google-breakpad/src/processor/stack_frame_symbolizer.cc:132:10: error: 'return' will never be executed [-Werror,-Wunreachable-code-return]
Differential Revision: https://phabricator.services.mozilla.com/D127240