History log of /external/google-breakpad/src/common/linux/tests/crash_generator.cc
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
a05b5ce79b11e816173d1c953feb9f0276b4632c 15-Apr-2014 thestig@chromium.org <thestig@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e> Limit the workaround in r1313 to Android only.

BUG=579
R=rmcilroy@chromium.org, vapier@chromium.org

Review URL: https://breakpad.appspot.com/1564002

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1314 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/tests/crash_generator.cc
20e305dc1813dac20acac5f9c0c593d023d8583c 15-Apr-2014 rmcilroy@chromium.org <rmcilroy@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e> [Android]: Fix hang in CreateChildCrash() on Android.

After r1299, the LinuxCoreDumperTest::VerifyDumpWithMultipleThreads and
ElfCoreDumpTest::ValidCoreFile would both hang on Android. This appears to be due to the tkill
signal not being recieved by the thread which is meant to crash, even though tkill returns 0.
This CL retries sending the tkill signal multiple times, which prevents the Hang.

BUG=579
R=thestig@chromium.org

Review URL: https://breakpad.appspot.com/1524002

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1313 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/tests/crash_generator.cc
548501df371a517683d8b4d05c05b3929ad43141 03-Apr-2014 vapier@chromium.org <vapier@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e> fix races in CrashGenerator::CreateChildCrash

The current CreateChildCrash logic is racy when it comes to creating a
crash dump for two reasons:

The main thread that calls kill() on a different thread is guaranteed
the signal will be *queued* when it returns, but not *delivered*. If
the kernel doesn't automatically schedule the receiving thread, but
instead lets the main thread run to the exit() call, then the signal
never triggers a coredump and the whole process simply exits.

The main thread is using kill() to try to deliver a signal to a
specific thread, but that function is for sending signals to a
process. That means the kernel is free to deliver the signal to
any thread in the process and not just the one requested. This
manifests itself as the pr_pid in the coredump not being the one
expected. Instead, we must use tkill() with the tid (which we
already took care of gathering) to deliver to a specific thread.

These are a lot easier to see on a UMP system as contention is heavier.

BUG=chromium:207918
TEST=`dumper_unittest` still passes, and doesn't flake out in a UMP system
TEST=`linux_client_unittest` still passes
R=benchan@chromium.org

Review URL: https://breakpad.appspot.com/1304005

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1299 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/tests/crash_generator.cc
4ac3c240983991b6358baad732e2fbe3fd4f7245 23-Aug-2012 digit@chromium.org <digit@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e> Fix Breakpad unit tests build for Android.

This patch contains the source-related fixes to ensure that
the Breakpad unit tests build properly when targetting Android.

Calling 'make check' still fails because there is still no
way to run the unit test programs on a device. This will be
addressed by a future patch.

Important notes:

- You must target Android API level 9 (Gingerbread) or higher
to build the unit tests. This requirement is due to the
current GTest revision used in the breakpad source tree.

- This patch adds headers providing inlined C library functions
missing from the NDK (see src/common/android/testing). They
are inlined to avoid modifying Makefile.am and other build
files.

- Similarly, the <wchar.h> header-fix under
src/common/android/testing/include is only required by
GTest's current revision. E.g. it's not needed when building
Breakpad as part of Chromium which uses a more up-to-date
revision.
Review URL: https://breakpad.appspot.com/439002

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1020 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/tests/crash_generator.cc
4e518a4357a2d1c379d4a91df6d4e153ee791101 29-Jun-2012 ivan.penkov@gmail.com <ivan.penkov@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> This change allows compiling the google-breakpad code using a global ::string class instead of std::string. For more details take a look at common/using_std_string.h



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@974 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/tests/crash_generator.cc
e6b51ac7a6c1e84d34d03b60001012947fb8d995 11-Apr-2012 ted.mielczarek <ted.mielczarek@4c0a9323-5329-0410-9bdc-e9ce6186880e> Fix crash_generator error message
Patch by Chris Dearman <chris@mips.com>
R=ted at http://breakpad.appspot.com/374001/

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@950 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/tests/crash_generator.cc
13de24a86ecf4d87d9c151e496282123c4654958 23-Feb-2012 benchan@chromium.org <benchan@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e> Modify CrashGenerator::CreateChildCrash to copy proc files.

