Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

JoshuaMoelans
Copy link
Member

No description provided.

c01db33f and others added 30 commits December 11, 2023 16:08
When building a stack trace using StackwalkerAddressList, if there are
inlined frames then the stack trace will skip over the following
frames, leading to missing frames in the symbolized stacktraces.

Bug: 314930064
Change-Id: I5c7a1b2e7c2f728e27b2082e77ebe953808f38bc
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/5087692
Reviewed-by: Joshua Peraza <[email protected]>
In RangeMap::StoreRangeInternal, when size <= 0 and !high_ok then the
high variable is passed to HexString uninitialized.

Change-Id: I7e597cadaf248b607c646534a5d800c17ccdeda9
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/5155712
Reviewed-by: Robert Sesek <[email protected]>
Throws an error when compiling on Windows.

Change-Id: Ieb34c00cf199aaa1b45a440086c48b8ed363b3c7
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/5137658
Reviewed-by: Ivan Penkov <[email protected]>
Minidump file needs to be opened as binary.

Change-Id: I15f148ec905c9491050b77a77e86e2749da93515
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/5160989
Reviewed-by: Sterling Augustine <[email protected]>
Windows doesn't have posix regex support. This will disable these tests so long as Google's ABSL library is not also found.

Change-Id: Ie6f96d5ea74b80b6128c2f1ec3ed54fcfaa17f47
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/5160533
Reviewed-by: Ivan Penkov <[email protected]>
Change-Id: Ibcf1b0ddb93f1cf6bf12681ed82871328571f2aa
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/5137659
Reviewed-by: Ivan Penkov <[email protected]>
Otherwise, even with core.autocrlf=false, Windows will checkout these minidump output files with CRLF line-ending. It is necessary for these
files to be checked out using LF line-ending for the unit tests to pass.

Change-Id: I7cacf4b5fa56e007c8aa81202e0cef7ad42ae93a
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/5160534
Reviewed-by: Ivan Penkov <[email protected]>
Minidumps can contain extended contexts with xstate data for amd64 and
x86.

Support for amd64 contexts was added in
fe35cd4.

With this change, breakpad can now read x86 minidumps that contain
extended xstate data. Similar to the previously mentioned commit, this
change does not yet add processing for this extra data, but will allow
the minidumps to be read.

Change-Id: Ie96e91168def774092e05908535a70fc5e2427e9
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/5154022
Reviewed-by: Mike Frysinger <[email protected]>
Change-Id: Id22814308542503754600c2fa41e76bd6d1492c0
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/5143028
Reviewed-by: Ivan Penkov <[email protected]>
Availability.h and AvailabilityMacros.h are only available when
compiling on Apple.

Change-Id: I820c74a7fa15560c358366418a503b911dde3d86
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/5171145
Reviewed-by: Ivan Penkov <[email protected]>
Bug: b/317143556
Change-Id: Iba82712fedf7d126c2392cfc0f157ded2bca5219
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/5171059
Reviewed-by: Ivan Penkov <[email protected]>
This change introduces two new flags: `--ipsw` and `--installer` which are mutually exclusive with `--system-root` and each other. Each takes a file path as an argument, which is expected to be an IPSW for `--ipsw` and an Apple installer for `--installer`.

Calling `upload_system_symbols` with these arguments will cause it to find any dyld shared caches present inside the given IPSW or installer, extract them via `dsc_extractor` in `--breakpad-tools`, then behave as if it had been called with the resulting libraries as `--system-root`.

Bug: chromium:1400770
Change-Id: I7f98e0c6ab069a2e960f12773d800d8a5a37221f
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/5089008
Reviewed-by: Robert Sesek <[email protected]>
…used by an integer overflow.

We started getting Breakpad symbol files that exceed some of the 32-bit limits.

