Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add PA and BTI to Marl #204

Merged
merged 1 commit into from
Aug 18, 2021
Merged

Conversation

andre-kempe-arm
Copy link
Contributor

Hi,

This is the upstream merge for this commit to SwiftShader:
https://swiftshader-review.googlesource.com/c/SwiftShader/+/56248

Best Regards,
André

Adds an appropriate .note section for Arm Branch Target
Identification and Pointer Authentication to osfiber_asm_aarch64.S.
Furthermore inserts Pointer Authentication to marl_fiber_swap
including BTI landing pad.

Bug: chromium:1145581
Change-Id: I43961c305bd6adf8ee4baaf929341e47be2e2e7f

Adds an appropriate .note section for Arm Branch Target
Identification and Pointer Authentication to osfiber_asm_aarch64.S.
Furthermore inserts Pointer Authentication to marl_fiber_swap
including BTI landing pad.

Bug: chromium:1145581
Change-Id: I43961c305bd6adf8ee4baaf929341e47be2e2e7f
@ben-clayton ben-clayton added the kokoro:run Mark the externally contributed pull request for presubmit testing label Aug 18, 2021
@kokoro-team kokoro-team removed the kokoro:run Mark the externally contributed pull request for presubmit testing label Aug 18, 2021
@ben-clayton
Copy link
Contributor

Thank you for your PR. Looks great!

@ben-clayton ben-clayton merged commit 4960243 into google:main Aug 18, 2021
@andre-kempe-arm andre-kempe-arm deleted the AddPACBTI branch August 18, 2021 09:53
Sunbreak pushed a commit to Sunbreak/breakpad that referenced this pull request Oct 31, 2021
Introduces Arm's Pointer Authentication and Branch Target Identification
to breakpad.

The changes are similar to changes for PA/BTI to Marl, see
google/marl#204

Bug: 1145581
Change-Id: I6a770316ad333bfcfad2ce7f3c1ff78afb35c010
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3226471
Reviewed-by: Primiano Tucci <primiano@chromium.org>
Jake-Shadle pushed a commit to EmbarkStudios/breakpad that referenced this pull request May 23, 2023
* Fix some instances of -Wunreachable-code-aggressive.

Bug: chromium:1066980
Change-Id: Ie95754402ce30bbd4bfcfc0c0150f07d2e3008f6
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3055796
Reviewed-by: Nelson Billing <nbilling@google.com>

* Add INLINE and INLINE_ORIGIN records to symbol file.

The size of symbol file for chrome binary increased from 577 MB to
1205 MB. There are 7,453,748 INLINE records and 1,268,493 INLINE_ORIGIN
records.

Bug: 1190878
Change-Id: I802ec1b4574c14f74ff80d0f69daf3c81085778a
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2915828
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* Don't count str_offsets_table header size before DWARF 5

The header is not present in earlier versions of split dwarf.

Change-Id: I8fde233268230cea157b2b3276f3cf05190962f2
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3083253
Reviewed-by: Sterling Augustine <saugustine@google.com>

* mac: conditionally generate inlines

Change-Id: I35d7a5e50537bd6f20bcb5a91d386ffee9325b18
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3098093
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* mac dump_syms: fix -d option

This is a follow-up to 3c70e0145e5c to make -d work.

Bug: chromium:1190878,chromium:1238693
Change-Id: Ie0c6c663c98491462fca1aa992503037f19cefa9
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3103526
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* Remove usages of make_unique

Building fails for some people because configure requires c++11 but make_unique is a c++14 feature.

Change-Id: I23ce689fc92e9e90a95e7643ff29602f6b32ccbb
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3107784
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* Remove warning about unknown abstract origin

Dwarf generated by Clang -g1 will not have DW_AT_inline attribute for some DW_TAG_subprograms even if they are inlined. This warning recently increased a lot (~ 3 million) due to DW_TAG_inlined_subroutine also complains about unknown abstract origin. It caused infra failure in building bots.

Bug: 1241579
Change-Id: I9b5135925b71aa915760c140bcf73fc603bb77d3
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3111782
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* Modernize MinidumpCrashpadInfo::Print().

Use range-based for-loops where appropriate.

Change-Id: I2fffd270d434c90850e8151ee40e5adf0736ce55
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3120666
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* Make INLINE_ORIGIN positions not important in symbol file

This allows INLINE_ORIGIN records appears in after FUNC records.

Change-Id: I69b8b5948ed91453e15c7f4c3888dfbe38e7bc5c
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3132381
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* Fix compiler errors found with -Wunreachable-code-aggressive.

Break statements immediately following returns are unreachable.

Bug: chromium:1246232
Change-Id: I0892a66617f7b27b5e317a7d9741f5fcd19249f2
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3140192
Reviewed-by: Robert Sesek <rsesek@chromium.org>

* Workaround Mac arch issue

Temporarily works around an issue on Mac where the system version of
NXGetLocalArchInfo is returning x86 information on x86_64 devices,
which results in dump_syms failing on said devices. Instead, the
Breakpad implementation of NXGetLocalArchInfo, which is meant for
dump_syms_mac on Linux, will be used until the system version is fixed.

Bug: 1242776
Change-Id: Id398338e580eb9c67c61f9f01670d2e7dbe86bea
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3143524
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* fix: minidump-2-core doesn't work for new arm64 dumps

The app will check if process_architecture is ARM64_OLD which is 0x8003
but newman is a new arch which is ARM64 (0x12)
We can fix the issue by checking both values

Test: "/google/src/cloud/zyanwu/latest/google3/blaze-bin/chrome/dongle/platform/tools/minidump --crash_report_id=49ed111b84c0736e --crash_server=crash --build_number=265669 --build_branch=1.56 --product=newman-user --eureka_root=/usr/local/google/home/zyanwu/eureka --symbol_cache_dir=/usr/local/google/home/zyanwu/android/debug/symbols --debug" can work and it can convert the minidump to core dump then load gdb.
Bug: 199144156
Change-Id: I1590a5b617e55ae8347aad426ba5b636ff6dcdfb
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3146740
Reviewed-by: Sterling Augustine <saugustine@google.com>
Reviewed-by: Nelson Billing <nbilling@google.com>

* Use -d flag enable procecessing DW_TAG_inlined_subroutine

This change makes sure dump_syms process DW_TAG_inlined_subroutine only when -d flag is given, which save memory and time when -d is not given. Before this, it always processes DW_TAG_inlined_subroutine and -d determines whether or not to emit INLINE records.

Bug: chromium:1250351, chromium:1246974
Change-Id: I54725ba1e513cafe17268ca389ff8acc9c11b25e
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3166674
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* Fix an uninitialized member variable in previous commit

Change-Id: I83a2d026f1cef1771d28b420d76de17f0cf296ec
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3166678
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* Fix dump_syms memory leak

It moves InlineOriginMap to module.h. Let Module keeps the global InlineOriginMap to easily get all referenced InlineOrigin when emitting. And release allocated memory inside its destructor.

Verified that the symbol file with inline records for chrome is the same before and after this change.

Change-Id: I7541aa05d3d2df0b9d52d670cab58241baecf20d
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3171638
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* Add missing const in AssignFilesToInlineOrigins method

Change-Id: I3904d52e946158439899f4c5aaa92d1d15160745
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3183519
Reviewed-by: Ivan Penkov <ivanpe@chromium.org>

