2142 Commits

Author SHA1 Message Date
Justin Cohen
d4c3de1afa Fix some spacing and typos in ios documentation.
Change-Id: I401c597c3c81c257d25e9e8a5e542521f52142dd
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2785784
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Justin Cohen <justincohen@chromium.org>
2021-03-25 16:50:13 +00:00
Justin Cohen
2dbd019bc2 ios: Add iOS crashpad overview documentation.
Adds an overview of the limitations of crashpad on the iOS platform,
including explanations of the in-process client and handler, and the
intermediate dump format used.

Bug: crashpad: 31
Change-Id: I1eb6add115570147e2de1be1002c5a4aa366184b
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2706018
Commit-Queue: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2021-03-24 23:37:02 +00:00
Prashanth Swaminathan
6b55b8adba [crashpad] Migrate to new component templates
Bug: fuchsia:65068
Test: Ran crashpad-test on device.
Test: fx shell crashpad_database_util
Change-Id: I4192030623fc85da9215039424e0bbec7eef8e30
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2758252
Reviewed-by: Scott Graham <scottmg@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
2021-03-17 23:58:11 +00:00
Jan Wilken Dörrie
d5c8ee5fff Roll crashpad/third_party/mini_chromium/mini_chromium/ 0dcac3bf0..329ca82f7 (1 commit)
0dcac3bf03..329ca82f73

$ git log 0dcac3bf0..329ca82f7 --date=short --no-merges --format='%ad %ae %s'
2021-03-15 jdoerrie Remove base::char16 and base::string16

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

Bug: chromium:1184339
Change-Id: I414217a880a9267bf2693fd80f3097c208d2aeaf
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2760344
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
2021-03-15 17:52:02 +00:00
Jan Wilken Dörrie
2872c0ea4e [LSC] Remove base::char16 and base::string16 aliases
This change removes usages of the base::char16 and base::string16 type
aliases in favor of using char16_t and std::u16string directly.

Bug: chromium:1184339
Change-Id: Ieb790cbe2ce98d91865cd21d98616195a57b3903
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2742482
Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2021-03-08 21:08:44 +00:00
Jan Wilken Dörrie
d8c4d3adee Roll crashpad/third_party/mini_chromium/mini_chromium/ 0e081e6a0..0dcac3bf0 (2 commits)
0e081e6a0a..0dcac3bf03

$ git log 0e081e6a0..0dcac3bf0 --date=short --no-merges --format='%ad %ae %s'
2021-03-08 jdoerrie Fix breakages introduced by std::u16string switch
2021-03-08 jdoerrie Change string16 to std::u16string everywhere

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

Bug: chromium:911896
Change-Id: Icac88b97b459b06ef86b292b1c5a785734d8f829
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2742824
Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2021-03-08 20:45:54 +00:00
Justin Cohen
b4bcc4df25 ios: Expose EnableUploading in CrashpadClient.
This method should be called when an application is ready to start
uploading any pending reports.

Bug: crashpad: 31
Change-Id: I70948fc4dfd8ee509d313b27a50fc4314baf5ce8
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2698179
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Justin Cohen <justincohen@chromium.org>
2021-03-08 19:02:33 +00:00
Adam Kallai
c7ec0a84cc Use char16_t instead of wchar_t in SystemSnapshotWin
This CL[1] removed the alias declaration for wchar_t
in case of Windows platform. So we cannot call base::UTF16ToUTF8 function
with wchar_t type.

[1] https://chromium-review.googlesource.com/c/chromium/src/+/1776026

BUG=chromium:1184955

Change-Id: I07f0e35176ed72df4053d2f70769166e3eebfc63
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2737079
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2021-03-08 15:41:43 +00:00
Jay Zhuang
186e542db6 Roll mini_chromium 12ea507..0e081e6
2 commits:
0e081e6 Wrap python build script in __main__ guard
919fe9b Change non-Windows base::string16 to std::u16string

Change-Id: I1a9aba56271a811559fe29c4741100aaf6642f0d
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2728775
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2021-03-02 15:25:01 +00:00
Justin Cohen
9a7c3beeef ios: Get simulator device model correctly.
Use SIMULATOR_MODEL_IDENTIFIER to get the equivalent device model.

Bug: crashpad:31
Change-Id: I17950d77c214533614781a5ca41170d6c3a77ae3
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2726978
Commit-Queue: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2021-03-01 22:58:05 +00:00
Jan Wilken Dörrie
8cdc852a9e Prepare hanging_program for string16 switch
Bug: chromium:911896
Change-Id: I39d4356be8ba0c0fd8a4840d24b9eb0e83acc42d
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2719888
Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2021-02-25 14:29:07 +00:00
Justin Cohen
adf40ba77c ios: Handle libunwind.h header changes.
Xcode 12.5 renamed __personality_routine to _Unwind_Personality_Fn
in usr/include/unwind.h

