Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Use googletest flag macros to access googletest flags. The implementation details of flags can change; fixing this proactively makes it easier to roll googletest in chromium. Bug: chromium:1409870 Change-Id: Ib27a922a5b3147386a36f98b42e60950e2215190 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5081703 Commit-Queue: Daniel Cheng <dcheng@chromium.org> Reviewed-by: Robert Sesek <rsesek@chromium.org> * Fix improper use of bit_cast bit_cast should never be used on pointers, as it doesn't avoid UB and can lose qualifiers. Fortunately, the only use of bit_cast on a pointer was to cast nullptr into a function pointer, and because nullptr will implicitly behave as any kind of pointer, that cast isn't needed. Bug: none Change-Id: I3ad79b36b7fb5ab53d4b4b6dfc82dea883ec8b53 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5106728 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Avi Drissman <avi@chromium.org> * [mac] mach_absolute_time() -> clock_gettime_nsec_np(CLOCK_UPTIME_RAW) https://developer.apple.com/documentation/kernel/1462446-mach_absolute_time > Prefer to use the equivalent clock_gettime_nsec_np(CLOCK_UPTIME_RAW) in nanoseconds. The two are equivalent: https://github.com/apple-oss-distributions/Libc/blob/c5a3293354e22262702a3add5b2dfc9bb0b93b85/gen/clock_gettime.c#L118 Change-Id: I1c7a08d821d1840b74fc5eaa0e9ceca2ade5bbfc Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5085307 Commit-Queue: Ben Hamilton <benhamilton@google.com> Reviewed-by: Justin Cohen <justincohen@chromium.org> Reviewed-by: Mark Mentovai <mark@chromium.org> * Qualify bit_cast with base:: The real Chromium base/bit_cast.h is in the base namespace. mini_chromium's version was just changed to be in the base namespace as well. Roll to the latest mini_chromium and scope all calls to bit_cast. Bug: chromium:1506769 Change-Id: I7b25ee512f67694ef6ed3d0250e4f6a6db151eb3 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5116880 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Avi Drissman <avi@chromium.org> * [ios] Add arm64e support to in_process_intermediate_dump_handler Change-Id: Ifc373d313db71872cc0fd7706da2bdc07cf4ba1b Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5126940 Reviewed-by: Justin Cohen <justincohen@chromium.org> Commit-Queue: Ben Hamilton <benhamilton@google.com> * [build] Re-enable action tracing Avoid unconditionally running mig in incremental builds, and causing un-necessary re-build of downstream targets. Bug: b/42147841 Bug: b/42084680 Change-Id: I961189870aec8f0b1a1ced22105730218664e109 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5171755 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: David Fang <fangism@google.com> * Roll crashpad/third_party/mini_chromium/mini_chromium/ ac3e73239..cc2ae8eb0 (1 commit) https://chromium.googlesource.com/chromium/mini_chromium/+log/ac3e73239534..cc2ae8eb01d0 $ git log ac3e73239..cc2ae8eb0 --date=short --no-merges --format='%ad %ae %s' 2024-01-10 pbos Add Flush() method to LogMessage Created with: roll-dep crashpad/third_party/mini_chromium/mini_chromium Bug: chromium:1409729 Change-Id: I59b4c9fc9701f3a504b89f396de9da49b333712f Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5185844 Commit-Queue: Peter Boström <pbos@chromium.org> Reviewed-by: Mark Mentovai <mark@chromium.org> * Roll crashpad/third_party/mini_chromium/mini_chromium/ cc2ae8eb0..1e64ecb51 (1 commit) https://chromium.googlesource.com/chromium/mini_chromium/+log/cc2ae8eb01d0..1e64ecb51edf $ git log cc2ae8eb0..1e64ecb51 --date=short --no-merges --format='%ad %ae %s' 2024-01-10 pbos Make ~LogMessage virtual Created with: roll-dep crashpad/third_party/mini_chromium/mini_chromium Bug: chromium:1409729 Change-Id: Ib0011b85c35c781ea35e0d399cccb81b54916ca4 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5186000 Commit-Queue: Peter Boström <pbos@chromium.org> Reviewed-by: Mark Mentovai <mark@chromium.org> * Roll crashpad/third_party/mini_chromium/mini_chromium/ 1e64ecb51..c7fccaa8e (1 commit) https://chromium.googlesource.com/chromium/mini_chromium/+log/1e64ecb51edf..c7fccaa8ec14 $ git log 1e64ecb51..c7fccaa8e --date=short --no-merges --format='%ad %ae %s' 2024-01-10 pbos Implement base::ImmediateCrash() Created with: roll-dep crashpad/third_party/mini_chromium/mini_chromium Bug: chromium:1409729 Change-Id: Iaa4f4d81027cb0ddafe85bab8d186949eb7f852e Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5186004 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Peter Boström <pbos@chromium.org> * Roll crashpad/third_party/mini_chromium/mini_chromium/ c7fccaa8e..203a01130 (1 commit) https://chromium.googlesource.com/chromium/mini_chromium/+log/c7fccaa8ec14..203a01130fac $ git log c7fccaa8e..203a01130 --date=short --no-merges --format='%ad %ae %s' 2024-01-10 pbos Fix base::ImmediateCrash() IWYU Created with: roll-dep crashpad/third_party/mini_chromium/mini_chromium Bug: chromium:1409729 Change-Id: Ic9fee112a48b66c92b8446270280d5f2a3d0ef59 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5187485 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Peter Boström <pbos@chromium.org> * Add [[noreturn]] version of NtstatusLogMessage This will be used by base/logging.h in chromium to make sure that LOG(FATAL) variants never return and are properly understood as [[noreturn]] by the compiler. Once that's landed in chromium it'll be up/downstreamed into mini_chromium as well. Bug: chromium:1409729 Change-Id: I75340643fe075475f997bbc45250fa10df63c9fa Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5185996 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Peter Boström <pbos@chromium.org> * ios: Add crashpad_uptime_ns crash key to iOS reports. This CL introduces a new crash key 'crashpad_uptime_ns' that records the number of nanoseconds between when Crashpad was initialized and when a snapshot is generated. Crashpad minidumps record the MDRawMiscInfo process_create_time using a sysctl(KERN_PROC).kp_proc.p_starttime. This time is used to display the 'uptime' of a process. However, iOS 15 and later has a feature that 'prewarms' the app to reduce the amount of time the user waits before the app is usable. This mean crashes that may happen immediately on startup would appear to happen minutes or hours after process creation time. While initial implementations of prewarming would include some parts of main, since iOS16 prewarming is complete before main, and therefore before Crashpad is typically initialized. Bug: crashpad:472 Change-Id: Iff960e37ae40121bd5927d319a2767d1cafce846 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5171091 Reviewed-by: Ben Hamilton <benhamilton@google.com> Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Justin Cohen <justincohen@chromium.org> * Remove should-be-dead code after PLOG(FATAL) This will trigger dead-code warnings in chromium once LOG(FATAL) is understood as [[noreturn]], which needs to be fixed in crashpad first. Bug: 1409729 Change-Id: I75cb4d93e648ca9804f1299345e52bb3e2834cd9 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5193351 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Peter Boström <pbos@chromium.org> * doc: Upgrade the crashpad-home App Engine app to the go121 flex runtime Change-Id: I0a30b816e2550e7df6d7777c6d27e6104fc2f9fa Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5206711 Reviewed-by: Robert Sesek <rsesek@chromium.org> Commit-Queue: Mark Mentovai <mark@chromium.org> * ios: Allow missing exception thread id from thread list. It's expected that iOS intermediate dumps can be written with missing information, but it's better to try and report as much as possible rather than drop the incomplete minidump. Bug: b/284959148 Change-Id: I04110b576a4ee552814234d559c9ba85db0382f0 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4582167 Commit-Queue: Justin Cohen <justincohen@chromium.org> Reviewed-by: Mark Mentovai <mark@chromium.org> * Avoid assuming string_view iterators are char* This assumption is non-portable and prevents Chromium from using bounded iterators in libc++. Bug: chromium: 1519908 Change-Id: Iafe6639ef3bc896d6fa4fb3ceb7ac0b546363017 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5237292 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: danakj <danakj@chromium.org> * [fxbug.dev] Migrate bug numbers This changes fxbug.dev/ URLs from Monorail bug numbers to the new Fuchsia Issue Tracker numbers. The migration to the new issue tracker was announced here: https://groups.google.com/a/fuchsia.dev/g/announce/c/GOYfJozEqmk/m/qsGsaJ7UAAAJ Bug: 298074672 Change-Id: I5f4b7a26a3f41bf539fa79d15e1a108ea35a5b29 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5246697 Commit-Queue: Mark Mentovai <mark@chromium.org> Reviewed-by: Mark Mentovai <mark@chromium.org> * ios: Read dyld modules in reverse order. The change in macOS 14's dyld to insert new modules in the front of `dyld_all_image_infos` means that if the any images are loaded during an exception while iterating the modules list, the primary executable will be missed. Instead, read the modules in reverse order. Change-Id: I49f6468173f18ef4bd0f326c84e4b48cfc696cd3 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5249275 Commit-Queue: Justin Cohen <justincohen@chromium.org> Reviewed-by: Mark Mentovai <mark@chromium.org> * Add Update method to CrashpadInfo This change adds a method to update a CrashpadInfo stream. As part of this change, AddUserDataMinidumpStream() now returns a handle to the added stream. This handle can be passed to UpdateUserDataMinidumpStream() if a new version of the stream needs to be attached to the crash report. This method is needed for e.g., allowing Chrome's System Profile to update, as it contains some data that takes a while to collect. Bug: crashpad:474 Change-Id: I19e935a6904d8843215582e5606b189479ee338b Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5260024 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Jesse McKenna <jessemckenna@google.com> * Honor ios_is_app_extension chromium build flag If building for chromium, honor the ios_is_app_extension gn variable that is set per toolchain. When it is defined, the code is built for an application extension (i.e. -fapplication-extension is passed to the compiler). Use CRASHPAD_IS_IOS_APP_EXTENSION build guard to not compile code that use unavailable extension when ios_is_app_extension is set. If the variable is not set, then check at runtime whether the API can be used or not (if the crashpad client uses the same toolchain for the main application and its application extensions). This is required to pass -fapplication-extension to the compiler when building application extensions (which allow catching API that is not available to application extensions). Bug: 40120082 Change-Id: I28d545fcfd0f8662430c40ff202b79b0c2b2ff8b Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5286216 Reviewed-by: Justin Cohen <justincohen@chromium.org> Commit-Queue: Sylvain Defresne <sdefresne@chromium.org> * Fix leaky CrashpadInfo test CrashpadInfo::AddUserDataMinidumpStream() and UpdateUserDataMinidumpStream() allocate memory for the newly added streams. This change makes the CrashpadInfo test free that allocated memory to prevent memory leaks from these tests. This is intended to fix the ASAN failures seen on crrev.com/c/5285881: https://ci.chromium.org/ui/p/chromium/builders/try/linux_chromium_asan_rel_ng/1839072/overview Bug: crashpad:474 Change-Id: I6e030291594d22e316942a58805a177ce448053b Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5292137 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Jesse McKenna <jessemckenna@google.com> * [Fuchsia] remove use of fuchsia mac sdk Bug: b/325495632 Change-Id: I19df5b44b76efcdb050344e79bcc2dfd18d8e289 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5299466 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Mark Mentovai <mark@chromium.org> * Properly update iterator Bug: 325296797 Change-Id: I39f76519c46804ad663172abf91ef582bde135e7 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5310754 Commit-Queue: Joshua Peraza <jperaza@chromium.org> Reviewed-by: Justin Cohen <justincohen@chromium.org> * Log argv[0] for failing spawns This adds argv[0] for PLOG(FATAL) calls following a failed posix_spawn or execve call to make logs more useful. Bug: chromium:324982367 Change-Id: I179928ec9f791ce5b365b3444aa3bb667f4ec4b3 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5315332 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Peter Boström <pbos@chromium.org> * Increase kMaxNumberOfAnnotations Chrome on ChromeOS is starting to run into problems where there are more than 200 annotations, primarily because we use a lot of command-line switches (40 or more) and commandline-enabled-features as well, each of which takes up an annotation. It's still rare (100s a day) but will probably become worse over time as more CrashKey uses are added. Increase kMaxNumberOfAnnotations to 400. BUG=296821415 Change-Id: Iba7049014ee3c5ae9c45c4022600eaba50acd403 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5354336 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Ian Barkley-Yeung <iby@chromium.org> Reviewed-by: Joshua Peraza <jperaza@chromium.org> * ios: Disable annotations tests on older simulators on macOS 14.3 There appears to be a change in dyld in macOS 14.3 that iOS 17 accounts for, but older simulators do not. This causes the main binary to be listed twice when iterating modules, breaking some tests. Bug: crbug.com/328282286 Change-Id: I71909fbc13bee6de23b10ffd92a791067f8ea909 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5353754 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Justin Cohen <justincohen@chromium.org> * Make AnnotationList's iterator compliant to input iterator This CL make the iterators implemented by AnnotationList compliant to the requirements imposed by the C++ standard on input iterators. Change-Id: I263c94a97f5bcd7edd5ef4d8b65fa28b11876974 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5093147 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Mark Mentovai <mark@chromium.org> * Fix invalid check for valid key of Pointer Authentication Arm's Pointer Authentication uses two keys for signing pointers, A-key and B-key. Although by default Clang uses the A-key if PAC support is enabled at compile time, this behaviour might be overridden via compiler command line. This CL fixes the check for the B-key being enabled. The key that shall be used for Pointer Authentication is denoted by bits 0 (A-key) or 1 (B-key) of __ARM_FEATURE_PAC_DEFAULT. Hence, the previous way of checking by using bits 0 and 2 does not correctly identify the B-key. Bug: 40608466 Change-Id: Ib2f226baa12a7145fa0b6e486e49d36e6b0a3cd7 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5341090 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Mark Mentovai <mark@chromium.org> * ios: Update exception test for Chromium release builds. After https://crrev.com/c/5375084, Chromium __libcpp_verbose_abort is handled differently for official non-dcheck builds. This change fixes the test expectation for release non-official builds. Bug: 330168249 Change-Id: Iceb6d327f9e93fd366cc07abe27eefd1adf06472 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5378380 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Justin Cohen <justincohen@chromium.org> * ios: Capture signal exception context memory regions correctly. Previously, Crashpad would only capture iOS thread context memory regions by iterating the task_threads->thread_get_state's. For Mach exception this worked as intended. However, for signal exceptions this missed the registers from the actual signal context. This change correctly captures these regions and stores them in the exception snapshot. Change-Id: I494e753a25c2687e61b5183ed0135f520ca8bf52 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5380505 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Justin Cohen <justincohen@chromium.org> * Move crashpad to using Mac-13|Mac-14 (like chromium) and latest win sdk This should give crashpad a newer xcode and msvc that support C++20. These changes need to land separately from the C++20 usage, as they do not get applied until after landing, so can't affect the CQ from inside the CQ. Bug: 40284755 Change-Id: I3ae72befa008bfb37bac882de0986c5bcf9de079 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5425460 Commit-Queue: danakj <danakj@chromium.org> Reviewed-by: Mark Mentovai <mark@chromium.org> * Roll mini_chromium to pick up the latest version of base::span. Also enables C++20 as span now depends on it. Roll buildtools to grab a newer libc++ that supports C++20. Explicitly capture `this` in lambdas in cpp-httplib as the implicit capture through `=` is deprecated and causes an error in C++20. Update the MacOS version to "Mac-13|Mac-14" which is the current value of `os.MAC_DEFAULT` in Chromium infra in order to have C++20 support in the std library on iOS. Moves iOS tests to run on iPhone 13 and includes a mini_chromium roll to fix Xcode 14.3 egtests. Bug: 40284755 Change-Id: Ic078f07d12473f2aaed5e84df0f0a7fb7b8c35c3 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5443384 Commit-Queue: Justin Cohen <justincohen@chromium.org> Reviewed-by: danakj <danakj@chromium.org> * [ios] Fix TSAN issue and Mach port leak in CrashpadClient There were two issues with the iOS implementation of CrashpadClient which I reported in https://crbug.com/crashpad/481: 1) TSAN found a data race in ResetForTesting() when it modified the ScopedMachReceiveRight while the Mach exception port thread was reading it 2) The Mach port connected to the exception server was never deallocated This CL fixes both issues. Change-Id: I5bd4f79ae6d0eccca954d663be7a36f8ceb0a0e8 Bug: https://crbug.com/crashpad/481 Bug: b:332305593 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5410301 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Justin Cohen <justincohen@chromium.org> * Use byte conversions over the byte swap functions base/sys_byteorder.h is going away. Instead, use the byte conversions in base::numerics to convert from a byte array in big endian to an integer. This avoids putting big endian data into integer types at all. mini_chromium was rolled and crashpad updated to work with newer mac/windows toolchains in order to support C++20 in f9cee5c. Bug: 40284755 Change-Id: If690847b7aa54b0216e73ec297eae3d0bca2fa57 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5402184 Commit-Queue: danakj <danakj@chromium.org> Reviewed-by: Mark Mentovai <mark@chromium.org> * Replace std::unique_ptr<T[]> with HeapArray in process_info.cc and process_info_test.cc Bug: crashpad: 326459035,326458915,326459055 Change-Id: Ifb91297b6097aa81a9d5c883b2c284e9fdd512a8 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5463361 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Arthur Wang <wuwang@chromium.org> * Fix incorrect DCHECK in CET contexts This DCHECK() was not correct. When dumping a process with CET enabled the cetumsr and cetussp registers are not available in the context obtained for the exception record. All contexts to be written to a minidump must have the same context format so those registers will be present for captured threads. It is therefore ok for the context to expect extended xsave registers but for them to be zero in some cases. Bug: 337665168 Change-Id: If7e5f40fe8eda6799b034991cb87e89437cb4821 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5507588 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Alex Gough <ajgo@chromium.org> * Replace std::is_pod usage Replacing std::is_pod usage as per the following compilation error: ``` ../../util/misc/uuid.cc:44:20: error: 'is_pod<crashpad::UUID>' is deprecated: use 'is_standard_layout && is_trivial' instead [-Werror,-Wdeprecated-declarations] static_assert(std::is_pod<UUID>::value, "UUID must be POD"); ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/type_traits:818:5: note: 'is_pod<crashpad::UUID>' has been explicitly marked deprecated here _GLIBCXX20_DEPRECATED_SUGGEST("is_standard_layout && is_trivial") ``` Bug: None Change-Id: I1d61ee12261877f7f1f84f0ea15d262d22959766 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5472885 Commit-Queue: Andrew Williams <awillia@chromium.org> Reviewed-by: Mark Mentovai <mark@chromium.org> * Make NTSTATUS_LOG less likely to change ::GetLastError() value This better ensures that using code like `NTSTATUS_LOG(ERROR, status) << ::GetLastError()` would print the intended value. This isn't done today by the code AFAICT, but making this change primarily for consistency with the change to Chromium logging in https://chromium-review.googlesource.com/c/chromium/src/+/5443628 Bug: chromium:333445539 Change-Id: I49f16b9ed78d98a0b2f178f58465002aad757ae5 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5474027 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Andrew Williams <awillia@chromium.org> * Use the span version of RandBytes Some unique_ptr<T[]> are also changed to HeapArray in order to facilitate the change. Bug: chromuim: 40284755 Change-Id: I30b9d55ff81f23c63ad4958786740f67ee612024 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5512569 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: danakj <danakj@chromium.org> * Include build_config.h before checking COMPILER_MSVC This is caught by chromium presubmit when rolling crashpad. R=mark@chromium.org Change-Id: Ida9ff07e7b2bd27808c092afbc5a1345fa29a4f3 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5515300 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: danakj <danakj@chromium.org> * Roll mini_chromium to remove the pointer-based overload of RandBytes() R=mark@chromium.org Bug: 40284755 Change-Id: I2f491cc3f630767e607ea1df7d21791be522b4de Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5518909 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: danakj <danakj@chromium.org> * ios: Use correct address when storing register memory. The memory region data saved in the intermediate dump is an address offset by 128 bytes. However, the MemorySnapshot generated was using the original address and not the offset address. The same data is being captured in the minidump. Change-Id: Ia34912c035319e79cf446a130e662084f4ab51ea Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5529059 Commit-Queue: Justin Cohen <justincohen@chromium.org> Reviewed-by: Joshua Peraza <jperaza@chromium.org> Reviewed-by: Rohit Rao <rohitrao@chromium.org> * Replace std::unique_ptr<T> with HeapArray Bug: crashpad: 326459659,326458942,326459376,326459390,326459417,326458979,326459333,326459016,326458338,326458738,326459156,326459512,326458694 Change-Id: I04724530cbef50a8d3c18f306d16c0bbf3b0815b Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5512394 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Arthur Wang <wuwang@chromium.org> * Pull latest Fuchsia toolchain Change-Id: Ia328c6defc59fc06fcf69a2875a0eed335c8dd78 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5532142 Commit-Queue: Arthur Wang <wuwang@chromium.org> Reviewed-by: Mark Mentovai <mark@chromium.org> * Add build/build_config.h in capture_memory.cc Change-Id: I486e7bcdb205de5b24846a8e782a6163c2ce8829 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5531439 Commit-Queue: Arthur Wang <wuwang@chromium.org> Reviewed-by: Mark Mentovai <mark@chromium.org> * Replace std::unique_ptr with base::HeapArray in process_memory.cc Bug: crashpad:326459219 Change-Id: Ic5e252285ed1fb1769eef67ddaea00a830d0ee6a Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5535006 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Arthur Wang <wuwang@chromium.org> * Fix format issue Change-Id: I9756fa76f94cfcb9edc9f8df8ecfa5ff33918c22 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5542412 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Arthur Wang <wuwang@chromium.org> * Add guard pages to test stacks Bug: b:340659332 Change-Id: I4c2c82a1868d7a4f4a062a4e7a64258deedfb794 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5542248 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Joshua Peraza <jperaza@chromium.org> * [ScopedSpinGuard] Use std::atomic::compare_exchange_strong() for spinlock Previously, ScopedSpinGuard used std::atomic::compare_exchange_weak() in a loop to implement a spinlock. After looping for the specified number of nanoseconds, it would give up and return an error. A few bugs have come in on ARM platforms (https://crbug.com/340980960, http://b/296082201) which indicate that this can fail even in single-threaded cases where nothing else has the spinlock. From https://cbloomrants.blogspot.com/2011/07/07-14-11-compareexchangestrong-vs.html : > compare_exchange_weak exists for LL-SC (load linked/store > conditional) type architectures (Power, ARM, basically everything > except x86), because on them compare_exchange_strong must be > implemented as a loop, while compare_exchange_weak can be > non-looping. and: https://en.cppreference.com/w/cpp/atomic/atomic/compare_exchange#Notes > compare_exchange_weak is allowed to fail spuriously, that is, acts > as if *this != expected even if they are equal. When a > compare-and-exchange is in a loop, compare_exchange_weak will yield > better performance on some platforms. > > When compare_exchange_weak would require a loop and > compare_exchange_strong would not, compare_exchange_strong is > preferable [...] My conclusion is that this logic needs to use `compare_exchange_strong` to avoid spurious failures on ARM in the common case when there's no other thread holding the spinlock. Change-Id: I2a08031db6b219d7d14a5cd02b3634985f81ab06 Bug: b:340980960 Change-Id: I2a08031db6b219d7d14a5cd02b3634985f81ab06 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5545257 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Ben Hamilton <benhamilton@google.com> * Roll crashpad/third_party/mini_chromium/mini_chromium/ a6607b1fd..5856e1ea6 (2 commits) https://chromium.googlesource.com/chromium/mini_chromium/+log/a6607b1fd76b..5856e1ea610f $ git log a6607b1fd..5856e1ea6 --date=short --no-merges --format='%ad %ae %s' 2024-05-16 pbos Add NOTREACHED_IN_MIGRATION() 2024-05-11 pwjworks Remove workaround for missing std::atomic_thread_fence Created with: roll-dep crashpad/third_party/mini_chromium/mini_chromium Bug: chromium:40580068 Change-Id: I6d1385739042fa5b826bfa91c50b914eebaaf8fd Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5544927 Commit-Queue: Peter Boström <pbos@chromium.org> Reviewed-by: Mark Mentovai <mark@chromium.org> * Use NOTREACHED_IN_MIGRATION() This was generated by replacing " NOTREACHED()" with " NOTREACHED_IN_MIGRATION()" and running git cl format. This prepares for making NOTREACHED() [[noreturn]] alongside NotReachedIsFatal migration of existing inventory. Bug: chromium:40580068 Change-Id: Idb68e2fc8adba180350b0595fd494cf0f206bded Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5548246 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Peter Boström <pbos@chromium.org> * infra: Move crashpad ci/try builds from Ubuntu-18.04 to Ubuntu-22.04 These are the last remaining jobs on the last remaining bionic pools. Moving these over should let the bionic flex pool finally be decommed. All of chrome/chromium has been on Ubuntu-22.04 for months now. So hopefully this is transparent for crashpad. Bug: chromium:40255350 Change-Id: I82828c0ae0c6efc8868b33779d7ebf5fb9b16116 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5550958 Commit-Queue: Ben Pastene <bpastene@chromium.org> Reviewed-by: Mark Mentovai <mark@chromium.org> * ios: Remove duplicate implementations of ReadStringSysctlByName Bug: crashpad: 480 Change-Id: Ie37c557d2170f6d96968ec4922ec52bfc6ad8136 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5580854 Reviewed-by: Mark Mentovai <mark@chromium.org> * [Fuchsia] Run fuchsia-gn-sdk from chromium The latest build rules have the ffuchsia-api-level. Need https://crrev.com/c/5586319. Bug: fuchsia:42085580, fuchsia:327691011 Change-Id: I21383e02f9fff3db9405c0dbe42051122a325003 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5585353 Commit-Queue: Zijie He <zijiehe@google.com> Reviewed-by: Mark Mentovai <mark@chromium.org> * DEPS: fix version of fuchsia/sdk/core to avoid build error This is a temporary workaround to avoid error like https://ci.chromium.org/ui/p/crashpad/builders/try/crashpad_fuchsia_arm64_dbg/1299/overview Bug: 41489832 Change-Id: Ia5404b5d7a2f01f53211fba7b8d602b9236ccbd3 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5599904 Commit-Queue: Takuto Ikuta <tikuta@chromium.org> Reviewed-by: Mark Mentovai <mark@chromium.org> * remove references to goma goma is not maintained anymore. Bug: 41489832 Change-Id: Ic82524205c7593ddba041c253e7d6283f9c89f33 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5599864 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Takuto Ikuta <tikuta@chromium.org> * Revert "DEPS: fix version of fuchsia/sdk/core to avoid build error" This reverts commit a63adda. Reason for revert: This is not necessary after https://crrev.com/c/5585353. Original change's description: > DEPS: fix version of fuchsia/sdk/core to avoid build error > > This is a temporary workaround to avoid error like > https://ci.chromium.org/ui/p/crashpad/builders/try/crashpad_fuchsia_arm64_dbg/1299/overview > > Bug: 41489832 > Change-Id: Ia5404b5d7a2f01f53211fba7b8d602b9236ccbd3 > Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5599904 > Commit-Queue: Takuto Ikuta <tikuta@chromium.org> > Reviewed-by: Mark Mentovai <mark@chromium.org> Bug: 41489832 Change-Id: I2c6d3c3008047a6f79fb3bfddd8240a758ee645a Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5599914 Reviewed-by: Mark Mentovai <mark@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Takuto Ikuta <tikuta@chromium.org> * Update minichromium * Update crashpad C++ standard to 20 via minichromium * Update minichromium build-script --------- Co-authored-by: Daniel Cheng <dcheng@chromium.org> Co-authored-by: Avi Drissman <avi@chromium.org> Co-authored-by: Ben Hamilton <benhamilton@google.com> Co-authored-by: David Fang <fangism@google.com> Co-authored-by: Peter Boström <pbos@chromium.org> Co-authored-by: Justin Cohen <justincohen@google.com> Co-authored-by: Mark Mentovai <mark@chromium.org> Co-authored-by: danakj <danakj@chromium.org> Co-authored-by: Mitchell Kember <mkember@google.com> Co-authored-by: Jesse McKenna <jessemckenna@google.com> Co-authored-by: Sylvain Defresne <sdefresne@chromium.org> Co-authored-by: Hzj_jie <zijiehe@google.com> Co-authored-by: Joshua Peraza <jperaza@chromium.org> Co-authored-by: Ian Barkley-Yeung <iby@chromium.org> Co-authored-by: André Kempe <andre.kempe@arm.com> Co-authored-by: Arthur Wang <wuwang@google.com> Co-authored-by: Alex Gough <ajgo@chromium.org> Co-authored-by: Andrew Williams <awillia@chromium.org> Co-authored-by: Ben Pastene <bpastene@chromium.org> Co-authored-by: Takuto Ikuta <tikuta@chromium.org>
- Loading branch information