* Add a string pool to store functions names

- Added StringView which is used as a reference to a string, but
doesn't own the string.
- Removed the old string pool in DwarfCUToModule::FilePrivate, since
it's doing string copy.
- Added a string pool in Module to store functions/inline origins'
names (mangled and demangled).
- The peak memory usage drops from 20.6 GB to 12.5 GB when disabling
inline records and drops from 36 GB to 20.3 GB when enabling inline records.

Bug: chromium:1246974, chromium:1250351
Change-Id: Ie7e9740ea10c1930a0fc58c6becaae2d718b83b8
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3189410
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* Fix warnings in http_upload.cc with GCC

The context arguments are of type DWORD_PTR which is actually a
integer type, not a pointer, so using NULL here causes a type
missmatch warning:

  error: passing NULL to non-pointer argument 8 [...]
Change-Id: Ia52f51fd0cd33af3b139f0427dec6c59c2455d0a
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3168663
Reviewed-by: Primiano Tucci <primiano@chromium.org>

* Fix StringView build

After ff5892c5da86c50af1951328215a5a3a203a9bb1 added the new StringView,
building fails with GCC 6 due to it apparently failing to properly find
the type for nullptr_t resulting in the following error:

In file included from ../src/common/module.h:49:0,
                 from ../src/common/dwarf_cfi_to_module.h:49,
                 from ../src/common/linux/dump_symbols.cc:59:
../src/common/string_view.h:55:27: error: field 'nullptr_t' has incomplete type 'google_breakpad::StringView'
   StringView(nullptr_t) = delete;
                           ^~~~~~
../src/common/string_view.h:42:7: note: definition of 'class google_breakpad::StringView' is not complete until the closing brace
 class StringView {
       ^~~~~~~~~~

This can be fixed by adding the std:: namespace to nullptr_t.

Change-Id: I00a090d307ebe21d1143eac4a605ff319ce27048
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3201997
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* github: convert pull closing to GH actions

The probot app we were using has been shutdown, so switch over to
the new GH actions flow.

Change-Id: Ifa8c2835e1ac1a4df53a5c4f0aa851fbacbd4096
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3217681
Reviewed-by: Mark Mentovai <mark@chromium.org>

* CI: convert Travis to GH actions

With Travis shutdown, convert our flows over to GH actions.

Change-Id: Ia4d358dbbf3d8a73c347f4b9e4cd4637ce44e594
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3216116
Reviewed-by: Mark Mentovai <mark@chromium.org>

* gtest: update to 1.11 release

Keeps us in sync with Chromium a bit better.

Change-Id: I4cb80f28fc3aa2e3d0cd8637dd2a5b1ff4ae633d
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3223799
Reviewed-by: Mark Mentovai <mark@chromium.org>

* ios/mac: Add exception code for Crashpad uncaught exceptions.

Change-Id: I4c6a6fb353cacb09710c579e59332d70d1e801a8
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3093129
Reviewed-by: Mark Mentovai <mark@chromium.org>

* Fix errors in minidump_exception_mac and dwarf_cu_to_module_unittest

Change-Id: I468f19048f6b48b230913e911d0da7a20d96cae8
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3222826
Reviewed-by: Mark Mentovai <mark@chromium.org>
Reviewed-by: Nelson Billing <nbilling@google.com>

* Fix building unittests failure caused by the introduction of StringView at https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3189410

Change-Id: I258863e5de6201bc24b53dbe50b4d2515d29e338
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3221513
Reviewed-by: Mike Frysinger <vapier@chromium.org>

* Fix an instance of -Wshadow.

Bug: chromium:794619
Change-Id: I7edb70a915ffb3c6f945dce77b0bd913e32e85eb
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3229392
Reviewed-by: Mark Mentovai <mark@chromium.org>

* Fix incorrect source file name for inlined frames

Processor shows incorrect source file name if a frame have an inlined
frame and their source files are different.
Consider this example:
FILE 0 /tmp/a.h
FILE 1 /tmp/a.cpp
INLINE_ORIGIN 0 0 foo()
FUNC 1110 a 0 main
INLINE 0 22 0 1110 7
1110 7 3 0
1117 3 23 1

When querying the address 0x1110, we know this line 0x1110 corresponds
to /tmp/a.h line 3 and it's inside a inlined function foo() which is
defined at /tmp/a.h and called at line 22. But we don't know at which
file it's being called at line 22. So, we will get stacks like this:
void foo() /tmp/a.h:3
int main() /tmp/a.h:22

The correct stacks should be this:
void foo() /tmp/a.h:3
int main() /tmp/a.cpp:22

In this change:
1. Remove file_id field for INLINE_ORIGIN record.
2. Add call_site_file_id for INLINE record to represents the file where
this call being inlined.

After adding call_site_file_id to it (as third field), it looks like
this:
FILE 0 /tmp/a.h
FILE 1 /tmp/a.cpp
INLINE_ORIGIN 0 foo()
FUNC 1110 a 0 main
INLINE 0 22 1 0 1110 7
1110 7 3 0
1117 3 23 1

Bug: 1190878
Change-Id: Ibbb697d2f7e1b6ac3208cac6fae4353c8743198d
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3232838
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* Enable PA and BTI for breakpad

Introduces Arm's Pointer Authentication and Branch Target Identification
to breakpad.

The changes are similar to changes for PA/BTI to Marl, see
https://github.com/google/marl/pull/204

Bug: 1145581
Change-Id: I6a770316ad333bfcfad2ce7f3c1ff78afb35c010
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3226471
Reviewed-by: Primiano Tucci <primiano@chromium.org>

* Revert "Fix incorrect source file name for inlined frames"

This reverts commit 54d878abcb61623a71e5c2b5bb251e7f7fc8563d.

54d878abcb61 changed the dump_syms format incompatibly. This must be
redone in a multi-step process: the processor must be made to understand
the old and new formats simultaneously and the processor service must be
rebuilt and run with that update before dump_syms output can change to
use the new format.

Bug: chromium:1263390
Change-Id: I5b6f8aff8ea2916b2c07ac6a74b569fa27db51b9
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3244775
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* Make processor compatible with both old and new format INLINE/INLINE_ORIGIN

This is similar to the processor part of
https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3232838/,
but added compatibility to process both old and new format of
INLINE/INLINE_ORIGIN records in symbol file.

Old INLINE format:
INLINE <inline_nest_level> <call_site_line> <origin_id>
[<address> <size>]+
New INLINE format:
INLINE <inline_nest_level> <call_site_line> <call_site_file_id>
<origin_id> [<address> <size>]+
Old INLINE_ORIGIN format:
INLINE_ORIGIN <origin_id> <file_id> <name>
New INLINE_ORIGIN format:
INLINE_ORIGIN <origin_id> <name>

Change-Id: I555d9747bfd44a1a95113b9946dcd509b7710876
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3248433
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* Allow breakpad to read extended amd64 contexts

Minidumps can contain extended, and compacted extended, contexts to
include xstate data such as the state of the cet registers cetumsr
and cetussp. Previously breakpad would reject dumps with contexts
larger than expected. With this chage, breakpad now accepts and reads
these minidumps. This change does not yet add processing for this
extra data, but will allow any minidumps to be passed on to other
processing tools, or be available for manual inspection.

See chromium-review.googlesource.com/c/crashpad/crashpad/+/2575920
for motivation.

Bug: 1250098
Change-Id: Id67649738ef1c7fb6308e05e6cd8fde790771cb2
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3256483
Reviewed-by: Robert Sesek <rsesek@chromium.org>

* Update Rust demangling to use rustc-demangle

The rust-demangle-capi crate hasn't been updated since 2016 and
out-of-date. Instead, Breakpad needs to use C API offered by the
rustc-demangle to demangle Rust symbols.

*** TESTING ***

1) Set up rustc-demangle