Change-Id: I1f81905c0b7f88a0c93f10b651e5e160876487fd
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/5186360
Reviewed-by: Joshua Peraza <[email protected]>
The version of Makefile.in that landed in https://crrev.com/c/4722191
had a Makefile.in that was generated from a previous version of
Makefile.am where the libzstd dependency wasn't optional. That's causing
some problems (see: https://crrev.com/c/5193965) and is a simple
mistake.

I generated this CL by simply running `automake`, so it simply makes the
checked in generated Makefile.in based on the checked in source
Makefile.am

Change-Id: Iabb4a99bfac3f5ef6067a140bd373c9fb894878a
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/5200626
Reviewed-by: Mike Frysinger <[email protected]>
Change-Id: I862905a164370298ca2f21d2030a0aab860cc08c
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/5204606
Reviewed-by: Nelson Billing <[email protected]>
This uninitialized-memory use breaks the Mac ubsan build as dump_syms
runs during the build step.

Bug: chromium:1324701
Change-Id: Id4e0a7d38893b2ceb49e58d1f5c99a056d84a921
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/5243705
Reviewed-by: Lei Zhang <[email protected]>
For ARM32 binaries running on ARM64 Linux (kernel) reading of FP
registers fails. It's guarded for Android as well as softap platforms,
but other ARM platforms can suffer from this issue.

The ARMEABI linux_ptrace_dumper_unittest fails on system that runs
under ARM64 kernel.

In order to mitigate the issue, we adding a VFP registers read.
The Breakpad does not support include of VFP registers into a minidump
file, so that read is noop for the backend, but just a fix for broken
systems.

Bug: internal 322205293
Test: Run linux_ptrace_dumper_unittest on following [userland:kernel]
      combinations:
        armeabi-hardfp:armeabi
        armeabi-softfp:armeabi
        armeabi-hardfp:aarch64
        aarch64:aarch64

Signed-off-by: Volodymyr Riazantsev <[email protected]>
Change-Id: I0709ae9a7ff913340ebc89de703ab2cb9c823b14
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/5247149
Reviewed-by: Joshua Peraza <[email protected]>
Fix a type definition, so it doesn't collide if the similar
type is already defined in the sysroot headers.

Test: Build for Android/Linux.
Bug: Internal 322205293
Change-Id: I3453de725083b01f2e69a61a7fc948f9f8ca5eca
Signed-off-by: Volodymyr Riazantsev <[email protected]>
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/5251488
Reviewed-by: Joshua Peraza <[email protected]>
Updated code to use Google's modern C++ style.

* Use std::unique_ptr to allocate DwarfCUToModule::WarningReporter.
* Fixed reference alignment in NullWarningReporter.

Change-Id: I230dac445a07b4023a64284b907010f31eadcdf4
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/5265662
Reviewed-by: Lei Zhang <[email protected]>
Reviewed-by: Ivan Penkov <[email protected]>
- Mark `RawImagePatch` weak
- Fix reversed condition in disk image unmounting
- Ensure source files are closed when copying
- Use 0-based indexing when determining installer OS version

Bug: None
Change-Id: I015f2b0d9c88a5ec128822d55c974e22723a1a6e
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/5291963
Reviewed-by: Mark Mentovai <[email protected]>
Recently, Breakpad symbol files have exceeded the various 32-bit limits in these utils and we started seeing integer overflows.

This is also fixing a build issue in src/common/mac/dump_syms.cc.

Change-Id: Ibd913816c3b2b1171ac9991718c8911ac31eda86
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/5299472
Reviewed-by: Ivan Penkov <[email protected]>
Reviewed-by: Joshua Peraza <[email protected]>
Bug: None
Change-Id: I7f3709ee7e8b7e9e938850b1bbe24925e3e03c9b
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/5300127
Reviewed-by: Mark Mentovai <[email protected]>
…er_arm64.cc

Also, defining __STDC_FORMAT_MACROS before including <inttypes.h>

Change-Id: Ia25c4353412ca70512efef5e98670687ab575750
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/5310977
Reviewed-by: Joshua Peraza <[email protected]>
After reading minidump context with x86 xstate data, we seek past it, so
there needs to be a check to see that the seek operation did not fail.

Change-Id: I8ed4394e452c435234116d97fd65856345cb618a
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/5324600
Reviewed-by: Mike Frysinger <[email protected]>
Change CompilationUnit::SkipAttribute() and
CompilationUnit::ProcessOffsetBaseAttribute() to print the unknown form
types they encounter.

Along the way, fix various formatting issues, stray trailing spaces, and
update some NULLs to nullptrs.

Change-Id: I5b3e72c9c6c9cb31e8a930e54418adb74b02f6c2
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/5366242
Reviewed-by: Joshua Peraza <[email protected]>
It is undefined behavior to access mis-aligned pointers.

Change-Id: I06f676c6a4b92a4bb58db76b8f23750d18148940
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/5380937
Reviewed-by: Ivan Penkov <[email protected]>
Change-Id: Ie62795137770cff7cda7494c5527457b1e355897
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/5402921
Reviewed-by: Ivan Penkov <[email protected]>
Summary:
Android prefers `.note.gnu-build-id`[0] as BuildId than anyother PT_NOTE
phdrs. This CL tries to read ElfBuildId from `.note.gnu.build-id` first
to fix the BuildId mismatch issue between Android tombstone report and
breakpad symbol file.

e.g
```
Section Headers:
  [Nr] Name              Type             Address           Offset
       Size              EntSize          Flags  Link  Info  Align
  [ 0]                   NULL             0000000000000000  00000000
       0000000000000000  0000000000000000           0     0     0
  [ 1] .note.androi[...] NOTE             0000000000000270  00000270
       0000000000000018  0000000000000000   A       0     0     4
  [ 2] .note.hwasan[...] NOTE             0000000000000288  00000288
       000000000000001c  0000000000000000   A       0     0     4
  [ 3] .note.gnu.bu[...] NOTE             00000000000002a4  000002a4
       0000000000000020  0000000000000000   A       0     0     4

$ readelf -x .note.hwasan.globals
Hex dump of section '.note.hwasan.globals':
  0x00000288 08000000 08000000 03000000 4c4c564d ............LLVM
  0x00000298 00000000 98890100 409d0100          ........@...

$ readelf -x .note.gnu.build-id
Hex dump of section '.note.gnu.build-id':
  0x000002a4 04000000 10000000 03000000 474e5500 ............GNU.
  0x000002b4 a4eb3625 c1db6452 1e881973 bfdff9bd ..6%..dR...s....
```

The BuildId in tombstone:
```
libartbase.so (BuildId: c7e463b51b0898d442269a421353bdbd)
```

But the breakpad dump_syms got:
```
MODULE Linux arm64 000189989D40000100000000000000000 libartbase.so
INFO CODE_ID 98890100409D0100
`````

[0]
https://cs.android.com/android/platform/superproject/main/+/main:system/unwinding/libunwindstack/ElfInterface.cpp;l=423-427;drc=3d19fbcc09b1b44928639b06cd0b88f735cd988d

Change-Id: I01e3514e0e2a1ea163c03093055284448ed4e89c
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/5463566
Reviewed-by: Joshua Peraza <[email protected]>
Change-Id: Ib785633b229d3f17534da9b0de93255e80fddd70
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/5484086
Reviewed-by: Joshua Peraza <[email protected]>
vapier and others added 24 commits March 12, 2025 17:12
Compiling with GCC 14.2 and C++20 triggers an error:
$ g++ -std=gnu++20 -DHAVE_CONFIG_H -I. -I../src -I./src  -I../src/src \
  -Wmissing-braces -Wnon-virtual-dtor -Woverloaded-virtual -Wreorder -Wsign-compare -Wunused-local-typedefs -Wunused-variable -Wvla -Werror \
  -fPIC -O2 -g -c ../src/src/processor/minidump.cc
In file included from /usr/include/c++/14/memory:78,
                 from ../src/src/processor/minidump.cc:63:
In member function ‘void std::default_delete<_Tp>::operator()(_Tp*) const [with _Tp = std::__cxx11::basic_string<char>]’,
    inlined from ‘void std::default_delete<_Tp>::operator()(_Tp*) const [with _Tp = std::__cxx11::basic_string<char>]’ at /usr/include/c++/14/bits/unique_ptr.h:87:7,
    inlined from ‘std::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = std::__cxx11::basic_string<char>; _Dp = std::default_delete<std::__cxx11::basic_string<char> >]’ at /usr/include/c++/14/bits/unique_ptr.h:398:17,
    inlined from ‘virtual std::string google_breakpad::MinidumpModule::debug_file() const’ at ../src/src/processor/minidump.cc:2576:9:
