1795 Commits

Author SHA1 Message Date
Justin Cohen
95b4e62768 ios: CaptureContext arm64.
Change-Id: I2db8ead3103391af4d198f213524ea34ffef022b
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2167211
Commit-Queue: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-05-03 19:21:45 +00:00
Mark Mentovai
2f217736a3 ios: Deal with ios_enable_relative_sdk_path in Chromium
Change-Id: Ibb03748d8881c4a71662a7d6ad5743107ccd748d
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2174267
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-05-02 00:34:22 +00:00
Ian Barkley-Yeung
8bd5e53777 BUILD: Look at current_cpu instead of target_cpu
Fixes build error where fuchsia_arm64 builds were failing because they
picked up linux x86 code.

Bug: None
Change-Id: I48a7bc92490604fd2a59cb4d36421cb76f579224
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2172636
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Commit-Queue: Ian Barkley-Yeung <iby@chromium.org>
2020-04-29 21:21:57 +00:00
Mark Mentovai
174a92d296 mac, ios: Add ExceptionPorts::SwapExceptionPorts
Change-Id: Ia4044c82440af1d05c24ee502d51eef5185cbeec
Test: crashpad_util_test ExceptionPorts.*_Swap*
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2170546
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-04-28 16:43:41 +00:00
Mark Mentovai
57e807da6d ios: Build (and test) SymbolicConstantsMach
Bug: crashpad:31
Test: crashpad_util_test SymbolicConstantsMach.*
Change-Id: Ia76a5fb2d5ca2afdd06d99dab9ab1b72cd5a6f0d
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2169867
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-04-28 16:43:32 +00:00
Mark Mentovai
bac601e785 Use underscores instead of hyphens in filenames
Change-Id: I886a5cfc8092eb680163586b5855a86d407a34a8
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2165816
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-04-27 21:21:20 +00:00
Mark Mentovai
ecc41d0229 doc: Update Doxygen to 1.8.18 and fix Doxygen warnings
% doxygen -u doc/support/crashpad.doxy
[…warnings about removing obsolete TCL_SUBST, PERL_PATH, MSCGEN_PATH…]
Configuration file 'doc/support/crashpad.doxy' updated.
% doxygen -v
1.8.18