Bug: crashpad:31
Change-Id: I06a9cec7f94556dfd7c1f729069c93c61b4b0d9c
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2686121
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Justin Cohen <justincohen@chromium.org>
2021-02-10 20:08:41 +00:00
Rune Lillesveen
57c336371c Add missing dependency on util to fuzzer
This makes it possible to run gn check --deps for crashpad/snapshot in
chromium.

ERROR at //third_party/crashpad/crashpad/snapshot/elf/elf_image_reader_fuzzer.cc:19:11: Can't include this header from here.
#include "util/process/process_memory.h"
          ^----------------------------

Bug: chromium:1159035
Change-Id: Idddcf95da2a349842fa86a8d595216fbca3b8822
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2676581
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2021-02-04 21:50:02 +00:00
Justin Cohen
87515bc2fa ios: Expose ProcessIntermediateDumps in CrashpadClient.
This method should be called when an application is ready to start
processing previously created intermediate dumps and begin uploading.
Processing will block, so this should not be called on the main UI
thread.

Bug: crashpad: 31
Change-Id: I31f81c68694cf18dd40e2994c0d6e7107c29e553
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2673024
Commit-Queue: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2021-02-04 04:35:40 +00:00
Anirudh Mathukumilli
1f28ee77ef [tracer] Fix action suppression
The previous error suppression in https://crrev.com/c/2662398 was not
sufficient to disable action tracing (see
https://fuchsia.dev/fuchsia-src/development/build/hermetic_actions?hl=en)

Bug: fuchsia:68780
Change-Id: I587a71e01a13f863dceb548d09227ea3400e31b0
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2668015
Reviewed-by: Scott Graham <scottmg@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
2021-02-02 22:48:26 +00:00
Justin Cohen
2cb83e491e ios: Cleanup API for chromium integration.
Bug: crashpad: 31
Change-Id: I9149879b2f6886ea17ca828dd60d37eb187ba88e
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2665887
Commit-Queue: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2021-02-02 14:27:06 +00:00
Anirudh Mathukumilli
ee563696c3 [tracer] Add suppression for crashing action
This particular action was crashing when being traced.

Bug: fuchsia:68780
Change-Id: Ia83d48b2a88f53bd8e139ea9c787429f93a24533
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2662398
Commit-Queue: Scott Graham <scottmg@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
2021-02-01 23:08:35 +00:00
Jan Wilken Dörrie
9e96201002 Annotate memfd_create with __THROW
This change annotates memfd_create with __THROW, fixing a compilation
error when building crashpad in C++17 mode. This used to be a
consistency error with glibc >= 2.27, that always annotates memfd_create
with __THROW:
https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/bits/mman-shared.h#l51

Fixed: crashpad:339
Change-Id: Iab99e864f49dcfd9e0b445fd59a22c16bbe2a60b
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2643284
Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2021-01-22 13:09:35 +00:00
Scott Graham
b858473d9c compat: Remove unused deps
This is a rest-of-revert of
https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1489795
that was part of a plan for future changes, but that hasn't happened
yet.

Bug: fuchsia:66116
Change-Id: Id4011ae1c081354026fbb80440ee71c824933419
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2641314
Commit-Queue: Scott Graham <scottmg@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2021-01-21 01:09:43 +00:00
Scott Graham
2a777a4d4f compat: Remove non-Mac dependency on third_party/xnu
It looks like this was planned for future changes that haven't happened
yet. Current users of the .def files explicitly reference them, so
compat currently doesn't require this dependency.

Bug: fuchsia:66116
Change-Id: I85404d17eac4a2aa3c2157fe3fc2a1421879996a
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2640725
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
2021-01-20 23:28:43 +00:00
Justin Cohen
2d2e46b2ac ios: Fix iOS14 detection of _UIGestureEnvironmentUpdate sinkholes.
Change-Id: I3c3e46dc4bf3d321f555add137b3e436503f4195
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2429223
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Justin Cohen <justincohen@chromium.org>
2021-01-20 16:35:54 +00:00
Jan Wilken Dörrie
564d5f340f [c16lcpy] Use std::char_traits<base::char16> in c16lcpy
This change replaces calls to the deprecated base::c16memcmp,
base::c16len and base::c16memcpy in favor of using static methods on
std::char_traits<base::char16> directly.

Bug: chromium:911896
Change-Id: I739410cf41a77da9d43e59513cace086f93f0c36
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2637704
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
2021-01-20 13:25:24 +00:00
Dangyi Liu
37dd8f83de Fix compilation issue on arm64 with Debian's glibc 2.19
Fuchsia's glibc is derived from Debian so it's causing issues on
Fuchsia.

Change-Id: I46368eb08f7cc7338783f115869e5c761f35e465
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2630288
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
2021-01-14 23:15:05 +00:00
Joshua Peraza
0f70d9477e Fix typo in build target
Change-Id: Id491e4fd8ae6b1a0010b7b1132ef8ac83040e1f3
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2626068
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
2021-01-12 23:13:53 +00:00
Joshua Peraza
2e066d2e56 Use chromeos buildflags
This CL upstreams changes made in chromium to use buildflags:
https://chromium-review.googlesource.com/c/chromium/src/+/2494261
https://chromium-review.googlesource.com/c/chromium/src/+/2594831

and alters the  buildflags in handler_main.cc to allow LaCrOS to use
/sbin/crash_reporter

Bug: chromium:1159628
Change-Id: Iae9f39f9bc61106cb0056bee010ee7eaa7ac1713
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2622766
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2021-01-12 22:22:03 +00:00
Eric Astor
cce6b30149 Optimize calls to std::string::find() and friends for a single char.
The character literal overload is more efficient.

Change-Id: Ia2ec863e3442b87d357c20f932f88e31d40e6524
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2596067
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Commit-Queue: Eric Astor <epastor@google.com>
2020-12-16 19:18:09 +00:00
Joshua Peraza
8bf3cdd977 linux: fix build breakage
2f7d40c4 Removed the last usage of ExpectTestModule() in
sanitized builds.

Change-Id: I6a894545f07b1c377f88820893c23a2296d74cc7
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2590205
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
2020-12-14 19:13:18 +00:00
Braden Kell
44de18ca37 Fix instances of undefined behavior
This change removes several unaligned accesses, as well a null pointer
offset and an out of bounds array access.

Bug: fuchsia:46805
Change-Id: I0110d0b7faf672655d978894b868760eee7b2988
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2583025
Commit-Queue: Scott Graham <scottmg@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
2020-12-11 19:18:19 +00:00
Joshua Peraza
2f7d40c405 linux: disable test module in more tests
This test was missed in
https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2585002

Change-Id: Icf972284d2be02b4dae85611fcb2b5623f677ef2
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2586007
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
2020-12-11 18:25:19 +00:00
Joshua Peraza
0886a625cc linux: Disable test module with sanitizers
Clang's sanitizers on Linux might hook dlopen() to track memory regions
mapped by loaded modules, but they depend on shared libraries having a
preferred address of 0 so that the load bias in the link map is equal
to the module's loaded address in memory.

https://code.woboq.org/llvm/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp.html#1172

Change-Id: Ice44aa157577d6f97bc7fc0f7e3ef9d5fbaaf46a
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2585002
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
2020-12-10 18:19:48 +00:00
Robert Sesek
1e76cbbe5a mac: Depend on the //build/config/mac:sdk_inputs target for MIG actions
When using the new Goma RBE and use_system_xcode, the referenced .defs
input files are located below the root build directory and so are
considered build outputs. The sdk_inputs target is an empty action that
lets GN consider them to be generated outputs.

Bug: chromium:1157103
Change-Id: I38a959d2c00c20fa403a1c15b1eac69ef2043d5d
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2582922
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Robert Sesek <rsesek@chromium.org>
2020-12-10 14:49:27 +00:00
Mark Schott
ddcffd8675 [util] Remove redundant std::allocator type name for C++20
C++20 removed std::allocator<void>, so we need to use a void* instead.

TEST=no behavior change

Change-Id: Ifd1ee686e86ee55accab8c4b23e80000cdbdf227
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2578864
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
2020-12-08 20:18:34 +00:00
Joshua Peraza
83f194ee85 linux: Add linux-gate.so to valid vdso prefixes
The name of the vdso varies by ABI and in particular begins with
linux-gate.so when targeting i386.

Change-Id: Icd9d25aa2ad44b00fed1e4088fe72f77a505f445
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2570143
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-12-04 00:08:45 +00:00
Joshua Peraza
00491d58ee linux: Correct handling of load bias
The load bias is documented to be the difference between
the preferred and actual load address for a module, but
is declared as an unsigned number, and math using it relies
on it being a pointer-precisioned two's complement number
that might cause over- or under-flow.

ElfImageReader and DebugRendezvous both provide ways to get
the load bias for a module and are corroborated in tests.
However, the load bias computed by DebugRendezvous does
not have access to the preferred address, so there is not
enough information to determine the signedness to use with
a VMOffset.

This patch compares the load biases modulo the numeric range
for a pointer to ignore the signedness of the value.

Also update the test module to trigger a negative load bias.

Bug: chromium:1147922
Change-Id: I55bc49195cfb2def06777e26388380fb9bc0f710
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2569886
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-12-03 23:57:25 +00:00
Joshua Peraza
20cbfa4971 linux: Use mmap for attachments in PtraceBroker
The broker attempts to use sbrk() to allocate memory to track ptrace
attachments. If the process failed due to an OOM, this system call might
fail, the broker falls back to saving attachments on the stack, and then
overruns the stack.

This change updates the broker to use sys_mmap() instead of sbrk(),
which is expected to work at least as well. If sys_mmap() fails or
the first mapped page is exhausted, further attachments fail without
attempting to save them to the stack.

Bug: chromium:1128441
Change-Id: Ibffaa986403adaf3178ee77e6d210053fbf60f26
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2488280
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
2020-12-03 23:24:55 +00:00
Joshua Peraza
6c270cf239 linux: Refactor test modules
This patch moves LoadModule() to it's own file from
process_reader_linux_test.cc so that it may be used in
other tests that interact with loaded modules.

Change-Id: Ie4f7932d65710fc3e20b6e2488e497c5aab27cdd
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2569882
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
2020-12-03 23:24:15 +00:00
Joshua Peraza
121d92ca3f Roll crashpad/third_party/mini_chromium/mini_chromium/ cb82d7129..c748b289b (2 commits)
cb82d71291..c748b289b8

$ git log cb82d7129..c748b289b --date=short --no-merges --format='%ad %ae %s'
2020-11-24 jperaza x86,linux: set flags for current_cpu
2020-10-29 jperaza android: link liblog in base

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

Change-Id: I2d5bbcfdc4e009c0f1c4c571b785a4cfcc8d58f0
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2570142
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
2020-12-03 02:10:34 +00:00
Shai Barack
ed132d5ec2 [syslog] Expect logsink client includes
Change-Id: Icfbf45df76dc6471df9a088f7205b206f4c8488c
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2560888
Reviewed-by: Scott Graham <scottmg@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
2020-11-26 19:14:41 +00:00
Scott Graham
0917d31d19 Update lss README.crashpad to point to corrected name for license
The header at
https://chromium.googlesource.com/linux-syscall-support/+/refs/heads/main
uses underscores, not hyphens.

Bug: b/173235782
Change-Id: I77bd7f807c8bc2d9e0fa36c5b59394ffdcb769bb
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2551757
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
2020-11-20 17:00:12 +00:00
Justin Cohen
70f1ec86f9 ios: Fix setup_ios_gn.py after gn roll.
The CL https://gn-review.googlesource.com/c/gn/+/10140 was brought
by the roll of gn. This CL causes the --root-target to have two
conflicting meaning.

Remove the parameter from //build/ios/setup_ios_gn.py to allow
the script to successfully generate an Xcode project. The drawback
is that more target than necessary may be built when building "All"
in Xcode.

Change-Id: I4eb68567c006646e671797fa321be83a167b98a3
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2538001
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Justin Cohen <justincohen@chromium.org>
2020-11-13 18:39:09 +00:00
Joshua Peraza
bccb9504d1 Roll crashpad/third_party/edo/edo/ 97121c640..6ffbf8331 (19 commits)
97121c6401..6ffbf83317

$ git log 97121c640..6ffbf8331 --date=short --no-merges --format='%ad %ae %s'
2020-11-10 albertbow Fix Swift Array objectAtIndex: failure on eDO since iOS 13.4.
2020-11-02 albertbow Fix eDO TSAN issue caused by __block variable.
2020-10-14 albertbow Enable ASAN and TSAN Travis tests in external CI.
2020-10-14 albertbow Fix eDO ASAN issue captured by Xcode 10.
2020-10-06 albertbow Fix TSAN warning on EDOListenSocket.
2020-10-03 haowoo Remove the unneeded cancel block.
2020-09-01 albertbow Added 1.0.1 patch release for respectful code.
2020-08-31 albertbow Rename EDOBlacklistedType to EDOBlockedType per go/respectful-code.
2020-08-19 albertbow Fix ASAN breakage on eDO device unit test.
2020-08-19 albertbow Internal Change.
2020-08-15 albertbow Comments for ${POD_TARGET_SRCROOT} in podspec.
2020-08-14 albertbow Upgrade podspec for Cocoapods 1.0.0 release.
2020-08-12 albertbow Second improvement of TSAN flakiness on channel tests.
2020-08-11 albertbow Fix part of the TSAN flakiness of ChannelTests.
2020-07-29 albertbow Fix Tsan for eDO channel tests.
2020-07-28 albertbow Fix clang-tidy complaint on OCMock imports in unit tests.
2020-07-14 haowoo Trivial clean-ups.
2020-07-14 albertbow Fix a test failure that happens with TSAN enabled.
2020-07-14 albertbow Allow EDOExecutorMessage to be waited multiple times.

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

Change-Id: I45e23ceb4f5c4dceb39ad8d3b5b070874c74f8ac
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2532682
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
2020-11-11 19:41:19 +00:00
yucliu
b6f2d06996 [Android] Fix un-paired namespace declare for higher __ANDROID_API__
Bug: None
Test: Build with larger __ANDROID_API__ (29)
Change-Id: I5bfb8ad0ea5b866469191c5a385b071eec185716
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2522110
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Commit-Queue: Robert Sesek <rsesek@chromium.org>
2020-11-05 21:14:26 +00:00
Joshua Peraza
ca944aeb88 android: use libs instead of ldflags
Change-Id: Id5077a43acc11e85f016cb6dfebe0958466042b3
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2508227
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
2020-10-29 20:53:06 +00:00
Justin Cohen
ae8d0a2481 Roll mini_chromium to cb82d71291
cb82d71291 ios: PRODUCT_BUNDLE_IDENTIFIER required in Xcode 12 for device builds.

Change-Id: I8467b9e9868d62f9ee14d504ff86a545f17a6dd5
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2507849
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Justin Cohen <justincohen@chromium.org>
2020-10-29 16:28:24 +00:00
Justin Cohen
d7c2340283 ios: Disable IOSExceptionProcessor SelectorExists.
Disabled while fix is being investigated.

Bug: crashpad:358
Change-Id: Ie7de5ab01b60e6f3e93096980dcdecd1eec1f171
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2505597
Commit-Queue: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-10-28 19:20:28 +00:00
Justin Cohen
1d2fd9464d Roll mini_chromium to 9e179291
9e179291 ios: gtest bundle is now named googletest.

Change-Id: I297a325dbead727acd780c1d2a41c9e949379421
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2505596
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Justin Cohen <justincohen@chromium.org>
2020-10-28 17:34:31 +00:00
Joshua Peraza
88955e6b56 Fix ThreadLogMessagesTest on Chrome OS
Previously, these tests expected a specifically formatted prefix to log
messages, but logging on Chrome OS uses a different format for the
prefix.

This change updates the tests to expect log messages at the end of a log
line, but ignores the prefix.

Change-Id: Iff748eec04d0fc5a0a786a5676a74e2aad1ec243
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2503462
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
2020-10-28 16:22:51 +00:00
Joshua Peraza
68b10080d2 Be more tidy
Change-Id: I9d2b718c36bd1dd7538241e91b984a50039068f3
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2502773
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-10-27 16:40:45 +00:00
Joshua Peraza
640b13f3cb linux: Don't load section headers of test module
The ELF standard allows substantial flexibility in the construction of
valid ELF modules, but there are widely followed conventions. For
example, ELF modules typically contain several segments, they do load
their program headers, and they don't load their section headers.

Bionic contains a variety of checks that the modules it's loading look
typical. Beginning with Android M, Bionic refuses to load segments which
contain the entire file contents.

Change-Id: I0687a3cfd84b3561112dcd32eb6b96493969695e
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2486401
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-10-26 22:15:52 +00:00
Joshua Peraza
cdb1e7f52b fix flake in LogOutputStreamTest
LogOutputStreamTest.{WriteAbort,FlushAbort} are flaky because the logcat
is sometimes overloaded earlier than expected causing FlushAbort to fail
during Write() or either test to fail to write the abort message.

This change updates LogOutputStream to detect logcat overloads (EAGAIN)
and make one attempt at writing the abort message, even if the output
cap hasn't been reached.

This change also updates LogOutputStream's interface to defer log writes
to a Delegate. In tests, the Delegate implements a mock log and in
production, writes to Android's logcat.

I've removed VerifyGuards because LogOutputStream no longer writes
guards if Write() has never been called and the guards are tested in
other tests.

Change-Id: Icad83524aaf573c3e082469f1de095b6ca2c4839
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2439641
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-10-26 18:36:11 +00:00