/usr/include/c++/14/bits/unique_ptr.h:93:9: error: ‘void operator delete(void*, std::size_t)’ called on unallocated object ‘file’ [-Werror=free-nonheap-object]
   93 |         delete __ptr;
      |         ^~~~~~~~~~~~
../src/src/processor/minidump.cc: In member function ‘virtual std::string google_breakpad::MinidumpModule::debug_file() const’:
../src/src/processor/minidump.cc:2509:10: note: declared here
 2509 |   string file;
      |          ^~~~

Workaround this by forcing a new string to be constructed from the
memory, and then moved into the stack file object.

Change-Id: I1e2e6c2e30723daefca2046a3e5f5a580975301b
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/6346970
Reviewed-by: Lei Zhang <[email protected]>
We've required C++17 for a while now, and that offers unique_ptr which
is functionally the same as our scoped_ptr.  Replace our custom code
with an alias to the standard API.  If this sticks, we can update the
entire tree to use unique_ptr directly.

Change-Id: I3ce01f710dc5c62d05df36d4c28059dddd3f71a9
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/6346969
Reviewed-by: Lei Zhang <[email protected]>
Change-Id: Ib07dcda1ca94fc2eda225a76d6fcb52c9ebd1700
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/6297837
Reviewed-by: Troy Wang <[email protected]>
Chromium switched to C++20 2 years ago, and we want to start using
features from it, so update to it too.