Change-Id: I771f654713042b0040873355051b9efaf46bffd1
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2165817
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-04-27 16:45:20 +00:00
Mark Mentovai
a5a1c3b07f Add .style.yapf and reformat according to yapf, using “google” style
% yapf --in-place $(git ls-files **/*.py)
% yapf --version
yapf 0.30.0

Note that this is not using the “chromium” yapf style because Chromium
is moving to PEP-8.
https://groups.google.com/a/chromium.org/d/topic/chromium-dev/RcJgJdkNIdg
yapf 0.30.0 no longer recognizes “chromium” as a style option.
22ef70f3c4
Since this is a mass reformatting, it might as well move things all the
way into the future all at once.

This uses the “google” style, which is a superset of “pep8”.

Change-Id: Ifa37371079ea1859e4afe8e31d2eef2cfd7af384
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2165637
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
2020-04-27 13:59:09 +00:00
Mark Mentovai
29b1688c11 Replace remaining uses of NULL with nullptr
I did a mass conversion in 5d74f120fc57 (October 2014) but these few
must have shown up after.

This excludes code in third_party.

Change-Id: I61cb0273804c0424904a516ed5ab735548b6b9cb
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2166725
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-04-27 13:58:49 +00:00
Justin Cohen
be57546fea ios: Fix Chromium banned warning about NULL.
Change-Id: I29eefb067b171fb3d8ef9fa93c3bb146a206c9ce
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2166724
Commit-Queue: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-04-27 03:23:29 +00:00
Justin Cohen
17a515d33d [ios] Bring up first draft Mach exception server.
Add Mach exception server and fill out exceptions snapshot.

Note that:
 - The 'capture' portion of this CL will be moved out of the snapshot
   interface and into a separate in-process dump to disk location.
 - All of the pointer dereferences need to be wrapped in vm_read.
 - The read-fast-and-dump logic in exception_snapshot will end up in a
   different file completely, but until we pick a
   serialization/deserialization method, keep it as-is.

Bug: crashpad:31
Change-Id: I44203aa44036a341d6b4517fde7ab0cb9d7e94d7
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2160122
Commit-Queue: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-04-25 23:38:48 +00:00
Francois Rousseau
6d8b196150 [fuchsia] remove handler
* Fuchsia only uses Crashpad for minidump generation, report database
  and report upload, not for the actual exception handling so it does
  not need a handler class
* the current handler class didn't have tests anyway
* Chromium on Fuchsia relies on the platform exception handling instead
  of rolling its own Crashpad exception handler
* this avoids us having to maintain an exception handler in another repo
* this removes the last FIDL dependency in Crashpad

TESTED=`fx test crashpad_test`

Change-Id: Ie3998f709e7cc4252dd551882a23b337864da85e
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2165638
Commit-Queue: Francois Rousseau <frousseau@google.com>
Reviewed-by: Scott Graham <scottmg@chromium.org>
2020-04-24 23:20:08 +00:00
Scott Graham
a519f1bec3 fuchsia: Update build to use new "GN" SDK
This reworks the SDK pull to get the new packaging of the SDK.

Includes DEPS update to roll mini_chromium with two changes:
f7bd221 fuchsia: Remove fuchsia_sdk declare_args, add copy() tool
8ca5ea3 fuchsia: Use sdk/$host_os-amd64 for sdk path

Bug: fuchsia:7802
Change-Id: Ifcb0e90b19c7eddc32a37422e6951f214dcdfd36
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2165494
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
2020-04-24 22:27:07 +00:00
Scott Graham
069fddf184 fuchsia: Remove unused sysinfo dep
This was previously used, but is no longer required. Delete the one
remaining include at the build rules.

Change-Id: If5083a4fb8a5562d3e40149976bd27fcec0fd302
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2165635
Reviewed-by: Mark Mentovai <mark@chromium.org>
Reviewed-by: Francois Rousseau <frousseau@google.com>
Commit-Queue: Scott Graham <scottmg@chromium.org>
2020-04-24 20:00:17 +00:00
Joshua Peraza
9fea20040e linux: Update overview design
Bug: crashpad:294
Change-Id: Ie84b56bd429320dab1d232d0b19c6378b7d3755a
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2165627
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
2020-04-24 17:54:27 +00:00
Joshua Peraza
ec105797e6 Update the status page
Change-Id: If9075e6cd0785e7a2c64263144db9ecafbeec9b0
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2163916
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-04-24 15:29:27 +00:00
Mark Mentovai
adfd94a357 ios: Use compat to provide items missing from the iOS SDK
This updates the way that the .defs files added in 1bfd7d06ed60 are
treated, by putting them in compat/ios, using compat as intended. The
.defs files in compat forward, via #include, to the ones in
third_party/xnu. Additionally, compat/mac is enabled for iOS, as
everything in compat/mac is sensible on iOS, and will have no effect
when rendered unnecessary by the iOS SDK.

This also changes util:mig_output to a static_library instead of a
source_set. I don’t think there was any reason for it to have been a
source_set to begin with. static_library is preferred for nearly
everything.

Bug: crashpad:31
Change-Id: I7c468d6d6785bf2bc825d45831ebb81e1c9ddfbc
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2160310
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-04-22 16:09:05 +00:00
Mark Mentovai
64b8791f45 ios: Build util/mach/exc_server_variants.cc, support code, and tests
This makes UniversalMachExcServer available on iOS.
UniversalMachExcServer is the foundation for a Mach exc and mach_exc
server.

Some code in UniversalMachExcServer needs to be evaluated to ensure that
portions that run in the same process that has sustained the exception
are safe to do so at that time. For example,
SimplifiedExcServer<ExcTraits>::Interface instantiates and appends to a
std::vector<>, which is generally unsafe in this context. However, that
code responds to exc requests. The mach_exc equivalent,
SimplifiedMachExcServer<MachExcTraits>::Interface, does not use a vector
at all.

This also enables support code in the form of CompositeMachMessageServer
and UniversalExceptionRaise, all of the tests for
CompositeMachMessageServer, and most of the test for
exc_server_variants.cc. The multiprocess-based exc_server_variants tests
remain disabled on iOS.

Bug: crashpad:31
Change-Id: I838ed770a33ca29c37383c32245eb340fb3ad2fb
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2159287
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-04-21 19:26:24 +00:00
Mark Mentovai
1bfd7d06ed ios: Run mig with the correct SDK and architecture
mig was being invoked without any -arch argument, causing it to assume
the build system’s native architecture, which would be x86_64. This is
not correct for iOS device builds, which use arm64. The -arch argument
must be plumbed to mig for correct behavior.

When building for iOS, mig was being invoked without any -isysroot
argument, causing it to use the root for the build system, which runs
macOS and not iOS. The macOS SDK doesn’t include the ARM definitions
needed for iOS device builds.

<mach/exc.defs> and <mach/mach_exc.defs> depend on a small number of
other .defs files to provide definitions of standard types. All .defs
files are absent from the iOS SDK. These .defs files are borrowed from
xnu and placed in third_party/xnu. An additional --include argument is
added to allow mig to locate these files.

Bug: crashpad:31
Change-Id: I27154310352939ebe2fb6329bbbfda701c369289
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2159291
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-04-21 19:24:44 +00:00
Mark Mentovai
3e748e9c4e ios: Provide a copy of mach_exc.defs and run mig on it
This updates (and corrects) 8dbbaff2e1a5, which added exc.defs, by
adding mach_exc.defs too.

The difference betwen the exc and mach_exc subsystems is that the |code|
parameter is int[] in exc and int64_t[] in mach_exc. Many exceptions
carry the exception address in code[1], and a 32-bit int results in the
exception address being truncated in exc. No information is lost in
mach_exc, where a 64-bit int64_t is used.

In 8dbbaff2e1a5, I misremembered the type of the |code| parameter as a
type derived from uintptr_t, such as vm_address_t, an integer as wide as
a pointer. I was wrong, and mach_exc is necessary. I also noted that
Apple normally forbids mach_-prefixed interfaces in favor of the
prefix-less ones for the reasons I mentioned, and that, all else being
equal, it was desirable to adhere to the spirit of that convention.
Because neither exc nor mach_exc are available in the SDK, it’s moot
from a technical perspective, as we need to provide our own stubs either
way.

Bug: crashpad:31
Change-Id: Ied1be470e653b2bead1a283cb8b9283d210c328d
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2159286
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-04-21 19:23:24 +00:00
Mark Mentovai
64c65b5757 ios: Build and test the minidump library
Bug: crashpad:31
Change-Id: I7c3974907114430a9674c3baae3ae359d5ed596e
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2156965
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-04-20 15:46:14 +00:00
Mark Mentovai
4cb79941fc ios: Build four more Mach message and exception utilities
This enables the following code in util/mach on iOS:
 - exception_behaviors.{cc,h}
 - exception_ports.{cc,h}
 - mach_message.{cc,h}
 - mach_message_server.{cc,h}

Only the ExceptionBehaviors and MachMessage tests are built, because the
other two are tested by multiprocess tests that won’t run on iOS.

The AuditPIDFromMachMessageTrailer function from mach_message.h is
excluded on iOS because it relies on <bsm/libbsm.h>, which is broken on
iOS: it depends on <bsm/audit_record.h>, which is missing from the SDK.
Additionally, the BSM function that Crashpad uses, audit_token_to_au32,
is marked as unavailable on iOS. Crashpad uses it on macOS to
authenticate Mach messages sent by other processes, but this is moot on
iOS.

Bug: crashpad:31
Change-Id: I5ebc4b80543989b9cd0b85b82eb4b3ff98c44e6c
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2155086
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-04-18 03:27:59 +00:00
Mark Mentovai
8dbbaff2e1 ios: Provide a copy of exc.defs and run mig on it to generate exc stubs
The iOS SDK doesn’t include a copy of <mach/exc.defs>. It only provides
<mach/exc.h>, which is just the user-side header. To obtain declarations
and implementations of the server-side stubs, a current copy of
<mach/exc.defs> is added to third_party, and the mig action in util is
updated to use it on iOS.

The three other mig subsystems that Crashpad uses are not brought to
iOS:
 - mach_exc is identical to exc except it always uses 64-bit quantities
   for addresses in place of exc’s use of quantiies sized for native
   pointers. Because all iOS work is limited to a single process, there
   is no need to consider cross-process operation with variable bitness,
   so mach_exc is unnecessary. We’re also only targeting 64-bit for iOS,
   so exc will always suffice. This follows the spirit of other
   mach_-prefixed routines on iOS, where Apple forbids mach_vm_read to
   user applications but permits vm_read.
 - notify is primarily used on macOS in the Crashpad handler process to
   receive a no-senders notification, which is used to trigger handler
   shutdown when it has no more clients. This is not believed to be
   useful to Crashpad on iOS, which is restricted to single-process
   operation.
 - child_port is a Crashpad-specific subsystem used to pass Mach rights
   between processes, but is similarly useless when restricted to
   single-process operation as on iOS.

Bug: crashpad:31
Change-Id: Id4cb3cdd529814438d378c20702c82c1e89dd2be
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2154530
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Justin Cohen <justincohen@chromium.org>
2020-04-17 21:11:57 +00:00
Mark Mentovai
ba24acb86c ios: Split bootstrap out from mach_extensions
mach_extensions is sensible on iOS, but bootstrap is not available
outside of macOS. To allow mach_extensions to be used cleanly on iOS,
the bootstrap code is moved into its own macOS-specific file.

Bug: crashpad:31
Change-Id: I7bf9d5194253b563954a1e55fbf67a16f686e8ff
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2154529
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-04-17 20:54:47 +00:00
Mark Mentovai
122a400d7b ios: Enable (and test!) more of util and test
This builds some code in the util and test libraries on iOS that was
previously excluded. It also enables tests for this code, and other
tests that it was possible to enable either previously or as a result of
this change.

Previously, crashpad_util_test ran 178 tests from 46 test suites, and
crashpad_test_test ran 2 tests from 2 test suites. Now,
crashpad_util_test runs 284 tests from 62 test suites, and
crashpad_test_test runs 6 tests from 4 test suites.

The related .gn files also suffered through a slight cleanup.

Bug: crashpad:31
Change-Id: I84cdda5631f0ea4888ada902a8462776ac46fd2a
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2154526
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-04-17 20:54:17 +00:00
Justin Cohen
ea4af71c2a Add another iOS library path sinkhole.
Add another sinkhole for _UIGestureEnvironmentUpdate.

Bug: crashpad:31
Change-Id: Ic4a424da034249295b6e45f8fe0860a4d4696b93
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2145017
Commit-Queue: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
2020-04-16 15:25:57 +00:00
Mark Mentovai
7fa69e7e43 win: Remove disabled and flaky end-to-end tests
The “and not memory after range” follow-up to the “extra memory range
captured” test is very flaky in debug builds
(https://ci.chromium.org/p/crashpad/builders/ci/crashpad_win_dbg/388),
and occasionally flaky in release builds too
(https://ci.chromium.org/p/crashpad/builders/ci/crashpad_win_rel/363).
As with the already-disabled “extra memory removal” test, it’s likely
that Crashpad is discovering a pointer that references the memory
immediately beyond the intended range, and capturing that too. Unless
the environment is very tightly controlled, it’s difficult to prevent
valid memory from being pointed to, and thus to guarantee that Crashpad
won’t capture a particular block of memory.

These are probably never going to be fixed. The flaky tests are removed.

Bug: crashpad:101
Change-Id: I629ed8ce3c901507689218baaa102d8737db3f5b
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2150055
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
2020-04-15 16:52:45 +00:00
Mark Mentovai
dc9176b063 iOS: “namespace” Objective-C test classes by prefixing with CPTest
Re:
https://chromium-review.googlesource.com/c/2028183/4/test/ios/crash_type_xctest.mm#13

We previously discussed using the CP prefix for Objective-C class and
protocol names, and CPTest for those restricted to tests. This is
intended to parallel our C++ code’s use of the crashpad and
crashpad::test namespaces, but with name prefixing because Objective-C
doesn’t support any other form of namespacing.

These class names are changed:

ApplicationDelegate→CPTestApplicationDelegate
CrashViewController→CPTestCrashViewController
CrashpadUnitTestDelegate→CPTestUnitTestApplicationDelegate

Filenames and #include guards are also adjusted to match.

This also has include-what-you-use fixes and more modern pointer
handling in CPTestSharedObject, which was already named correctly.

Bug: crashpad:31
Change-Id: I3645ee830a30eccb594d679e0d52ba1a2dd1225d
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2144453
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Justin Cohen <justincohen@chromium.org>
2020-04-15 15:19:35 +00:00
Mark Mentovai
24b4105d00 fuchsia: Fix clang path for macOS→Fuchsia cross-development
This was a goof from 3af81d7012e4.

Change-Id: I09b2e387511f661413f33c1873ad1a9036b0bd09
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2144437
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
2020-04-14 18:38:24 +00:00
Mark Mentovai
b49dcdc48f Mark static const class/struct members as constexpr
cl/306269985

Change-Id: I3e6b7021d24260aa1abfad32d30ee0a9289fa3ff
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2148677
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-04-14 14:57:53 +00:00
Justin Cohen
de43cd3723 Fix Chromium Roll.
- Fix -Wundeclared-selector in Chromium roll.
- Convert TEST to TEST_F in crashpad_client_ios_test.mm

Also rolls mini_chromim 731e08f06..641fcf9bb (3 commits)
  2020-04-14 mark Mark static const class/struct members as constexpr
  2020-04-09 justincohen Add PlatformTest to mini_chromium.
  2020-04-09 jperaza Replace ScopedClearErrno with ScopedClearLastError

Change-Id: Ib8ac742eb97359be47e1ff01ae6f10518761a302
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2144452
Commit-Queue: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-04-14 14:28:34 +00:00
Joshua Peraza
e5dbfa3363 Disable fuzzing without use_fuzzing_engine
Effectively upstreams https://chromium-review.googlesource.com/c/chromium/src/+/1775756

Change-Id: I112eddd9e5f22790a50bf7b340cf9202eeceebc3
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2148373
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
2020-04-14 03:21:53 +00:00
Mark Mentovai
3c44556cf1 Replace ScopedClearErrno with ScopedClearLastError
Includes:

Update mini_chromium to bbf1307928bb7a9d1eda6be576283c8093b2775b

bbf1307928bb Replace ScopedClearErrno with ScopedClearLastError

Change-Id: I8eabb5f62a21c5b30c5b07face2a6afcf10bb82b
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2145829
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-04-14 00:59:33 +00:00
Mark Mentovai
e621aaa132 Make “gn check” pass
Change-Id: Ia7a215e1a2d0a3b1868b00c5d47b46ef8a675cdc
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2144917
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-04-13 18:29:42 +00:00
Victor Costan
380f2108df Roll crashpad/third_party/gtest/gtest/ eb78ee170..e3f0319d8 (232 commits)
eb78ee170a..e3f0319d89

This CL also removes references to gmock-generated-matchers.h, which was
removed from googletest in commit
41b5f149ab306e96b5b2faf523505d75acffd98a, and to
gmock-generated-function-mockers.h, which was removed from googletest in
commit fbf67a70d07543f40832d0cd7a58f304bc6ab1d1.

$ git log eb78ee170..e3f0319d8 --oneline --abbrev=12 --reverse
130e5aa86a7a Merge pull request #2 from google/master
6fd262ecf787 Prepare for Bazel incompatible changes
800c9b30168f Update Bazel on Windows
2c2c9e33573d remove a custom implementation of std::add_lvalue_reference
11471da7938b remove a custom implementation of std::enable_if
e2c06aa2497e remove a custom implementation of std::iterator_traits
364839ab142e remove a custom implementation of std::remove_const
da76d01b984f remove a custom implementation of std::is_reference
6a015ca1cb4e reuse IndexSequence from googletest
44de8697835d remove a dead metafunction
27e17f7851e2 Googletest export
410b52985e3d Googletest export
fcffabb5beb8 Googletest export
30e58a89a42b Merge pull request #2381 from Yannic:fix_bazel
d5e9e0c38f85 Merge pull request #2397 from kuzkry:custom-type-traits-is_reference
c9ccac7cb734 Googletest export
7bd4a7f3e9ae restore mistakenly removed iffs in their explicit form
d1ad644db4b9 Googletest export
fb49e6c16449 Merge pull request #2393 from kuzkry:custom-type-traits-remove_const
f8e9b3767ff8 remove references to autotools and combine gTest&gMock sections
9bf34ace7194 Merge pull request #2400 from kuzkry:custom-type-traits-enable_if
c6d884096ae5 Merge pull request #2401 from kuzkry:custom-type-traits-add_lvalue_reference
46525e1e5dfc Merge pull request #2394 from kuzkry:custom-type-traits-duplication-of-custom-index_sequence
db1b739943e9 Googletest export
ed2eef654373 Googletest export
38ce18e8e662 post-review to db1b7399 (#2396)
6a3d632f40a1 Googletest export
fdd6a1dc8c74 Merge pull request #2382 from kuzkry:dead-metafunction
85f059f03d56 Merge pull request #3 from google/master
d9c55a48eddb Merge pull request #2426 from kuzkry:#2396-postreview
eb56ee5a28b4 Googletest export
a648da952b79 Merge pull request #2420 from kuzkry:remove-autotools-section
565f1b848215 Merge pull request #2398 from kuzkry:custom-type-traits-iterator_traits
ab8f346b076f Googletest export
6123df929dba Googletest export
3f05f651ae36 Googletest export
c2b2cd8883f5 Googletest export
62a109a2ffe6 Googletest export
3a4503986247 Googletest export
bafa644c182e remove a dead function
838ea5cea301 remove GTEST_HAS_STD_STRING
33a0d4f6d76a Googletest export
0cd3fbc8abe6 change includes in gtest-port.h
274afe50cf57 Googletest export
ac24edd6e061 Googletest export
c7a03daa99e7 Merge pull request #2387 from kuzkry:iff
c96da8fea82e change usings
cad3bc46c2ba Googletest export
f2fb48c3b3d7 Googletest export
7c2bd3af981e square away the stuff that hasn't been merged in a manual review
3339b97c6a7f square away the stuff that hasn't been merged in a manual review
90a8ab70a1f6 mention the existing support for wide strings in string matchers
e0d16aa33662 remove GTEST_ARRAY_SIZE_
2460f97152c9 Add many missing override keywords
c78ea26f2008 Bump llvm version to 4 so brew can work again
076c46198fe1 Googletest export
bf0fe874a27b Googletest export
a783ade7c244 Googletest export
cb3f7ce1deef Googletest export
72adf7a4155b Googletest export
dc1ca9ae4c20 Googletest export
51f7396d4058 Fix typo in documents
68319c19eb01 Googletest export
4105eb726341 Googletest export
703bd9caab50 (tag: v1.10.x, tag: release-1.10.0) Googletest export
76a560c81cfe Googletest export
5126ff48d9ac Revert "Use pcfiledir for prefix in pkgconfig file"
b96832a44b49 Add documentation for pkg-config in cross-compilation settings
4360e4267c1e Merge pull request #2491 from SoapGentoo:fix-GNUInstallDirs-pkg-config
2ed2211db99a Use FormatFileLocation for streaming file and line
3f5a8c6ee6ce Merge pull request #2495 from hyukmyeong:typo
10c1d8c4faed Use the verbatim noexcept spec in MOCKED_METHOD
0eadff8a932d Fix spacing
872b9ceb6045 Avoid comma operator
7f8617a7c532 Switch to free function to avoid GCC bug
20255e6f4099 Use declval in noexcept expression
cd17fa2abda2 Merge pull request #2475 from peterbarker:pr/google-add-override
de69803b1e38 Mention Cornichon as a related open source project
cb1d5db1a104 Merge pull request #2448 from kuzkry:bad-googletest-export
5395345ca4f0 Merge pull request #2497 from thejcannon:handle_null_filename
20b5b8ecc7a8 Googletest export
58c71977611c Merge pull request #2505 from zebmason:cornichon
bc996e0817d8 Made noexcept condition more exciting
31406d79090e chore:  update version
9b9700247d46 clean-up broken paths for PlatformIO
ed78e54f38ab Googletest export
a4a5a7c768ce Googletest export
37905b9d8c8f Merge pull request #2498 from thejcannon:noexcept_spec
eafd2a91bb0c Merge pull request #2456 from kuzkry:gtest-port-clean-up_breaking-changes
a3ca5b9e0bf9 Googletest export
ba513d2c9525 Merge pull request #2498 from thejcannon:noexcept_spec
c081ceebfb6f Workaround MSVC VA_ARGS weirdness
c1e8e71aab60 Add a compile test
d935e8e3edaf Fix preprocessor tests
fe112cfee7e7 Replace compile-test with preprocessor test
5fe523361243 Removing extraneous test
40a6b9662199 feat: Add support for ESP8266 platform
c2206b05aa0f Add ESP8266 configs to PlatformIO build
f8961b99f4c3 Evaluate and cat NARG in different macros
3e813465a46b Removing extraneous parenthesis
84a5ae8b8560 Update to distinguish prelease purpose of this fork.
3cddd56e195b Add more override keywords
e1b67b07f7bd Avoid recursive macros
778733f9ecdd feat: Add ESP8266 support
9e466f1eb0fa Merge pull request #2510 from ciband:chore/update_pio_version
4c25e2b87fcb Googletest export
bdc29d5dc19d Merge pull request #2421 from kuzkry:cleanup-for-regex
cbf019de22c8 [googletest] Output skip message
2995ca563d76 Merge pull request #2507 from roblub:master
bbe4b7363bba Googletest export
1f9edcd96981 Googletest export
f966ed158177 Googletest export
5f92697d46ae Fix Issue 2418
f164a9e23c0f Remove extra space
011c4e23d525 Googletest export
8ce64c084d83 Merge pull request #2454 from kuzkry:gtest-port-clean-up_dead-function
a5216dd1a9f3 Merge pull request #2511 from kuzkry:PlatformIO-clean-up
611a321a6e64 Googletest export
de1128355464 Merge pull request #2444 from kuzkry:remove-GTEST_ARRAY_SIZE_
8c91ecef292e Merge pull request #2517 from snarkmaster:master
b11fb80e9e94 Prevent using ReturnRef on reference to temporary
f1afeaa64348 Googletest export
19a3bbce512d Added tests verifying that temporaries are accepted by ReturnRef
37590da6c08f Added more tests to verify: ReturnRef not accept temporary
aa1146da8169 Googletest export
8bab7883a676 Merge pull request #2514 from thejcannon:msvc_macro_issue
1110c471cadf Merge pull request #2522 from cloudrex:patch-1
676d0444bf95 Revert "Merge pull request #2498 from thejcannon:noexcept_spec"
37f322783175 Googletest export
6e87238c9b14 remove BiggestInt
d072682119f8 Tests simplified and names corrected (POD->scalar)
5ff72f5295f3 Apply 80chars limit
208c2f6b6076 variable names corrected (followed google coding style)
540835fa687e Merge pull request #2515 from ciband:feat/support_esp8266
eed64b5fc6c0 replace autogenerated TypesX classes by variadic ones
e3a9a567d826 replace autogenerated TemplatesX classes by variadic ones
a7083564d550 remove gtest-type-util.h.pump
002905f29fc9 move the pumping script to googlemock
1a49b67aebe9 update CONTRIBUTORS
a8b1a66cfda3 Merge pull request #2388 from kuzkry:remove-gtest-type-util.pump
a1f71dd56df4 Googletest export
b5fb5ba05cb6 Merge pull request #2527 from PiotrNycz:gmock_prevent_return_ref_to_store_temporaries_2
757d39a79bcb Googletest export
755f853c6be9 Googletest export
2bee6da24e9f Googletest export
fff8dabbf6c5 Googletest export
ba33a8876c3e Googletest export
f626deda19e5 Added special catch for std::exception in GTEST_TEST_NO_THROW_
0a03480824b4 Googletest export
e2fc3a9c9cb8 Googletest export
2db3df9c4f82 Googletest export
057ee5063d00 Merge pull request #2533 from thejcannon:noexcept_spec
e8a82dc7ede6 Merge pull request #2453 from kuzkry:gtest-port-clean-up_kMaxBiggestInt
523ad489efc3 update pump_manual.md
442f45b376f5 pump.py: add support for Python 3
f658561ef253 fix a typo
8697709e0308 Merge pull request #2453 from kuzkry:gtest-port-clean-up_kMaxBiggestInt
f9665846e405 update gen_gtest_pred_impl.py
f79ac2ce0e78 change incorrect comments
6caa879a42d9 pkg-config: Remove pthread link flag from Cflags
3e062a6efe7a Merge pull request #2373 from Youw:master
54978626b40f Merge pull request #2547 from kuzkry:typo
8aedd597af6b Merge pull request #2548 from kuzkry:update-pump-manual
e08a4602778b Merge pull request #2549 from kuzkry:pump-support-for-python-3
681454dae48f Googletest export
d5707695cb02 Googletest export
dee725b05332 add documentation for the premature-exit-file protocol
11440f27c66d Merge pull request #2556 from ienorand:avoid-pkg-config-lpthread-cflag
f73898f3ffd4 Merge pull request #2554 from kuzkry:update-gen_gtest_pred_impl
c27acebba3b3 Merge pull request #2521 from Sinclair-John:master
0c469a5a065e Fix FlatTuple compilation on older msvc.
dcdb65065f41 Fix internal memory leak in Windows _Crt report.
50cfbb726b26 Googletest export
4bf466236dbe Googletest export
200ff599496e Merge pull request #2569 from bgianfo:master
6a9d6d5c28a7 Fix compile break for Microsoft Visual Studio 2017 v141
2241be0c3f24 remove g++ 3.3 workaround: using on operator<<
e1dd49835ef2 remove g++ 2.95.0 workaround: no space after first comma in macros
a91e4e73b702 remove stale comments about older GCC versions
21d276b5c42d remove MSVC workaround: accessing namespace scope from within nested classes
a5136dbdd21e remove MSVC workaround: error C2665
ecefcbd4aa71 remove MSVC workaround: warning 4355
6748df1eab1d remove MSVC workaround: cease const dropping
e0c80b0a6e51 consistency fix for SafeMatcherCastImpl member functions
bbbc5d8a4b90 remove Nokia's Symbian compiler workaround: SafeMatcherCastImpl
298a40f023e6 remove MSVC workaround: wmain link error in the static library
a909becdc599 unify googletest and googlemock main functions
717ce7feb872 Googletest export
af71b6607f9e Merge pull request #2570 from xieyubo:1.10
679bfec6db73 Googletest export
838a32845c64 Fixed typo
5a62d400e057 README.md: added Catch2 and Google Test Explorer
51545ee515fc Googletest export
a32a20009473 Merge pull request #2588 from kuzkry:remove-workaround_g++-incorrect-comments
7a8a5bcec005 Merge pull request #2591 from kuzkry:remove-workaround_g++-using-on-operator<<
be74b4b2e0d1 Googletest export
db13ff1f0bd5 Merge pull request #2597 from kuzkry:remove-workaround_Nokia-Sybian-SafeMatcherCastImpl
0361bdf591dd Merge pull request #2596 from kuzkry:remove-workaround_msvc-wmain-link-error
39803f3c51d2 Merge pull request #2593 from kuzkry:remove-workaround_msvc-namespace-scope-from-nested-class
34e92be31cf4 Merge pull request #2604 from matepek:readme-update-with-opensource-proj
b8a92f7c86e4 Rename test case to test suite
967d8e05c2f0 Revert "unify googletest and googlemock main functions"
3957b8898b58 Revert "remove MSVC workaround: wmain link error in the static library"
b155875f32dc Merge pull request #2583 from ChristophStrehle:master
11a9482f84ac Merge pull request #2607 from oyefremov:patch-1
52825d78aac6 Merge pull request #2603 from maximilianschwab:patch-1
ae8d1fc81b14 Googletest export
cf75d4b92ecc Googletest export
1d563578c86f Merge pull request #2594 from kuzkry:remove-workaround_msvc-unneeded-const-dropping
2002f267f05b Googletest export
9ed99c6c837a Googletest export
78fdd6c00b8f Merge pull request #2609 from kuzkry:revert-2596
20b8e7a1c827 Activate GNU extensions in case of MSYS generator
6251071a20e8 Googletest export
a3097c826e4d Merge pull request #2592 from kuzkry:remove-workaround_msvc-error-C2665
88ba008c234a Merge pull request #2595 from kuzkry:remove-workaround_msvc-warning-4355
d442089d53ce Googletest export
d8eeb9760afc Googletest export
d16f86ff1cac Googletest export
5b162a79d49d Merge pull request #2589 from kuzkry:remove-workaround_g++-no-space-after-first-macro-argument
d2016469064b Workaround VS bug w.r.t empty arguments to macros
4b7809c2f523 Revert "Googletest export": Remove test for empty prefix
1800a38fb7d8 Revert "Googletest export": disallow empty prefix
0a0c82662992 Googletest export
d166e0948384 Merge pull request #2590 from kuzkry:remove-workaround_g++-stale-comments
9d8222ad6672 Disable move constructor and assignment operator for test classes.
77b3a250ea9e Review notes: Return T& from assignment operators
05701fee2896 Deleted functions as part of public interface
cc05a3ca014b Define default destructor for test classes
bf31ed376ab1 Make move operation noexcept.
6f1a8ffde934 Googletest export
d0a521255eb5 Googletest export
008629ae2163 Merge pull request #2624 from ShabbyX:master
a13a0626188b Googletest export
fbe34cecf4ff Merge pull request #2639 from trzecieu:trzeci/move_ctor_assign
153909f09633 Googletest export
0d98d87e1069 Googletest export
07ab939af757 Merge pull request #2632 from Kravlalala:cmake/mingw_msys_build
306f3754a71d Googletest export
4b9c1691c4b7 Googletest export
8417b7332210 Googletest export
c901f67ddf8a Googletest export
d854bd6acc47 Googletest export
3aa538cbfcc6 fix unit test failure on NoShortCircuitOnFailure and DetectsFlakyShortCircuit when GTEST_HAS_RTTI is 1
c7137f0b8422 Use IsReadableTypeName IsReadableTypeName in OfType function in gmock-matchers_test.cc
aa4315646b22 Remove exclusion of *-main and*-all targets
ed16134fb313 Googletest export
0b024bd91a14 Googletest export
7a8591e6e4e2 Googletest export
3e79d366e380 Googletest export
5336106b66db Googletest export
8b4817e3df37 Googletest export
18b67bfc58b1 Googletest export
c59c7bab5056 Merge pull request #2672 from ivan1993br:ivan1993br-platformio_update
9417fb401a57 Merge pull request #2665 from bysreg:fix_noshortcircuitfailure_detectsflakyshortcircuit_test
d01e356e155a Googletest export
10b1902d893e Googletest export
c378d7eb9308 remove a dead reference to the Autotools script
22397f28ef57 Googletest export
f1a6db9d4a8c Googletest export
87061810f4c7 Googletest export
7413280c52c1 Googletest export
d6ce39edf612 Googletest export
38f6608e8790 Googletest export
7bc671b8e0de Googletest export
572e261b6075 Googletest export
74b44b2d0fc2 Googletest export
4f6609129a2f Googletest export
d02e2772750f Googletest export
11d9834e98c1 Googletest export
fbf67a70d075 Googletest export
2d6d7a01c9ce Googletest export
41b5f149ab30 Googletest export
139fa202c938 Googletest export
360f5f70a3ff Googletest export
56de7cc8b554 Googletest export
d0930731d601 Googletest export
6f5fd0d7199b Googletest export
23b2a3b1cf80 Googletest export
04e52ebe7816 Fixed warnings
fd538161f484 Googletest export
909b1ccfcacc Googletest export
e588eb1ff9ff Googletest export
a1b0173df92b Make sure IsATTY does not clobber errno.
cfb5ef4e7dc0 Googletest export
878bd92e0fef Merge pull request #2716 from kuzkry:autotools-leftover
3de76551e0f0 Merge pull request #2722 from JohanMabille:warnings
0bf8ea3065f7 Googletest export
230afdb24e0f Googletest export
227faf41db5e Googletest export
c43f7100f084 Googletest export
482ac6ee6342 Googletest export
e41f31f2af3a Add tests for MockFunction deduction (#2277)
53740ebc21d5 Add support for std::function in MockFunction (#2277)
dbe804f98621 Merge pull request #2746 from Romain-Geissler-1A:master
749148f1accc Googletest export
08347d7a1604 Swap settimer and sigaction calls to avoid SIGPROF
82e5767f7812 remove dead code in googletest-output-test
acabdf65fba1 remove chapters on Autotools, Meson and plain Makefiles
1ced315a483f Googletest export
67cc66080d64 Merge pull request #2350 from adambadura:MockFunctionFromStdFunction
01e4fbf5ca60 Merge pull request #2764 from kuzkry:googletest-output-test-dead-code
dc82a33473dd Merge pull request #2765 from kuzkry:unsupported-build-systems
61f010d703b3 Googletest export
c344cb5a8d2b Googletest export
7084afda5aa3 Merge pull request #2762 from pkryger:avoid_sigprof
e3f0319d89f4 Merge pull request #2715 from kuzkry:document-premature-exit-file-protocol

Created with:
  roll-dep crashpad/third_party/gtest/gtest

Bug: 1070043
Change-Id: I39ab84ab931fa469cf8922a2d33d9b2b4e04cf4e
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2145627
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Victor Costan <pwnall@chromium.org>
2020-04-11 23:15:27 +00:00
Scott Graham
054f45724e Revert "fuchsia: Include reference to zx library"
This reverts commit de5bc33b8b45b197977430a0e74a37c00c6a3bc3.

Reason for revert: going to be removed back out of the SDK, transitions are hard :( https://bugs.fuchsia.dev/p/fuchsia/issues/detail?id=7802#c33

Original change's description:
> fuchsia: Include reference to zx library
> 
> "library zx" used to be built in to fidlc, but is now a standalone file
> (this is an SDK change). Update the build rules to adapt to this.
> 
> ref: https://logs.chromium.org/logs/crashpad/buildbucket/cr-buildbucket.appspot.com/8883567878548782112/+/steps/compile_with_ninja/0/stdout
> 
> FAILED: gen/fidl/include/fuchsia/sysinfo/c/client.cc gen/fidl/include/fuchsia/sysinfo/c/fidl.h gen/third_party/fuchsia/fidl/fuchsia.sysinfo/tables.c gen/third_party/fuchsia/fidl/fuchsia.sysinfo/intermediary_representation.json
> python ../../third_party/fuchsia/runner.py ../../third_party/fuchsia/sdk/linux-amd64/tools/fidlc --c-header gen/fidl/include/fuchsia/sysinfo/c/fidl.h --c-client gen/fidl/include/fuchsia/sysinfo/c/client.cc --tables gen/third_party/fuchsia/fidl/fuchsia.sysinfo/tables.c --json gen/third_party/fuchsia/fidl/fuchsia.sysinfo/intermediary_representation.json --name fuchsia.sysinfo --files ../../third_party/fuchsia/sdk/linux-amd64/fidl/fuchsia.sysinfo/sysinfo.fidl
> ../../third_party/fuchsia/sdk/linux-amd64/fidl/fuchsia.sysinfo/sysinfo.fidl:7:7: error: Could not find library named zx. Did you include its sources with --files?
> using zx;
>       ^~
> 
> Bug: fuchsia:7802
> Change-Id: I10c0109fd9621a19d72deb21a489c2041caeeeca
> Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2141019
> Commit-Queue: Scott Graham <scottmg@chromium.org>
> Commit-Queue: Justin Cohen <justincohen@chromium.org>
> Reviewed-by: Justin Cohen <justincohen@chromium.org>

TBR=justincohen@chromium.org,scottmg@chromium.org

Change-Id: I0328c2ff586ff733926a51d87774453cb2cf7c33
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: fuchsia:7802
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2143940
Reviewed-by: Scott Graham <scottmg@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
2020-04-09 23:56:21 +00:00
Mark Mentovai
b71a4f1ca8 doc: Update buildbot URL
Change-Id: I7a1b6b91cb3f549904e2b930dab8becaca13085c
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2144915
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-04-09 21:27:59 +00:00
Justin Cohen
b2fd7d5307 [ios] Bring up first half of UncaughtExceptionHandler.
When code raises an Objective-C exception, unwind the stack looking for
any exception handlers. If an exception handler is encountered, test to
see if it is a function known to be a catch-and-rethrow 'sinkhole'
exception handler. Various routines in UIKit and elsewhere do this, and
they obscure the exception stack, since the original throw location is
no longer present on the stack (just the re-throw) when Crashpad
captures the crash report. In the case of sinkholes, trigger an
immediate exception to capture the original stack.

The is an improvement over the alternative,
NSSetUncaughtExceptionHandler, which passes along the stack frames, but
not the stack memory contents and full exception context itself.

The details of what happens after a fatal exception is triggered are
unresolved in this CL.  For now, simply call std::terminate.

This code was inspired by chromium/src/chrome/browser/mac/
exception_processor.mm.

Bug: crashpad:31
Change-Id: Ieebc6476a0507c466c8219c10f790ec0a624e58c
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2125254
Commit-Queue: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-04-08 20:57:21 +00:00
Scott Graham
de5bc33b8b fuchsia: Include reference to zx library
"library zx" used to be built in to fidlc, but is now a standalone file
(this is an SDK change). Update the build rules to adapt to this.

ref: https://logs.chromium.org/logs/crashpad/buildbucket/cr-buildbucket.appspot.com/8883567878548782112/+/steps/compile_with_ninja/0/stdout

FAILED: gen/fidl/include/fuchsia/sysinfo/c/client.cc gen/fidl/include/fuchsia/sysinfo/c/fidl.h gen/third_party/fuchsia/fidl/fuchsia.sysinfo/tables.c gen/third_party/fuchsia/fidl/fuchsia.sysinfo/intermediary_representation.json
python ../../third_party/fuchsia/runner.py ../../third_party/fuchsia/sdk/linux-amd64/tools/fidlc --c-header gen/fidl/include/fuchsia/sysinfo/c/fidl.h --c-client gen/fidl/include/fuchsia/sysinfo/c/client.cc --tables gen/third_party/fuchsia/fidl/fuchsia.sysinfo/tables.c --json gen/third_party/fuchsia/fidl/fuchsia.sysinfo/intermediary_representation.json --name fuchsia.sysinfo --files ../../third_party/fuchsia/sdk/linux-amd64/fidl/fuchsia.sysinfo/sysinfo.fidl
../../third_party/fuchsia/sdk/linux-amd64/fidl/fuchsia.sysinfo/sysinfo.fidl:7:7: error: Could not find library named zx. Did you include its sources with --files?
using zx;
      ^~

Bug: fuchsia:7802
Change-Id: I10c0109fd9621a19d72deb21a489c2041caeeeca
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2141019
Commit-Queue: Scott Graham <scottmg@chromium.org>
Commit-Queue: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Justin Cohen <justincohen@chromium.org>
2020-04-08 20:45:01 +00:00
Joshua Peraza
c4cc4e6ac9 android: initialize signal dispositions
Bionic installs signal handlers which request crash
dumps from Android's debuggerd, but there are errors
in how signals which aren't automatically re-raised
are handled on Marshmallow (API 23).

Before requesting a dump, Bionic acquires a lock to
communicate with debuggerd and expecting imminent
death, never releases it.

While handling the dump request, debuggerd allows
the dying process to continue before
ptrace-detaching it. So, when Bionic manually
re-raises a signal, it is intercepted by debuggerd
and the dying process is allowed to live.

Bionic restores SIG_DFL for the signal it's just
handled, but if a different crash signal is later
recieved, Bionic attempts to reacquire the lock to
communicate with debuggerd and blocks forever.

Disable Bionic's signal handlers for these signals
on Marshmallow.

Bug: chromium:1050178
Change-Id: Ia1fc5a24161a95931684d092ba8fee2f0dfbbdbb
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2134513
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-04-08 17:21:05 +00:00
Sukumar Mokkarala
9da2573ca9 linux: Patch for capget syscall error
Bug: crashpad:332
Change-Id: If867fd1780e4be1567048ad7fab29f5e61560aff
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2120780
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-04-03 04:19:02 +00:00
Mark Mentovai
194e23910c Change for loops to use const references where they did not previously
From cl/304219049:

Optimize C++11 range-based for loops where the variable is copied in
each iteration but it would suffice to obtain it by const reference.
This is only applied to loop variables of types that are expensive to
copy which means they are not trivially copyable or have a non-trivial
copy constructor or destructor.

To ensure that it is safe to replace the copy with a const reference,
the following heuristic is employed:
 - The loop variable is const qualified.
 - The loop variable is not const, but only const methods or operators
   are invoked on it, or it is used as const reference or value argument
   in constructors or function calls.

Change-Id: I5755eb523f60744079b0eb50424395079dcb0f02
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2132844
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-04-01 21:36:17 +00:00
Justin Cohen
e39aacbd66 Roll crashpad/third_party/mini_chromium/mini_chromium/ c426ff98e..731e08f06 (1 commit)
c426ff98e1..731e08f069

$ git log c426ff98e..731e08f06 --date=short --no-merges --format='%ad %ae %s'
2020-03-31 justincohen Strip arm64e from XCTRunner if present.

Created with:
  roll-dep crashpad/third_party/mini_chromium/mini_chromium

Change-Id: Ic682d6c98e313eaf56e58ef1eb90a65b48775f1d
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2132727
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Justin Cohen <justincohen@chromium.org>
2020-04-01 18:40:47 +00:00
Mark Mentovai
61a4f3d7d6 mac: kern.nx is not present in 10.14.5 et seq, but NX is always enabled
This updates the comment from d3859d91fde0, which referred to 10.14.4 as
the OS version where kern.nx stoppoed working. Testing indicates that
kern.nx works in 10.13.6 17G12034 and 10.14.4 18E226. It does not work
in 10.14.5 18F132 or 10.15.4 19E266.

Bug: crashpad:295
Change-Id: Id2f222700fb626de707d60980fedbd79e62990e6
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2127566
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-03-30 17:08:24 +00:00
Justin Cohen
af62d7fcf6 Correct use of -[NSString UTF8String].
Fixes the chromium presubmit error for UTF8String:
 The use of -[NSString UTF8String] is dangerous as it can return null
 even if |canBeConvertedToEncoding:NSUTF8StringEncoding| returns YES.
 Please use |SysNSStringToUTF8| instead.

Bug: crashpad:31
Change-Id: Iaf939012ea9d342f6a01af58119cef962319aefe
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2119613
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Justin Cohen <justincohen@chromium.org>
2020-03-26 04:19:33 +00:00
Mark Mentovai
d3859d91fd mac: kern.nx is not present in 10.14.4 et seq, but NX is always enabled
Bug: crashpad:295
Change-Id: Id1de68d402d229b43fab5e8d15b0fe23c618ce08
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2119645
Commit-Queue: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Justin Cohen <justincohen@chromium.org>
2020-03-26 01:07:10 +00:00
Justin Cohen
faae6470cf [ios] Bring up first draft exceptions snapshot.
Gather most of the necessary information for the exceptions snapshot.

Note that:
 - The 'capture' portion of this CL will be moved out of the snapshot
   interface and into a separate in-process dump to disk location.
 - All of the pointer dereferences need to be wrapped in vm_read.
 - The read-fast-and-dump logic in thread_snapshot may end up in a
   different file completely, but until we pick a
   serialization/deserialization method, keep it as-is.

Bug: crashpad:31
Change-Id: Iae4af436cddabd2302689b76c8a4574eb8e48c0e
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2098744
Commit-Queue: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-03-25 20:36:06 +00:00
Justin Cohen
d9c1ca1216 [ios] Bring up first draft system snapshot and iOS data collector.
Gather most of the necessary information for the system snapshot.

Note that:
 - The 'capture' portion of this CL will be moved out of the snapshot
   interface and into a separate in-process dump to disk location.
 - All of the pointer dereferences need to be wrapped in vm_read.
 - The read-fast-and-dump logic in thread_snapshot may end up in a
   different file completely, but until we pick a
   serialization/deserialization method, keep it as-is.

Bug: crashpad:31
Change-Id: Iac82491fdb4a823163f02149f52a1e18e26fa9de
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2090173
Commit-Queue: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-03-25 20:31:06 +00:00
Justin Cohen
311a5a2fdd Fix chromium build.
Chromium's sources_assignment_filter broke the build.

Change-Id: I741ce06feafcfe7abd69f65ad9c871b66452dd83
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2117368
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Justin Cohen <justincohen@chromium.org>
2020-03-24 22:08:52 +00:00
Joshua Peraza
b75c578373 linux: disable arguments test on old kernels
Bug: chromium:1050178
Change-Id: Ideafa5971cbaf76fa6865f671158958e7abb3a8c
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2117366
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-03-24 21:05:17 +00:00