> git clone https://github.com/rust-lang/rustc-demangle.git
> cd rustc-demangle
> cargo build -p rustc-demangle-capi --release

2) Breakpad

> ./configure --with-rustc-demangle=<path to rustc-demangle>
> make check src/common/dward_cu_to_module

Change-Id: Ib68b62ef329f1397bc379a1d04c632781e4b2069
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3273324
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* Add missing config for encoding_util.h/m in iOS client project

Change-Id: I448bc3d20e8b9bc091577e9c11bcb1603bff2588
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3236246
Reviewed-by: Mark Mentovai <mark@chromium.org>
Reviewed-by: Nelson Billing <nbilling@google.com>

* add DIR_METADATA settings

Change-Id: I104e667a354591b35c50902dd84917910b90d2d2
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3301422
Reviewed-by: Mark Mentovai <mark@chromium.org>

* github: enable cron schedule

Since GH is mirroring the code directly from our GoB systems, they
aren't triggering push events.  Set them up with a daily/weekly cron
so we get some level of coverage.

Change-Id: I9ececc74a4904e0e3060a10ee1acb952e2021240
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3289899
Reviewed-by: Mark Mentovai <mark@chromium.org>

* Limit Tokenize max_tokens to 512 when parsing INLINE record.

This is a more practical reserved capacity than
std::numeric_limits<int>::max() for the vector.

Change-Id: Ic8d4e812c3804e4f15cc51650f7a91bae7313415
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3301419
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>

* Extend ContainedRangeMap and StaticContainedRangeMap

This adds a new mode in ContainedRangeMap which allows existance of
equal ranges. Among those equal ranges, the most recently added range is
the innermost range.

This also adds a function to ContainedRangeMap and
StaticContainedRangeMap to allow users get a vector of entries that
contains given address from innermost to outermost ranges.

Change-Id: I84c1f2e49ffcaf8238df60e41498730103d1ead6
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3291137
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* Change Inlines in Function to be ContainedRangeMap that is easier to serialize.

Change-Id: I565d41f7d629d7ea9b66cec6760686ca201994b3
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3294125
Reviewed-by: Ivan Penkov <ivanpe@chromium.org>
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* Add serialization of inlines and inline origins for FastSourceLineResolver so that it can construct inlined frames later.

Bug: 1190878
Change-Id: Ie3b0f2f44e04e790501ea54680fe223974c750ab
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3294126
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* Fix corrupted symbol file due to malformed INLINE/INLINE_ORIGIN records

- Ignore DW_TAG_inlined_subroutine with empty range.
- Don't stop parsing after parsing malformed INLINE/INLINE_ORIGIN
records, because reports can still be generated without them but won't
have inlined frames.

Bug: 1190878
Change-Id: I445105ad06b9146268f7d064e85b0d162c3f2a39
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3321166
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* Fixing issues in the Breakpad symbol file serialization code.

- FastSourceLineResolver::Module::LoadMapFromMemory now rejects an older version of the serialization format.
- Cleaned up several unneeded usages of scoped_ptr::get.
- Fixed the serialization of bool. The serialization code was using 255 for 'true' while the deserialization code was expecting to see 1.
- Serialization for PublicSymbol.is_multiple was missing. Deserialization was expecting it
- Added some logging to processor/source_line_resolver_base.cc

Change-Id: Iadc7d8ee23bf3a07e4ea280d5d4c3f25f6278b69
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3324395
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* Fix RegisterValidFlag

Return CONTEXT_VALID_NONE if register num is greater than 15 or negative.

Change-Id: I7203d9d51f54e5d589f9ea6fd62bbbaa71de3a4d
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3336256
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* Add <call_site_file_id> to INLINE and remove <file_id> from INLINE_ORIGIN

This is the dump_syms side change on
https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3232838/.
This fixes incorrect source file names when a inlined function's source
file name is different from its parent's.

Change-Id: I25683912d206c6a8db44e322eca5f7383ea8c47e
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3248438
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* Fix for non-constant SIGSTKSZ

On glibc > 2.33, `SIGSTKSZ` might not be constant (in which case
it expands to a call to `sysconf` which returns a `long int`); see
https://sourceware.org/pipermail/libc-alpha/2020-October/118513.html

Pass unsigned explicitly to std::max, to avoid relying on template
argument deduction. This works both with the old-style constant
`SIGSTKSZ` and the new configurable one.

Initially based on https://chromium-review.googlesource.com/c/2776379

Change-Id: I9fc95337f973e871b84735ce822b5e11ba73ea8c
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3340721
Reviewed-by: Mark Mentovai <mark@chromium.org>

* mac: add go.mod for upload_system_symbols

This was created by running “go mod init upload_system_symbols”. This is
necessary for “go build” to work in recent versions of golang.
Previously, errors such as this were produced:

go: cannot find main module, but found .git/config in …/breakpad/src
	to create a module there, run:
	cd ../../../.. && go mod init

Change-Id: Ia88834aec2eb8ee01db452889c525a5f6ebefa25
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3345400
Reviewed-by: Robert Sesek <rsesek@chromium.org>

* Add INLINE and INLINE_ORIGIN records on Windows dump_syms

This adds INLINE and INLINE_ORIGIN records on Window dump_syms. It also
adds more LINE records that represents the inner most callsite line info
inside a function.

Bug: chromium:1190878
Change-Id: I15c2044709f8ca831b03a453910d036f749452c6
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3133606
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Reviewed-by: Ivan Penkov <ivanpe@chromium.org>

* Fix symupload build failure on Windows.

- Make handle_inline default to false in PDBSourceLineWriter constructor.
- Add --i flag for symupload to generate inline information.

Change-Id: I3149173ee635a503b9508a12ef572f8b6e5c5dfe
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3364804
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* Match the return type of getopt().

getopt() returns an int, not a char.

Bug: chromium:1287175
Change-Id: I9866112f7420b39ea470d9f04435ca328ab37ce0
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3387609
Reviewed-by: Mark Mentovai <mark@chromium.org>

* Fix reading DW_AT_ranges in dwarf 5

Bug: chromium:1285381
Change-Id: I8be6b0920e4d137a5d62283ce622669fa56bc417
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3389983
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* allow dump_syms to operate on contents in memory

dump_syms assumes it is operating on a file and can access a compliant
file system. This change allows dump_syms to operate on the contents of
a file that has already been read into memory. This is useful in a
server context where the file does not exist on the local file system.

Change-Id: Id63f115c2df287083d548dadd5ac487f97bde057
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3327644
Reviewed-by: Mark Mentovai <mark@chromium.org>

* namespace implementations of FileID

In trying to create a backend service that can process both ELF and
Mach-O binaries, I found that symbol collisions occur when trying to
link different implementations of FileID. This change puts the
different implementations into separate namespaces to avoid the
collision.

