26 Commits

Author SHA1 Message Date
Mark Mentovai
6278690abe Update copyright boilerplate, 2022 edition (Crashpad)
sed -i '' -E -e 's/Copyright (.+) The Crashpad Authors\. All rights reserved\.$/Copyright \1 The Crashpad Authors/' $(git grep -El 'Copyright (.+) The Crashpad Authors\. All rights reserved\.$')

Bug: chromium:1098010
Change-Id: I8d6138469ddbe3d281a5d83f64cf918ec2491611
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/3878262
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2022-09-06 23:54:07 +00:00
Ayush Ranjan
4e5cef683a Update documentation to use main branch name.
Some documentation uses the old default branch name `master`.
But `master` in crashpad repo is a very old branch and has been
superseded with `main`.

Change-Id: I368c829fde2d29b3f14aa14185bfc97d546bf340
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/3787194
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2022-07-28 00:08:19 +00:00
Joshua Peraza
e180670cb5 Add libcurl to required packages in documentation
Follows up on discussion in:
https://groups.google.com/a/chromium.org/g/crashpad-dev/c/1-QgplOJnw8

Change-Id: Ibb6bfca0455f34f23b6d833c4b67fd392eee74ca
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/3579505
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
2022-04-08 19:40:46 +00:00
Joshua Peraza
3ae82cd30a Remove gyp
Standalone Crashpad for Android can now be built with gn.

Change-Id: I0ee7f8e1af8c2bc0edb88e93b345abd7d739f33c
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/3034984
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
2021-07-16 17:09:48 +00:00
Mark Mentovai
cf59ba95ff doc: Update “Developing” documentation
Change-Id: Ifc3596216d12470aaef2d4062383c5aeee795de1
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2186353
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-05-07 14:56:22 +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
Joshua Peraza
e97cf7b29c update gyp_crashpad_android.py
This patch updates gyp_crashpad_android.py to function with NDK r20,
removes the requirement to generate a standalone toolchain, and updates
documentation on building for Android.

Also some gyp build fixes.

Change-Id: Ide338417ab2a21eca7a4bf42c1fb834e5639c186
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1798746
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
2019-09-11 19:05:30 +00:00
Scott Graham
2faae40e8e Fuchsia: Update docs to mention target_os in .gclient
Change-Id: I1f26373413d7f427cc7081a1221e5d7238b5fd97
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1726696
Reviewed-by: Francois Rousseau <frousseau@google.com>
Commit-Queue: Scott Graham <scottmg@chromium.org>
2019-07-31 05:34:26 +00:00
Peter Wen
1c78fe23bd Update doc/developing.md with linux details
This information is very helpful to someone new to Crashpad to be able
to get up and running quickly (i.e. what I would have needed).

Bug: crashpad:291
Change-Id: Ibc84a009dbd7c93dd098e658cbe895957c6dca16
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1567847
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Peter Wen <wnwen@chromium.org>
2019-04-15 19:21:29 +00:00
Francois Rousseau
83e37a9ac1 [fuchsia] add commands for testing on Fuchsia
TESTED=ran the commands!

Change-Id: I7d8d3ca31a250005edcd3fb6269afffe8b3fbc89
Reviewed-on: https://chromium-review.googlesource.com/c/1263016
Reviewed-by: Scott Graham <scottmg@chromium.org>
2018-10-04 22:41:00 +00:00
Scott Graham
85565c545c Doc update for GN build
Explain the GN build setup for Windows, Mac, Linux, and Fuchsia, and
keep a separate section for the Android gyp build.