This patch is taken from the downstream version of breakpad in
Chromium OS: https://gerrit.chromium.org/gerrit/15148

LinuxCoreDumperTest previously assumes the proc files of the child
process created by CrashGenerator::CreateChildCrash() have the same
content as its parent process, which may not be true. This CL modifies
CrashGenerator to copy the proc files of the child process, created by
CreateChildCrash(), before crashing that process.

BUG=chromium-os:25252
TEST=Verified the following:
TEST=Tested the following:
1. Build on 32-bit and 64-bit Linux with gcc 4.4.3 and gcc 4.6.
2. Build on Mac OS X 10.6.8 with gcc 4.2 and clang 3.0 (with latest gmock).
3. All unit tests pass.
Review URL: https://breakpad.appspot.com/353001

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@925 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/tests/crash_generator.cc
4fa638a7ecb6ab042664300767614308dbc147bb 19-Jan-2012 benchan@chromium.org <benchan@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e> Implement core dump to minidump conversion.

This patch is part of a bigger patch that helps merging the breakpad code
with the modified version in Chromium OS.

Specifically, this patch makes the following changes:
1. Turn the LinuxDumper class into a base class and move ptrace related
code into a new derived class, LinuxPtraceDumper.
2. Add a LinuxCoreDumper class, which is derived from LinuxDumper, to
extract information from a crashed process via a core dump file instead
of ptrace.
3. Add a WriteMinidumpFromCore function to
src/client/linux/minidump_writer/minidump_writer.h,
which uses LinuxCoreDumper to extract information from a core dump file.
4. Add a core2md utility, which simply wraps WriteMinidumpFromCore, for
converting a core dump to a minidump.

BUG=455
TEST=Tested the following:
1. Build on 32-bit and 64-bit Linux with gcc 4.4.3 and gcc 4.6.
2. Build on Mac OS X 10.6.8 with gcc 4.2 and clang 3.0 (with latest gmock).
3. All unit tests pass.
4. Run Chromium OS tests to test core2md.
Review URL: http://breakpad.appspot.com/343001

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@905 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/tests/crash_generator.cc
d0765367cb68452e580bcb3531b38db822ea17f3 11-Jan-2012 benchan@chromium.org <benchan@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e> Skip ElfCoreDumpTest.ValidCoreFile test if no core dump is generated.

CrashGenerator::CreateChildCrash() may have some flakiness. This patch
changes ElfCoreDumpTest to temporarily skip the ValidCoreFile test if
no core dump is generated by CrashGenerator::CreateChildCrash(), but
print out the error message to help debug the flakiness.

BUG=chromium-os:24982
TEST=Tested the following:
1. Build on 32-bit and 64-bit Linux with gcc 4.6.
2. All unit tests pass.
Review URL: http://breakpad.appspot.com/342001

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@904 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/tests/crash_generator.cc
86cbb1e5cc967853dfc2b10f8fc8da43fc734c77 07-Jan-2012 benchan@chromium.org <benchan@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e> Add utilities for processing Linux core dump files.

This patch is part of a bigger patch that helps merging the breakpad code
with the modified version in Chromium OS.

Specifically, this patch makes the following changes:
1. Add an ElfCoreDump class for processing Linux core dump files, which will
later be used to implement the core dump to minidump conversion.
2. Add a CrashGenerator class for generating a crash with a core dump file
for testing the functionalities of ElfCoreDump.
3. Move some utility functions for reading/writing files to file_utils.h.

BUG=455
TEST=Tested the following:
1. Build on 32-bit and 64-bit Linux with gcc 4.4.3 and gcc 4.6.
2. Build on Mac OS X 10.6.8 with gcc 4.2 and clang 3.0 (with latest gmock).
3. All unit tests pass.
Review URL: http://breakpad.appspot.com/337001

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@900 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/tests/crash_generator.cc