Change-Id: I15aabb222803f2ffbda15ed13e66793bae32ddce
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3421417
Reviewed-by: Mark Mentovai <mark@chromium.org>

* Make symupload v2 api respect --timeout flag

Change-Id: I763f45aa395a56e9c3285544e7755a1e5a85dbe4
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3422007
Reviewed-by: Nelson Billing <nbilling@google.com>
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* Fix corner cases on Windows dump_syms

- don't do iter decrement when the map empty.
- add dummy file with id equals to 0 to represent unknown file.

Change-Id: I3fe55a459c9fa835bbe0c4272e4ac12b1150c034
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3425732
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* The X86 stack walker was doing an illegal down cast from base-class (StackFrame) to derived-class (StackFrameX86).

Inline frames are always of the base-class type (StackFrame). Treating them as derived-class and accessing members was causing heap buffer overflows.

Change-Id: Id4122ab6a31f016933038a1cb63d45d5c38481f5
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3425445
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* include memory header when using unique_ptr

This is to fix build error on Windows.

Bug: chromium:1294084
Change-Id: I8e6a2e46d53d6f5b02343b81cfaa078580a8326d
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3438886
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* Add support for product_name in Mac sym_upload v2

Change-Id: I6fab9f62434fd19eb7aea4a66f0dd809af57e595
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3436859
Reviewed-by: Nelson Billing <nbilling@google.com>
Reviewed-by: Mark Mentovai <mark@chromium.org>

* github: update to latest coverity scan action

This simplifies the action code a bit.

Change-Id: Ibd6ce393ab2d09b0b6e91cecb3a78a33a18de7c0
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3443961
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* Fix missing <memory> header for Windows dump_syms

Change-Id: Ia58efa4ec5b30f644f8114eab85ef589271291dd
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3271972
Reviewed-by: Nelson Billing <nbilling@google.com>
Reviewed-by: Mark Mentovai <mark@chromium.org>

* Populating is_multiple in google_breakpad::StackFrame from symbol files.

This is needed in order to properly detect and highlight frames that
correspond to multiple functions, for example as the result of identical
code folding by the linker.

Bug: google-breakpad:751
Change-Id: I2ee7c147fcff6493c2454383ad5422b38269759a
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3471034
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* Fix table formatting of symbol_files.md

Change-Id: I4c5d2e2d77d27204fdc71d6720ea91abe18fb706
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3485498
Reviewed-by: Lei Zhang <thestig@chromium.org>

* Fix another table formatting issue in symbol_files.md

This looked fine in the source but gitiles is very particular
about its table syntax.

Change-Id: I9ca8d61a5ca9656bc4f62297861540473485091a
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3485499
Reviewed-by: Lei Zhang <thestig@chromium.org>

* Never use frame pointer unwinding on a Windows x64 stack.

MSVC never generates code that works with frame pointer chasing, and LLVM does the same.

Change-Id: I9943160d200509c079fb91394c1a5d789dc188e5
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3486523
Reviewed-by: Mark Mentovai <mark@chromium.org>

* Support for leaf functions which don't touch any callee-saved registers
for Windows x64 stacks.

According to https://reviews.llvm.org/D2474, LLVM does't generate unwind info for leaf function which doesn't touch any callee-saved
registers. According to MSDN, leaf functions can be unwound simply by
simulating a return.

Change-Id: Ic0503e2aca90b0ba5799133ea8439f1b5f2eefda
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3489332
Reviewed-by: Mark Mentovai <mark@chromium.org>
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* Add doc for INLINE and INLINE_ORIGIN records in symbol file

Change-Id: Iacf98d4e1a6f4c75e552eaa879f330be7976547e
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3268351
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* Better identification of context frames.

Since the introduction of inlined frames, it is not sufficient to check
the stack trace length (== 1) in order to identify context frames.
Updating all location that were depending on this assumption to check
for frame trust level instead.

Change-Id: I98f966889367c2270c268b8e78b67418c89c50f1
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3499020
Reviewed-by: Mark Mentovai <mark@chromium.org>

* Add docs for INLINE and INLINE_ORIGIN in overview

Change-Id: I16b2de126efc3a7df5a70086c036f2f77add952a
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3523703
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* Set use_async_processing in mac symupload.

Change-Id: I9192aed92cc3ee85c6fdce54cbf51414338d7b99
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3558027
Reviewed-by: Ivan Penkov <ivanpe@chromium.org>

* Set use_async_processing in windows symupload.

Change-Id: If9cc629a44b8c05e4be55d765800c239c47e076c
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3554917
Reviewed-by: Ivan Penkov <ivanpe@chromium.org>

* Fix build with Windows 10 20348 SDK

Bug: chromium:1292528
Change-Id: Iaee784fe3992725086636dddb5f73d7e1373e7d7
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3558794
Reviewed-by: Ivan Penkov <ivanpe@chromium.org>

* [dump_syms] Fix DW_AT_specification warning on Mac.

1. Visit DW_TAG_class_type when it's inside DW_TAG_subprogram.
2. Only warn when we can't get the name for the DIE and it has DW_AT_specification that is not in the specification map.

Bug: 1078932
Change-Id: Id3126aec305658f8f65c01675a8e9e3ea03f3651
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3579855
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* avoid dump_syms crashing if selected arch is not found

https://crrev.com/c/3327644 introduced the ability for dump_syms to
operate on in memory data, which has the consequence of not going
through the same input validation as the dump_syms cli tool. In certain
cases, it is possible that architecture info can't be reliably
determined, e.g. new architectures that breakpad is unware of. In that
case, dump_syms should avoid crashing when calling ReadSymbolData and
return false instead.

Change-Id: Ie9acdf811300084f1d5916f4778754f8abca10e0
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3572251
Reviewed-by: Ivan Penkov <ivanpe@chromium.org>

* Support PE modules in core files when running core2md