Change-Id: I97067f5015be6369506de5389913c60f336130a0
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/6347230
Reviewed-by: Mark Mentovai <[email protected]>
Passes `make check` on Linux for me, and it's close to the version
the Chromium tree has been using for a while now.  Certainly much
closer than the 1.11.0 version we're pinned to.

Change-Id: I494cbf540cf4bd525d4e35c28da2c22d59efec1b
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/6367938
Reviewed-by: Lei Zhang <[email protected]>
This reverts commit f8d05a9.
This reverts commit a70e77e.

This breaks src/processor/minidump_stackwalk_test on Linux:
$ make check VERBOSE=1
...
../src/src/processor/testdata/minidump2.stackwalk.out
@@ -8,6 +8,9 @@

 Crash reason:  EXCEPTION_ACCESS_VIOLATION_WRITE
 Crash address: 0x45
+Crash parameters:
+    value: 1   description:
+    value: 69  description:
 Process uptime: 0 seconds

 Thread 0 (crashed)
...

Change-Id: Iae755826913c5cbc97f3493bbe288d17aa0205d2
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/6371501
Reviewed-by: Lei Zhang <[email protected]>
Delete the scoped_ptr alias and switch code to std::unique_ptr directly.

Change-Id: I3a25e07d66f0a27d16f82443b01c4db93a2cf0d9
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/6367939
Reviewed-by: Lei Zhang <[email protected]>
Someday the bot will send us LSS updates automatically.

Change-Id: I99640b2d466e555b9a0623c28a437a3ddab502d4
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/6381405
Reviewed-by: Lei Zhang <[email protected]>
Change NULL to nullptr across the codebase.

Drop stddef.h in a few places where it is no longer needed.