Bug: crashpad:235
Change-Id: Ifaabba430ab0f04bac5a4669523308040e55f05b
Reviewed-on: https://chromium-review.googlesource.com/1099255
Commit-Queue: Scott Graham <scottmg@chromium.org>
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
2018-06-13 17:20:48 +00:00
Mark Mentovai
659420bc7d android: Run tests by running run_tests.py on the build host
Bug: crashpad:30
Change-Id: Ie432c58c4a2505b6434861276512a5011fd285d4
Reviewed-on: https://chromium-review.googlesource.com/811891
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
2017-12-08 16:24:37 +00:00
Mark Mentovai
5969d6b1eb android: NDK r16 compatibility
This updates build/gyp_crashpad_android.py to define the
android_api_level GYP variable whenver unified headers are in use.
Previously, it was only set when compiling with GCC and using unified
headers. This pairs with https://crrev.com/c/804574 to allow proper
detection of when _FILE_OFFSET_BITS=64 would be inappropriate.

Since there’s no longer any possibility of using a 64-bit off_t with API
< 21, this also drops the compatibility wrapper for mmap() that allowed
this configuration to work. Too bad, I liked this, but it’s pointless to
carry now.

The development documentation is also updated to refer to NDK r16.

mini_chromium is updated to 88e056258a01450b07414642fa5fb98493c1f6ce.

f609089390cd fuchsia: Add ZX_LOG, et al. to mini_chromium
0a8c5de30c67 fuchsia: Fix RandBytes() ZX_CHECK message string
88e056258a01 android: Don’t use _FILE_OFFSET_BITS=64 until API 21

Change-Id: I932116e0c01bcddd5719f9091a070d504eae600f
Reviewed-on: https://chromium-review.googlesource.com/804555
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
2017-12-04 16:26:00 +00:00
Mark Mentovai
20e5aba1af URL cleanups: switch to HTTPS, fix dead ones, use canonical ones
Change-Id: I4b247d7fae1a212350f8ffcf2bf5ba1fa730f5c1
Reviewed-on: https://chromium-review.googlesource.com/780339
Reviewed-by: Scott Graham <scottmg@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2017-11-20 22:23:39 +00:00
Mark Mentovai
376cddee9e doc: Update for NDK r15b
Change-Id: I5a9104d6dcfa74ce2aadd8f62dbef47e2d56d73f
Reviewed-on: https://chromium-review.googlesource.com/550355
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
2017-06-27 16:00:59 +00:00
Mark Mentovai
1969a5d758 Document who has access to the try server and commit queue
Drop the text recommending the PolyGerrit UI, since it is now the
default Gerrit UI.

Bug: chromium:717982
Change-Id: I7041ee51670a7a18b510ed7a55045cc2eb09983e
Reviewed-on: https://chromium-review.googlesource.com/494726
Reviewed-by: Scott Graham <scottmg@chromium.org>
2017-05-03 17:49:24 +00:00
Mark Mentovai
f31459b266 Update GYP to ffd524cefaad for MSVS 2017 (15)/C++ 14.1/C 19.10 support
aae1e3efb507 CQ config: add gerrit CQAbility verifier.
95da7665b1a3 [win-test] loosen win-driver-target-type test
eb296f67da07 [win] Add support for MS VS2017 (via Registry)
19495aa28282 Update test/no-cpp/gyptest-no-cpp.
a94b02ec68fb Disable a bunch of tests on Mac
ae76d9198630 Clean up gyptest.py
b62d04ff85e6 win,ninja: ninja generator better on windows
8dc77241251e Disable flaky test/copies/gyptest-all under msvs
e8850240a433 Fix MSVC++ 32-on-32 builds after b62d04ff85e6
ffd524cefaad win ninja/make: Always use a native compiler executable
             with MSVS 2017

developing.md is updated to call out supported toolchain versions, and
to explain the CDB requirement for end_to_end_tests.py.

Change-Id: Iace68009aa22acec7303ea02a2ded755645ea96c
Reviewed-on: https://chromium-review.googlesource.com/486539
Reviewed-by: Scott Graham <scottmg@chromium.org>
2017-04-25 16:43:10 +00:00
Mark Mentovai
4688351623 “Promote” test::Paths::Executable() to Paths::Executable()
This supports the “double handler” or “double handler with low
probability” models from https://crashpad.chromium.org/bug/143.