Core files generated from `wine` contain both ELF and PE modules. Module
format can be guessed by checking the file contents. If the module
corresponds to PE-file conditions (has specific fields set up as
described in https://code.google.com/archive/p/corkami/wikis/PE.wiki)
we'll create a MDCVInfoPDB70 record in the minidump for it, but if
the file cannot be opened, is too short or is not a PE file, we'll
fall back to ELF procedure.

Added /src/client/linux/minidump_writer/pe_file.{cc,h} to
src_client_linux_libbreakpad_client_a_SOURCES and
src_client_linux_linux_client_unittest_shlib_SOURCES.
Makefile.in and aclocal.m4 were generated by running 'aclocal && automake'.

Test: build core2md and use it to convert a core file into dmp, validate
that the generated dmp file can be opened. Ran './configure & make'.

Change-Id: I225ffeea3f582deed40ecdfe7ab77f5754e90cbe
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3629189
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* Make sym-upload-v2 windows code shareable.

Change-Id: I228c93655203977b27052a85705c42bafef1e1ef
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3656055
Reviewed-by: Ivan Penkov <ivanpe@chromium.org>

* Migrate google_converter to v2 upload API.

Change-Id: If045809cfa3a3601b93725b6b2b45089e7558eb3
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3657059
Reviewed-by: Ivan Penkov <ivanpe@chromium.org>

* Add symbol type option to SymUploadV2ProtocolSend.

Change-Id: Ia2eadae56c7f879ddb2212e4018024a5c04634aa
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3670054
Reviewed-by: Ivan Penkov <ivanpe@chromium.org>

* Upload native symbols from google_converter.

Change-Id: I4b636ccb1dc536ad63b0995994057fe1874f4ee6
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3681980
Reviewed-by: Ivan Penkov <ivanpe@chromium.org>

* Look for http redirection errors from SymSrv in google_converter.

Change-Id: Ic793f2a5baceb342154c995c43bf60b6f57612a5
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3689705
Reviewed-by: Ivan Penkov <ivanpe@chromium.org>

* [breakpad] Add MINIDUMP_THREAD_NAME_LIST support

Change-Id: I84205358ae48e757fa3b836747eadc32c2671756
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3690389
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Reviewed-by: Ivan Penkov <ivanpe@chromium.org>

* Revert "Support PE modules in core files when running core2md"

This reverts commit 0808030bee8bc88a34675cd1dd83b965a2249a08.

Reason for revert: Breaks Android Compile

ld.lld: error: undefined symbol: google_breakpad::PEFile::TryGetDebugInfo(char const*, google_breakpad::_RSDS_DEBUG_FORMAT*)
>>> referenced by minidump_writer.cc
>>>               client/minidump_writer.o:((anonymous namespace)::MinidumpWriter::FillRawModule(google_breakpad::MappingInfo const&, bool, unsigned int, MDRawModule*, unsigned char const*)) in archive obj/third_party/breakpad/libclient.a


https://ci.chromium.org/ui/p/chromium/builders/try/android-marshmallow-arm64-rel/1188618/overview

Original change's description:
> Support PE modules in core files when running core2md
>
> Core files generated from `wine` contain both ELF and PE modules. Module
> format can be guessed by checking the file contents. If the module
> corresponds to PE-file conditions (has specific fields set up as
> described in https://code.google.com/archive/p/corkami/wikis/PE.wiki)
> we'll create a MDCVInfoPDB70 record in the minidump for it, but if
> the file cannot be opened, is too short or is not a PE file, we'll
> fall back to ELF procedure.
>
> Added /src/client/linux/minidump_writer/pe_file.{cc,h} to
> src_client_linux_libbreakpad_client_a_SOURCES and
> src_client_linux_linux_client_unittest_shlib_SOURCES.
> Makefile.in and aclocal.m4 were generated by running 'aclocal && automake'.
>
> Test: build core2md and use it to convert a core file into dmp, validate
> that the generated dmp file can be opened. Ran './configure & make'.
>
> Change-Id: I225ffeea3f582deed40ecdfe7ab77f5754e90cbe
> Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3629189
> Reviewed-by: Joshua Peraza <jperaza@chromium.org>

Change-Id: I7105ed615a338263f112243bd8dc9e86b906fcb1
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3695862
Reviewed-by: Ivan Penkov <ivanpe@chromium.org>

* Remove usage of sprintf in dwarf_cfi_to_module.

sprintf is marked as deprecated with Xcode 14.

Bug: 1331345
Change-Id: Ic301134ec0c5e7b9ee9d590ab1423491aad5ccf7
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3692036
Reviewed-by: Ivan Penkov <ivanpe@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

* Reland "Support PE modules in core files when running core2md"

This is a reland of commit 0808030bee8bc88a34675cd1dd83b965a2249a08

Original change's description:
> Support PE modules in core files when running core2md
>
> Core files generated from `wine` contain both ELF and PE modules. Module
> format can be guessed by checking the file contents. If the module
> corresponds to PE-file conditions (has specific fields set up as
> described in https://code.google.com/archive/p/corkami/wikis/PE.wiki)
> we'll create a MDCVInfoPDB70 record in the minidump for it, but if
> the file cannot be opened, is too short or is not a PE file, we'll
> fall back to ELF procedure.
>
> Added /src/client/linux/minidump_writer/pe_file.{cc,h} to
> src_client_linux_libbreakpad_client_a_SOURCES and
> src_client_linux_linux_client_unittest_shlib_SOURCES.
> Makefile.in and aclocal.m4 were generated by running 'aclocal && automake'.
>
> Test: build core2md and use it to convert a core file into dmp, validate
> that the generated dmp file can be opened. Ran './configure & make'.
>
> Change-Id: I225ffeea3f582deed40ecdfe7ab77f5754e90cbe
> Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3629189
> Reviewed-by: Joshua Peraza <jperaza@chromium.org>

Change-Id: I09dd067a39a95f81f48656595e811c263561ebf2
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3695863
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* Ignore failure in recovering optional registers

Evaluating CFI rules may fail due to e.g. the unavailability of the
memory or some register values. Failures in recovering registers other
than CFA or return address can be ignored because they are optional.

Bug: fuchsia:102034
Change-Id: Ia1d8bdb12766e32b5445b49d353fc71c63ab73e7
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3701260
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* dwarf_cu_to_module_unittest: fix tests

https://crrev.com/7933ec0a69bac134b7cee4b60a5dc80743b2b1a9
removed warnings about unknown abstract origins, which caused these
tests to fail on ChromeOS. Update these tests to reflect the code
changes in said CL.

Bug: b:235999011
Change-Id: Ifa450d33080d955d33b3aadb951c2e75c0aa1c85
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3723686
Reviewed-by: Mike Frysinger <vapier@chromium.org>

* elf_core_dump_unittest: skip test if setrlimit will fail

Some systems have constrained rlimits for core files (the CrOS chroot is
an example of this). Fail gracefully in this case, rather than breaking
the user's tests.

Bug: b:235999011
Change-Id: I5649b42d3e6fd9b4f9b11e1fd9d0d4a1083d300f
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3722724
Reviewed-by: Mark Mentovai <mark@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

* module_unittest: fix use-after-free

`Construct.FunctionsWithSameAddress` started failing at ff5892c5. It
looks like the cause of this is in the calls to
`generate_duplicate_function`:

```
generate_duplicate_function("_without_form");
generate_duplicate_function("_and_void");
```

`generate_duplicate_function` directly calls `new
Module::Function(...);`, which stores the `StringView` it's given.
`generate_duplicate_function` currently takes a `const
string &`; in the above statements, these strings get `free()`d at the
`;`.

Making the parameter a `StringView` means the `Module::Function` will
store pointers to the string literal, which lives for the whole program.

All calls to `generate_duplicate_function` are given literals.

Bug: b:235999011
Change-Id: Ied04c1307a2467b9816a83f0c4d84d47779ec610
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3726855
Reviewed-by: Mike Frysinger <vapier@chromium.org>

* dwarf_cu_to_module_unittest: remove expectation

This expectation started failing at
8b68c72a3fff2bb687c7f411e5c1c09e356b8603. Remove it.

This is the only expectation that exists in this test, but the test
may be useful for internal asserts performed in the code under test.

Bug: b:235999011
Change-Id: Iab5c073161ce66fdf362b7da31c19f471c7a79bf
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3727478
Reviewed-by: Mike Frysinger <vapier@chromium.org>

* Added a missing dependency on android/google_breakpad/Android.mk

pe_file.cc, used in minidump_writer.cc, was not included in LOCAL_SRC_FILES. This caused breakpad to fail in build time, as it didn't find the file.

Tested using ndk 21.4.7075529, building on an arm64 device.

Change-Id: I192539a52c1344eba9999c6780bcd8b83ea7e772
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3723683
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* update autotool minimum versions

We're using autoconf-2.69 (from 2012) now and not testing anything
older, so raise the min version to that.

Also bump to automake-1.13 (from 2012) to keep a bit inline.

Change-Id: I903144f214fef835364474e1607a26e846c99ff6
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3734168
Reviewed-by: George Burgess <gbiv@chromium.org>

* regen autotools

Previous updates to these were partially done.  Rerun with the
right versions of autoconf-2.69 & automake-1.16.5.

Change-Id: Ifd6c8405b0b50c5d3cf4ea536a7db5762d62644e
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3734167
Reviewed-by: George Burgess <gbiv@chromium.org>

* simplify enable & with configure flags

Leverage the existing default logic & argument parsing that turn the
values yes/no into true/false to simplify the code so we don't create
duplicate variables.  This kills a lot of boilerplate.

Change-Id: Ib7c8e00f7b23e67ed05f3b35e523c235aed41129
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3734169
Reviewed-by: George Burgess <gbiv@chromium.org>

* Handle abbrev entities being out of order.

There are cases where the debug_abbrev entities are not sequential,
for example, in Xamarin system dlls. This change gracefully handles
such a case.

Change-Id: Ib270393d3cf9fd18efd99d15d0fba4f96748188a
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3738879
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* configure: support rustc-demangle installations in the sysroot

Currently, `./configure` supports
`--with-rustc-demangle=${path_to_crate_root}` as the only mechanism to
enable rustc-demangle support. This CL adds support for cases where
keeping or synthesizing a full `cargo` build tree is hacky in comparison
to simply installing `rustc_demangle.h` in e.g., /usr/include, and
putting `librustc_demangle.a` in e.g., `/usr/lib64`.

Bug: b:235999011
Change-Id: Id5fe2a24c4b6e33c4df0e10c86ba99c7cf890ab2
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3733672
Reviewed-by: Mike Frysinger <vapier@chromium.org>

* dwarf2reader: include <algorithm>

On CrOS, a breakpad update is breaking:
```
google-breakpad-2022.07.03.054510-r210:       no member named 'sort' in
namespace 'std'
google-breakpad-2022.07.03.054510-r210:   std::sort(abbrevs_->begin(),
abbrevs_->end(),
google-breakpad-2022.07.03.054510-r210:   ~~~~~^
```

Looks like we're missing the include for `sort`.

Bug: 235999011
Change-Id: I917389c12b370357fd1fc7cb08af0b9d7f315c84
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3741510
Reviewed-by: Mike Frysinger <vapier@chromium.org>

* exploitability: fix buffer overflow

exploitability_linux assumed a 15 byte buffer to always be passed in as
`raw_bytes` for `DisassembleBytes`. This test was passing in a 6 byte
buffer. Make `DisassembleBytes` accept a length.

Bug: b:235999011
Change-Id: I696c66357faa1c7d762c64009864123897f03488
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3756170
Reviewed-by: Mike Frysinger <vapier@chromium.org>

* crashdump_uploader: fix memory leaks & use-after-frees

These `GoogleCrashdumpUploader` instances need to be cleaned up; place
them on the stack.

Doing this unmasks another bug in this code: the `MockLibcurlWrapper`
instance we're passing into these `GoogleCrashdumpUploader`s becomes
owned by the `GoogleCrashdumpUploader` in question. Putting them on the
stack makes `free()` unhappy when the `GoogleCrashdumpUploader` they're
given to gets destructed.

Bug: b:235999011
Change-Id: I5d0424a1c09d32ea34a8fa6f5e52d3695ee6e857
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3756172
Reviewed-by: Mike Frysinger <vapier@chromium.org>

* stabs_to_module: fix memory leak

Everything in `functions_` is owned by the current `StabsToModule`. If
we fail to add something from `functions_`, we need to be sure to
dispose of it properly, since `module_` will not take ownership.

Bug: b:235999011
Change-Id: I3b965709ea2016a065b50588f4132d14a1de7725
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3756733
Reviewed-by: Mike Frysinger <vapier@chromium.org>

* module_unittest: fix memory leak

`AddFunction` only takes ownership of the pointer passed to it if it
returns true. Since it returns false when adding `function2`, we need to
free it.

Bug: b:235999011
Change-Id: I11984103c2c153ff0daf2c9690f9c88d04a2131b
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3756732
Reviewed-by: Mike Frysinger <vapier@chromium.org>

* stackwalker_mips64_unittest: default-init MIPS context

This test's constructor fails to fully initialize this raw context. As a
result, we have at least one use of uninitialized memory in CFI.At4004.
This causes said test to fail under ASAN.

Bug: b:235999011
Change-Id: I3279da8ac3414eb8c90f3949a1db47a03e750a94
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3756749
Reviewed-by: Mike Frysinger <vapier@chromium.org>

* exploitability_linux: fix mismatched comparison warning

On ARM, this write fails to build:
comparison of integers of different signs: 'ssize_t' (aka 'int') and
'const unsigned int' [-Werror,-Wsign-compare]

Since we check that it's <= 15 above, we can simply cast it without
issue.

Bug: b:235999011
Change-Id: Id75fc0df74e88b347df615df06567e96c6b59a1d
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3758800
Reviewed-by: Mike Frysinger <vapier@chromium.org>

* {static_,}range_map: fix overflows under ubsan

Explicitly call out where overflows are expected, and add appropriate
checking for them.

BUG=b:235999011
TEST=Unittests on CrOS and Linux

Change-Id: I999a6996183c2f4afc16a1c0188dee3bd64d7f09
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3759630
Reviewed-by: Mike Frysinger <vapier@chromium.org>

* Adds fastfail subcodes as distinct failure reasons

Previously these all resulted in EXCEPTION_STACK_BUFFER_OVERRUN
but this hides various specific fast fail crash types, which
are now provided based on the exception's subcode.

Tests: added to minidump_process_unittest.cc
Bug: 865632
Change-Id: Ic6693de247da55cf6d132d108c6e20c635f366b1
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3771437
Reviewed-by: Robert Sesek <rsesek@chromium.org>

* arm64: don't interpret DW_CFA_GNU_window_save

DW_CFA_AARCH64_negate_ra_state uses the same encoding as
DW_CFA_GNU_window_save. It is meant to indicate that x30/LR
has been signed, but breakpad does not require this information.

Bug: b/239086293
Change-Id: I5a17bd5e0673a3ff80a8c6e347013d66054314e8
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3781136
Reviewed-by: Mark Mentovai <mark@chromium.org>

* Mac dump_syms: Fix -a on arm64

- Resets `selected_object_file_` when a new file is read. This was a dangling pointer previously.
- When `-a` is provided, ensures that both parts of a split module use
the given architecture.

Bug: None
Change-Id: I581d41b0eee4ec2b0d598fb80b9065e7ebde0e0d
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3788222
Reviewed-by: Mark Mentovai <mark@chromium.org>

* arm64: strip PACs from return addresses found from CFI

Bug: b/239086293
Change-Id: I8b514e8640f0f2496cea8d0b516124c0e3a3b81a
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3788698
Reviewed-by: Mark Mentovai <mark@chromium.org>

* Add error messages on pdb Open function

This implements the error messages from
https://docs.microsoft.com/en-us/visualstudio/debugger/debug-interface-access/idiadatasource-loaddataforexe?view=vs-2022
and
https://docs.microsoft.com/en-us/visualstudio/debugger/debug-interface-access/idiadatasource-loaddatafrompdb?view=vs-2022
instead of having just a generic error message.

Signed-off-by: Lorenzo Alberto Maria Ambrosi <lorenzothunder.ambrosi@gmail.com>
Bug: https://bugs.chromium.org/p/google-breakpad/issues/detail?id=866
Change-Id: I23c0e80d31afb402a70cb0cdded78d3d34ac5fff
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3810512
Reviewed-by: Mark Mentovai <mark@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

* Check sh_type for symbol table and finish ProcessDIEs if any DIE processing goes wrong

- If symbol table section is malformed, skip them.
- SkipDIE and ProcessDIE return nullptr when processing goes wrong due to malformed debug info, stop processing in this case.

Bug: 1349354
Change-Id: Ia1d3e3591bbd2dad8b9eb351c1882cfc03bfad4b
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3821448
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* Fix garbage header being prepended to native symbol uploads.

Change-Id: I96887504ad9dc47dda6ebc5be7c193a1eb1f94d1
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3825137
Reviewed-by: Zequan Wu <zequanwu@google.com>

* Fix int64_t format in fprintf by using PRIx64.

Change-Id: Ic03ecc055c4eb097fbaaf8c8cd2c0a68d5aea8a0
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3826785
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* Fix -Wdeprecated-declarations when macOS 13 SDK is used.

This CL fixes the following error detected on a WebRTC bot:

FAILED: obj/third_party/breakpad/utilities/ConfigFile.o
/opt/s/w/ir/cache/goma/client/gomacc ../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/third_party/breakpad/utilities/ConfigFile.o.d -DCR_XCODE_VERSION=1400 -DCR_CLANG_REVISION=\"llvmorg-16-init-907-g8b740747-1\" -D_LIBCPP_ABI_NAMESPACE=Cr -D_LIBCPP_ABI_VERSION=2 -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_ENABLE_NODISCARD -DCR_LIBCXX_REVISION=9f503bebdb9a89f5ee82b82142109b26d688f40c -D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=0 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -I../.. -Igen -I../../buildtools/third_party/libc++ -I../../third_party/breakpad/breakpad/src  -fno-delete-null-pointer-checks -fno-ident -fno-strict-aliasing -fstack-protector -femit-dwarf-unwind=no-compact-unwind -fcolor-diagnostics -fmerge-all-constants -fcrash-diagnostics-dir=../../tools/clang/crashreports -mllvm -instcombine-lower-dbg-declare=0 -ffp-contract=off -fcomplete-member-pointers -arch x86_64 -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -ffile-compilation-dir=. -no-canonical-prefixes -ftrivial-auto-var-init=pattern -O2 -fno-omit-frame-pointer -g2 -gdwarf-aranges -Xclang -debug-info-kind=limited -isysroot sdk/xcode_links/MacOSX13.0.sdk -mmacos-version-min=10.13 -fvisibility=hidden -Xclang -add-plugin -Xclang find-bad-constructs -Xclang -plugin-arg-find-bad-constructs -Xclang raw-ref-template-as-trivial-member -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Werror -Wall -Wno-unused-variable -Wno-c++11-narrowing -Wno-unused-but-set-variable -Wno-misleading-indentation -Wunguarded-availability -Wno-missing-field-initializers -Wno-unused-parameter -Wloop-analysis -Wno-unneeded-internal-declaration -Wenum-compare-conditional -Wno-psabi -Wno-ignored-pragma-optimize -Wno-deprecated-builtins -std=c++17 -Wno-trigraphs -fobjc-call-cxx-cdtors -fno-exceptions -fno-rtti -nostdinc++ -isystem../../buildtools/third_party/libc++/trunk/include -isystem../../buildtools/third_party/libc++abi/trunk/include -fvisibility-inlines-hidden -c ../../third_party/breakpad/breakpad/src/client/mac/crash_generation/ConfigFile.mm -o obj/third_party/breakpad/utilities/ConfigFile.o
../../third_party/breakpad/breakpad/src/client/mac/crash_generation/ConfigFile.mm:108:5: error: 'sprintf' is deprecated: This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Werror,-Wdeprecated-declarations]
    sprintf(processUptimeString, "%llu",
    ^
sdk/xcode_links/MacOSX13.0.sdk/usr/include/stdio.h:188:1: note: 'sprintf' has been explicitly marked deprecated here
__deprecated_msg("This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead.")
^
sdk/xcode_links/MacOSX13.0.sdk/usr/include/sys/cdefs.h:214:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
../../third_party/breakpad/breakpad/src/client/mac/crash_generation/ConfigFile.mm:114:3: error: 'sprintf' is deprecated: This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Werror,-Wdeprecated-declarations]
  sprintf(processCrashtimeString, "%zd", tv.tv_sec);
  ^
sdk/xcode_links/MacOSX13.0.sdk/usr/include/stdio.h:188:1: note: 'sprintf' has been explicitly marked deprecated here
__deprecated_msg("This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead.")
^
sdk/xcode_links/MacOSX13.0.sdk/usr/include/sys/cdefs.h:214:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))