Change-Id: I9ca16bc243e0c7b8900b175b0426ee6c9a55ecef
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/6381404
Reviewed-by: Lei Zhang <[email protected]>
Some refactors cleaned up headers in places they weren't used, but
other files were relying on those indirect includes.  Add assert.h
to the various C++ files that use assert().

Change-Id: I7be2b1108548bb1fb126548cb3b891a76024f83b
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/6387418
Reviewed-by: Lei Zhang <[email protected]>
Change-Id: I8f08b7ea098d6e7814d84677487d7f96ead5cdcc
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/6388176
Reviewed-by: Lei Zhang <[email protected]>
We require C++20 now, so we can switch to the C++17 [[fallthrough]].

Change-Id: I5c34cd4154bca28f4d950524e5b2ffb1e7ec8afd
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/6388177
Reviewed-by: Lei Zhang <[email protected]>
Some Windows code was misusing NULL, so when it was changed to nullptr,
the extra compile-time checks caught it and broke.

Since crash_id_ is an integer, initialize it to 0, not a pointer.
  client/windows/crash_generation/client_info.cc(60,7): error:
  cannot initialize a member subobject of type 'DWORD' (aka 'unsigned long') with an rvalue of type 'std::nullptr_t'
   60 |       crash_id_(nullptr) {

Casting a pointer to the MINIDUMP_TYPE enum doesn't make sense,
especially when the enum with value 0 is a valid value.  Switch
to MiniDumpNormal since that's what NULL (0) was doing.
  client/windows/crash_generation/crash_generation_client.cc(209,23): error:
  static_cast from 'std::nullptr_t' to 'MINIDUMP_TYPE' (aka '_MINIDUMP_TYPE') is not allowed
  209 |                       static_cast<MINIDUMP_TYPE>(nullptr), nullptr, nullptr,

While these are ULONG_PTR, MSDN says they're status codes & byte counts,
so initialize both to 0 rather than a null pointer.
  client/windows/crash_generation/crash_generation_server.cc(568,26): error:
  assigning to 'ULONG_PTR' (aka 'unsigned long long') from incompatible type 'std::nullptr_t'
  568 |   overlapped_.Internal = nullptr;
  client/windows/crash_generation/crash_generation_server.cc(569,30): error:
  assigning to 'ULONG_PTR' (aka 'unsigned long long') from incompatible type 'std::nullptr_t'
  569 |   overlapped_.InternalHigh = nullptr;

Since handle_ is an integer, initialize it to 0.
  client/windows/crash_generation/minidump_generator.cc(109,7): error:
  cannot initialize a member subobject of type 'ULONG64' (aka 'unsigned long long') with an rvalue of type 'std::nullptr_t'
  109 |       handle_(nullptr) {

While Linux defines AppMemory.ptr as void*, Windows defines it as
ULONG64.  Cast nullptr to that to match other ptr code in this file.
  client/windows/handler/exception_handler.cc(256,28): error:
  assigning to 'ULONG64' (aka 'unsigned long long') from incompatible type 'std::nullptr_t'
  256 |   instruction_memory.ptr = nullptr;

The last arg to WinHttpConnect is a reserved integer, not a pointer,
so passing it NULL was incorrect -- change to 0 per MSDN.
  tools/windows/converter_exe/winhttp_client.cc(150,42): error:
  cannot initialize a parameter of type 'DWORD' (aka 'unsigned long') with an rvalue of type 'std::nullptr_t'
  150 |                                          nullptr));

We need to pass explicit 0 for DWORD_PTR types.
  tools/windows/converter_exe/wininet_client.cc(175,39): error:
  cannot initialize a parameter of type 'DWORD_PTR' (aka 'unsigned long long') with an rvalue of type 'std::nullptr_t'
  175 |                                       nullptr));

Change-Id: Id5f5b65a4279fe7aa1cbc1b99b18813d6a150117
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/6388180
Reviewed-by: Lei Zhang <[email protected]>
Further work for Windows and NULL->nullptr.