For crashpad_handler to be become its own client, it needs access to its
own executable path to pass to CrashpadClient::StartHandler(). This was
formerly available in the test-only test::Paths::Executable(). Bring
that function’s implementation to the non-test Paths::Executable() in
util/misc, and rename test::Paths to test::TestPaths to avoid future
confusion.

test::TestPaths must still be used to access TestDataRoot(), which does
not make any sense to non-test code.

test::TestPaths::Executable() is retained for use by tests, which most
likely prefer the fatal semantics of that function. Paths::Executable()
is not fatal because for the purposes of implementing the double
handler, a failure to locate the executable path (which may happen on
some systems in deeply-nested directory hierarchies) shouldn’t cause the
initial crashpad_handler to abort, even if it does prevent a second
crashpad_handler from being started.

Bug: crashpad:143
Test: crashpad_util_test Paths.*, crashpad_test_test TestPaths.*
Change-Id: I9f75bf61839ce51e33c9f7c0d7031cebead6a156
Reviewed-on: https://chromium-review.googlesource.com/466346
Reviewed-by: Scott Graham <scottmg@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2017-04-03 18:58:01 +00:00
Mark Mentovai
db8c54e142 android: Add gyp_crashpad_android.py for easier Android development
Bug: crashpad:30
Change-Id: Idf7e6db944bf946e6571064306897848222cd36f
Reviewed-on: https://chromium-review.googlesource.com/458078
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
2017-03-23 00:15:26 +00:00
Mark Mentovai
39f13a77a4 Make run_tests.py work with paths instead of configuration names
This is co-dependent with
https://chromium-review.googlesource.com/457736.

I’ve been trying to share a source tree between different platforms,
using gyp_crashpad.py --generator-output to put the build output in the
right place. On Windows, it winds up in
out\win\out\{Debug,Release}{,_x64}. This makes it tricky to use
run_tests.py, which expects to find build output right in the “out”
directory. It’s not impossible to use, because you can tell it
“win\out\Debug_x64”, but it’s really awkward to use that path when we
all know that it’s not relative to anything that makes sense, like the
current directory.

This simplifies run_tests.py to work directly with the
configuration-specific output directory. For most users, this means
including “out/” or “out\” when running the script.

Bug: chromium:703890
Change-Id: Ic7de82fabd2adda7ae00558844cb3ce91aa4a5ed
Reviewed-on: https://chromium-review.googlesource.com/457716
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
2017-03-22 01:45:16 +00:00
Mark Mentovai
3eaee58970 doc: Update Android developer documentation for NDK 14
NDK 14 is current. Update the developer documentation to reflect this.

Recommend using subdirectories of out/ as the Android build output
directory, so that they’ll be ignored by .gitignore.

Bug: crashpad:30
Change-Id: Id1508215b924a3e0cae2c11a61c9c685363c50f6
Reviewed-on: https://chromium-review.googlesource.com/454202
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2017-03-14 18:18:07 +00:00
Mark Mentovai
f590383096 doc: Document the try server and commit queue
Bug: crashpad:162
Change-Id: I9b5dd8c281117c24d79ce6b81269c87d42a21e13
Reviewed-on: https://chromium-review.googlesource.com/452438
Reviewed-by: Sigurður Ásgeirsson <siggi@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2017-03-09 17:41:40 +00:00
Mark Mentovai
dd85381a32 GCC fix: Disable -Wmultichar warning throughout Crashpad
-Wmultichar is enabled by default with GCC (but not clang). It is
impossible to disable this warning with #pragma GCC diagnostic ignored.
See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53431

While compiling, for example, minidump_file_writer.cc:

In file included from ../../minidump/minidump_extensions.h:25:0,
                 from ../../minidump/minidump_file_writer.h:27,
                 from ../../minidump/minidump_file_writer.cc:15:
../../util/misc/pdb_structures.h:45:38: error: multi-character character constan
t [-Werror=multichar]
   static const uint32_t kSignature = '01BN';
                                      ^~~~~~