Bug: webrtc:14342
Change-Id: I923ab3f9155eb36aa2edf9b1d38c123e3e6ad029
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3829529
Reviewed-by: Mark Mentovai <mark@chromium.org>

* Add product name metadata to converter and symupload.

Change-Id: Iefea0aea13deb86d71d663c8344a2d3c658caf4a
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3756171
Reviewed-by: Ivan Penkov <ivanpe@chromium.org>

* fix includes

Change-Id: Ibfe719c3ed303cd45884863746cf07ec22dba45d
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3863388
Reviewed-by: Nelson Billing <nbilling@google.com>

* Update LSS dep to the last commit

Change-Id: I35f35d9d31d97c8237f0d90170be04716d820028
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3873644
Reviewed-by: Mike Frysinger <vapier@chromium.org>

* Fix some Coverity defects.

Fix a few issues Coverity detected in exploitability_linux.cc:

CID 277681, 277682, 277683

Change-Id: I8ad0581f075da7346b9be8100b3690555a358b16
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3872234
Reviewed-by: Mike Frysinger <vapier@chromium.org>

* Added crash context float state flag

Instead of listing everywhere the set of architectures that do not
require/support explicit float state in their crash context, a new
GOOGLE_BREAKPAD_CRASH_CONTEXT_HAS_FLOAT_STATE preprocessor macro has
been defined.