Pass explicit 0 for DWORD_PTR types.
  tools/windows/converter_exe/winhttp_client.cc(188,33): error:
  cannot initialize a parameter of type 'DWORD_PTR' (aka 'unsigned long long') with an rvalue of type 'std::nullptr_t'
  188 |                                 nullptr);

Change-Id: I5c62094dfe05b6edcee293284ee02840cccab517
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/6387423
Reviewed-by: Lei Zhang <[email protected]>
Bug: chromium:407791454
Change-Id: Ib07a9ef0e5559fa076d7f78c4e5313c9b62b5575
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/6420191
Reviewed-by: Mark Mentovai <[email protected]>
Missed a PlistBuddy use last time; also fixed a logic bug when
compiling system roots.

Bug: chromium:407791454
Change-Id: I1c283d4e7ba4c527570b845bf96b8b88f96cf6cb
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/6443735
Reviewed-by: Mark Mentovai <[email protected]>
Bug: 407791454
Change-Id: I614d31a0d889f99d4c66ebd8240aeaeb3c929def
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/6508090
Reviewed-by: Mark Mentovai <[email protected]>
… when dumping

This helps enable uploading all symbols for an architecture together
for resumability, and lets us record what has been uploaded at better
granularity.

Bug: 407791454
Change-Id: I3720409405af6a92ba161269da4926cf5fc82d0c
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/6532576
Reviewed-by: Mark Mentovai <[email protected]>
`-Wnontrivial-memcall` warning is raised: passing non-trivially-copyable
destination parameter to `memset`.

It's safe to suppress the warning with `static_cast<void*>(&msg_)`
because `ProtocolMessage msg_` is POD with disabled copy ctor and
`operator=`.

Change-Id: Iec53a946e1fc5570bf77f792222a4958b20900f0
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/6508032
Reviewed-by: Lei Zhang <[email protected]>
Reviewed-by: Mike Frysinger <[email protected]>
Replaced all alignments like `size + (alignment - 1) & (~alignment + 1)`
and `size + (alignment - 1) & -alignment` with the function call, except
one in common/windows/pe_util.cc, that can't include
common/memory_allocator.h.

Fixed a bug in computing aligned file name size in `AugmentMappings()`
in tools/linux/md2core/minidump-2-core.cc: it was
`(filename.size() + 8) & ~7`, shall be `(filename.size() + 7) & ~7`.

Change-Id: Id3dbdc71193c1215de67e59915e0067c2637e076
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/6333238
Reviewed-by: Lei Zhang <[email protected]>
Reviewed-by: Mike Frysinger <[email protected]>
This is to fix build error when we set use_libcxx_modules=true in
chromium build for ChromeOS.

Bug: 40263312
Change-Id: I9ec8cf3d0de3b1099100a8d524c939d58586ad34
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/6629550
Reviewed-by: Lei Zhang <[email protected]>
With C++ modules enabled (`-fmodules`), including a system header like
<stdint.h> from within a namespace is not permitted. This was causing a
build failure in the `:stackwalk_common` target:

  fatal error: import of module '_Builtin_stdint' appears within
  namespace 'libdis'

The code in `disassembler_x86.h` was wrapping the `libdisasm`
third-party library, including its headers, inside a `libdis` namespace.

This change removes the `libdis` namespace wrapper, resolving the build
failure. This allows C++ modules to be re-enabled for the breakpad
target, contributing to the broader effort to use modules for system
headers.

Bug: 424364315
Change-Id: I9e5bfe29f63b6e1659c7912a15a3eaa376b865d2
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/6636461
Reviewed-by: Primiano Tucci <[email protected]>
@JoshuaMoelans JoshuaMoelans force-pushed the chore/update_2025_06_13 branch from 80cd6f5 to 62abdcf Compare June 16, 2025 08:00
Copy link
Collaborator

@supervacuus supervacuus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 but only merge after the parent tests were successful.

@JoshuaMoelans JoshuaMoelans merged commit 7fbf890 into handler Jun 16, 2025
2 checks passed
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.