../../util/misc/pdb_structures.h:106:38: error: multi-character character consta
nt [-Werror=multichar]
   static const uint32_t kSignature = 'SDSR';
                                      ^~~~~~
../../minidump/minidump_file_writer.cc:190:23: error: multi-character character
constant [-Werror=multichar]
   header_.Signature = MINIDUMP_SIGNATURE;
                       ^~~~~~~~~~~~~~~~~~

doc/developing.md is also updated to provide GCC build instructions for
Android.

Tested with:
 - GCC 4.9 from NDK r13 targeting arm with SDK 16
 - GCC 4.9 from NDK r13 targeting arm64 with SDK 21
 - GCC 6.2 targeting x86_64

BUG=crashpad:30

Change-Id: I9e7993761f5461281c9f4d8b4c56e8407e2c5b47
Reviewed-on: https://chromium-review.googlesource.com/409776
Reviewed-by: Robert Sesek <rsesek@chromium.org>
2016-11-11 17:35:25 +00:00
Mark Mentovai
1f2a2c82c6 doc: Small updates after Markdown migration
The strangest discovery relates to the # <h1> title in navbar.md.
Gitiles renders it small unless there’s a [home] reference, so use that.
This should only affect wrapping the site logo in the [home] link, but
it appears to control the size of the navbar title too. See
https://code.google.com/p/gitiles/issues/detail?id=130.

BUG=crashpad:138,gitiles:130

Change-Id: I11b3a79f045efa22358b3c3ef4b50ce2e6b3282e
Reviewed-on: https://chromium-review.googlesource.com/408458
Reviewed-by: Robert Sesek <rsesek@chromium.org>
2016-11-07 18:43:18 +00:00
Mark Mentovai
3830e4e5c1 Update the link to mini_chromium’s README
Also, update mini_chromium to 414d59602ac38e24f1e93929fda3d79d72cea139

7bfe6cd9579b README→README.md; convert plain text to Markdown
414d59602ac3 Fix mailto: link in README.md

BUG=crashpad:138

Change-Id: Ibd3c054a3e7f08a740fe6aca408cf23797d992ae
Reviewed-on: https://chromium-review.googlesource.com/408316
Reviewed-by: Robert Sesek <rsesek@chromium.org>
2016-11-04 21:53:31 +00:00
Mark Mentovai
0c41b15496 Convert AsciiDoc documentation to Markdown
Most of the world, including the Chromium universe, seems to be
standardizing on Markdown for documentation. Markdown provides the
benefit of automatic rendering on Gitiles (Gerrit), and on GitHub
mirrors as well. Crashpad should fit in with its surroundings.

There are two quirks that I was unable to resolve.

 - Markdown does not allow **emphasis** within a ```code fence```
   region. In blocks showing interactive examples, the AsciiDoc
   documentation used this to highlight what the user was expected to
   type.
 - Markdown does not have a “definition list” (<dl>). This would have
   been nice in man pages for the Options and Exit Status sections.
   In its place, I used unnumbered lists. This is a little ugly, but
   it’s not the end of the world.

The new Markdown-formatted documentation is largely identical to the
AsciiDoc that it replaces. Minor editorial revisions were made.
References to Mac OS X now mention macOS, and tool man pages describing
tools that that access task ports now mention System Integrity
Protection (SIP).

The AppEngine-based https://crashpad.chromium.org/ app in doc/appengine
is still necessary to serve Doxygen-generated documentation. This app is
updated to redirect existing generated-HTML URLs to Gitiles’ automatic
Markdown rendering.

Scripts in doc/support are updated to adapt to this change. All AsciiDoc
support files in doc/support have been removed.

BUG=crashpad:138

Change-Id: I15ad423d5b7aa1b7aa2ed1d2cb72639eec7c81aa
Reviewed-on: https://chromium-review.googlesource.com/408256
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
2016-11-04 21:13:53 +00:00