Adding novel architectures will only require to manage the
macro definition in a single place.

Change-Id: I2732982f2cdfc9fcd2f71d6e5e122617faff9e82
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3876345
Reviewed-by: Mike Frysinger <vapier@chromium.org>

* Fix fread() check in ExploitabilityLinux.

This fread() call did not intend to always fill the buffer, so the
change in https://crrev.com/c/3872234 is incorrect. Revert that one line
change.

Change-Id: I3fbe38fce11c24aa77b39dc229c7c5ed2a8d6960
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3879289
Reviewed-by: Mike Frysinger <vapier@chromium.org>

* Update copyright boilerplate, 2022 edition (Breakpad)

sed -i '' -E -e 's/Copyright (\(c\) )?([0-9-]+),? (Google|The Chromium Authors).*(\r)?$/Copyright \2 Google LLC\4/' -e '/^((\/\/|#| \*) )?All rights reserved\.?\r?$/d' -e 's/name of Google Inc\. nor the/name of Google LLC nor the/' -e 's/POSSIBILITY OF SUCH DAMAGE$/POSSIBILITY OF SUCH DAMAGE./' $(git grep -El 'Copyright (\(c\) )?([0-9-]+),? (Google|The Chromium Authors).*$')

Plus manual fixes for src/processor/disassembler_x86.{cc,h}.

Plus some conversions from CRLF to LF line endings in .cc and .h files.

Bug: chromium:1098010
Change-Id: I8030e804eecd9f5a1ec9d66ae166efd8418c2a67
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3878302
Reviewed-by: Mike Frysinger <vapier@chromium.org>

* Polling in ParallelChildCrashesDontHang test

Instead of (arbitrarily) wait 1s for the child process to terminate, the
parent now polls the child process every 100ms to check if it's
terminated, and it does so for a much longer total time of 10s.

This implementation ensures correct check for slower architectures, and
fast success for faster ones.

Change-Id: I2ff38458bf747de5b74268a4e22fd6164450419b
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3876346
Reviewed-by: Mike Frysinger <vapier@chromium.org>

* Added riscv and riscv64 support for Linux

Change-Id: I62cd157d00a87720db001072662a81d8eb9112b0
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3873291
Reviewed-by: Mike Frysinger <vapier@chromium.org>

* Clean up module_unittest

This change rewrites the tests to have `Module` as a prefix and
rearranges them a little. This is prep for adding this file to
breakpad_unittests Chromium-side.

Bug: google-breakpad:751
Change-Id: I8a77f60a0080d06af13dd30d9cf7627dce045d90
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3915004
Reviewed-by: Mark Mentovai <mark@chromium.org>

* test: exploitability: Fix preprocessor guards for Linux

Guard the Linux specific tests by checking for __linux__, as it does
not only not work on Windows but not on macOS either.
Change-Id: I0e710a6da8e6686f11bc8ea23e07ac19f3b4beb2
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3928026
Reviewed-by: Mike Frysinger <vapier@chromium.org>

* Add DisassemblerObjdump.

This extracts the existing objdump-based disassembler engine used in
ExploitabilityLinux into a seperate reusable class, and adds support
for most common address operand formats.

This is a precursor to using DisassemblerObjdump to handle address
resolution for non-canonical address dereferences on amd64.

Bug: 901847
Change-Id: I1a06a86fc2e7c76b4d0e79eca5f8a6c501379f47
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3720740
Reviewed-by: Ivan Penkov <ivanpe@google.com>
Reviewed-by: Ivan Penkov <ivanpe@chromium.org>

* Fixup non-canonical fault addresses for amd64.

This uses DisassemblerObjdump to add a processing step in
MinidumpProcessor to compute the true faulting address from register
state and disassembly of the fault instruction when the fault address
is suspicious (-1).

Bug: 901847
Change-Id: Ia1f77d542c4055c82ce2504db8c84a9e52001866
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3932957
Reviewed-by: Ivan Penkov <ivanpe@chromium.org>

* Changes FunctionNames.Mangled to check for regex instead of equality

The demangled name has recently joined two angle brackets, where there
was previously a space. This commit makes it possible for both options
to pass, since they're both valid source.

Bug: b:238678030
Test: Tested locally
Fixed: b:243982778
Change-Id: Ic4464709fb8cc5c730a9d14a8627294b24ae70c3
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3949474
Reviewed-by: Lei Zhang <thestig@chromium.org>

* enables C++17 mode

Breakpad has started to use C++17 features, and needs to be compiled
using C++17.

Bug: b:238678030, b:243982778
Test: Locally, CQ
Change-Id: Ia339f0815d2efd2a49fa9b788044b5b0163f95fa
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3954471
Reviewed-by: Mark Mentovai <mark@chromium.org>
Reviewed-by: Manoj Gupta <manojgupta@chromium.org>
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* replaces `sizeof(raw_context)` with `sizeof(*raw_context)`

Using `sizeof(raw_context)` generates the following warning (which is
an error in ChromeOS):

```
'memset' call operates on objects of type 'MDRawContextX86' while the size
is based on a different type 'MDRawContextX86 *'
```

This commit follows the implied advice of this warning and adjusts the
expression.

Bug: b:238678030, b:243982778
Test: Locally
Change-Id: I26111c6ff7a1223223e6096a75ad52c48d941e89
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3960915
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* Update LSS dep to the latest commit

Change-Id: I39e459f519922433de82c62385d08c6db34328f0
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3964165
Reviewed-by: Mike Frysinger <vapier@chromium.org>

* mainline version gcc-13 cannot use "uintptr_t" via "#include <string>"

Change-Id: I0049bb92658b4226e32783ad4d8271787deef5f3
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3964166
Reviewed-by: Mike Frysinger <vapier@chromium.org>

* Add support for compressed section headers to dump_syms.

Change-Id: I019cc9ffd66850ec5259f6dfcd9af8ac6c37d2c0
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3938926
Reviewed-by: Manoj Gupta <manojgupta@chromium.org>
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* names anonymous structs in elfutils.h

Fixed: chromium:1378800
Change-Id: I8215c091c72e796b1683753e2512d6e6adc4167f
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3984802
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* Support marking folded symbols on Posix

This is similar to the Windows change at
https://chromium-review.googlesource.com/c/breakpad/breakpad/+/773418/

When a `Module` is created with `enable_multiple_field_` = true,
all FUNCs and PUBLICs that share the same address will be collapsed
into a single entry, and that entry will be marked with `m` for
multiple in the final output.

`enable_multiple_field_` is temporary just in case people are
depending on the current behavior.

Support for `dump_syms` executables will be added in a follow-up.

Bug: google-breakpad:751
Change-Id: I631a148ed00138924c7bcb5ad6db8b9a6610dd03
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3905122
Reviewed-by: Mark Mentovai <mark@chromium.org>

* Fix compile error in disassembler_objdump.cc for non-Linux build.

A couple of pointer parameters should be references instead.

Change-Id: Ic1850d9330194374f7fe2108815267ede6f3ca32
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/4021971
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* Speed up testing for multiple functions at an address on Posix

The way this was originally written blows up on large enough targets
(like...Chromium :/). This change adds a set for amortized constant
time lookup of whether a FUNC already exists at a given address.

Bug: google-breakpad:751
Change-Id: I10a322da70f769c106e1e5f5b2dc3dc3f79444fd
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/4031580
Reviewed-by: Mark Mentovai <mark@chromium.org>

* Fix Windows native symbol uploads.

- We were appending a CRLF to uploaded files, which is okay for Breakpad
  symbols but breaks binaries (PE/PDB).
- Removed the CRLF after files in the request body to fix issue. Tested with
  Breakpad, PE, and PDB uploads.

Change-Id: I95ee7c51bf981cdb2e55cc720a7813cf7afa21ce
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/4038506
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Reviewed-by: Zequan Wu <zequanwu@google.com>

* Add a flag to google_converter to keep Breakpad/PE/PDB files after conversion.

Change-Id: I8948e1aba598d42369d70ca1cc1168ce3841ab40
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/4038509
Reviewed-by: Zequan Wu <zequanwu@google.com>
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

* Fix Linux ASan Afl build error.

Bug: 1385147
Change-Id: I69ebfa1adbc1c2a17decf0079812c4f507e3332c
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/4046961
Reviewed-by…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants