Commit graph

2147 commits

Author SHA1 Message Date
Zequan Wu ff5892c5da 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>
2021-09-30 22:10:13 +00:00
Zequan Wu d4bf038be7 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>
2021-09-24 22:48:11 +00:00
Zequan Wu 1816ae7f35 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>
2021-09-24 20:39:31 +00:00
Zequan Wu 1147c2fcf0 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>
2021-09-17 17:18:26 +00:00
Zequan Wu 30020c0d47 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>
2021-09-16 22:52:27 +00:00
Zyan Wu 94c4208821 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>
2021-09-09 00:15:11 +00:00
Brian Sheedy 1e093103ca 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>
2021-09-07 20:52:52 +00:00
Lei Zhang 4722484bf6 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>
2021-09-03 13:36:45 +00:00
Zequan Wu e87bb1b3b4 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>
2021-08-31 21:59:32 +00:00
Lei Zhang 5645ad8275 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>
2021-08-27 17:56:58 +00:00
Zequan Wu 7933ec0a69 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>
2021-08-23 17:16:47 +00:00
Zequan Wu 4959def222 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>
2021-08-19 18:59:48 +00:00
Mark Mentovai 524a6249f0 mac dump_syms: fix -d option
This is a follow-up to 3c70e0145e 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>
2021-08-18 18:08:29 +00:00
Joshua Peraza 3c70e0145e 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>
2021-08-16 19:05:42 +00:00
Joshua Peraza bc7ddae234 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>
2021-08-09 23:24:12 +00:00
Zequan Wu 4f5b814790 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>
2021-08-03 22:05:47 +00:00
Peter Kasting 0d9416d3bf 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>
2021-07-29 15:56:57 +00:00
Peter Kasting 4c27c15b84 Fix an instance of -Wunused-but-set-variable.
Bug: chromium:1203071
Change-Id: I749fcfe30f9d634acb314a43f9c9ffcdbb26195c
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3053832
Reviewed-by: Sterling Augustine <saugustine@google.com>
2021-07-26 16:01:35 +00:00
Zequan Wu f080350795 Add support to process INLINE records in symbol files
This adds the support to process INLINE and INLINE_ORIGIN records in
symbol files and to generate inlined frames using those records if
possible.

Bug: 1190878
Change-Id: Ia0b6d56c9de37cf818d9bb6842d58c9b68f235b2
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3024690
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
2021-07-22 19:09:50 +00:00
Peter Kasting 32096a2dc8 Fix more instances of -Wunreachable-code-aggressive.
Bug: chromium:1066980
Change-Id: Id4bc2b08180963bc6ef61df6548341c8198d4c5e
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3036985
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
2021-07-19 15:52:17 +00:00
Joshua Peraza 415b54ab8c Account for string offsets table header size
Section 7.26 of the DWARF 5 spec describes a header of
either 8 or 16 bytes before the offsets begin.

Bug: b/187205051
Change-Id: I1ba01008dcd7a533f59d3865762ca09b9d43032b
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3016609
Reviewed-by: Sterling Augustine <saugustine@google.com>
2021-07-08 23:22:17 +00:00
Zequan Wu 68735f74e7 NFC: use enum SymbolData as flags
To make it easier to add flags when adding new options in SymbolData.

Example:
I want to add a flag to disable inline record for https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2915828.
Change-Id: Ifc5da27c01efa0b0bc21cfcf769d4e6d604a63c6
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2984198
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
2021-07-07 18:29:13 +00:00
Peter Kasting 04a9ffbe59 Fix -Wunreachable-code-aggressive.
Bug: chromium:1066980
Change-Id: Iddd276bb884076591399433c6191425b3a131d0d
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2995406
Reviewed-by: Mike Frysinger <vapier@chromium.org>
2021-07-02 01:25:51 +00:00
Peter Kasting b95c4868b1 Fix a -Wdeprecated-copy warning.
Bug: chromium:1221591
Change-Id: I52968a535f126b854f8e860b9632ffe00c55b6be
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2973213
Reviewed-by: Lei Zhang <thestig@chromium.org>
2021-06-18 17:48:13 +00:00
Darren Mo 7ba29f4a36 Mitigate upload failure when app is backgrounded.
iOS closes an app’s network connections when the app is backgrounded. This can cause an in-progress upload request to fail. We can mitigate this by requesting additional background execution time using the `UIApplication` background task APIs.

BUG=b:130302235

Change-Id: Ifd8e14ca82c736ad7dd60dcdd0d4bbcabb76f5ad
Signed-off-by: Darren Mo <darrenmo@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2251020
Reviewed-by: Mark Mentovai <mark@chromium.org>
2021-06-16 22:10:20 +00:00
Zequan Wu dbbdf05740 Load .symtab and .strtab sections before .debug_info to deduplicate
PUBLIC records.

For chrome, the symbol file size dropped from 661 MB to 577 MB.
The number of PUBLIC records dropped from 559416 to 91930.

Change-Id: I7f703d619f2acc7c83f002e6f588f6a6569e5c87
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2916731
Reviewed-by: Lei Zhang <thestig@chromium.org>
2021-06-11 23:07:32 +00:00
Zequan Wu a524a1e24b Fix dangling pointer in forward_ref_die_to_func
Bug: google-breakpad:843
Change-Id: I14358b239604e1faeb5a8c4c4734102571dbed09
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2951787
Reviewed-by: Mike Frysinger <vapier@chromium.org>
2021-06-11 17:25:51 +00:00
Mike Frysinger 322eb2b4c6 Roll src/src/third_party/lss/ fd00dbbd0..e1e7b0ad8 (11 commits)
https://chromium.googlesource.com/linux-syscall-support/+log/fd00dbbd0c06..e1e7b0ad8ee9

$ git log fd00dbbd0..e1e7b0ad8 --date=short --no-merges --format='%ad %ae %s'
2021-04-12 safinaskar fix incorrect closing parenthesis
2021-04-01 mpdenton Add support for lstat
2021-03-20 mcgrathr Add separate LICENSE file
2021-02-05 vapier add OWNERS & DIR_METADATA
2021-01-27 tomskside Add support for Elbrus 2000 (e2k)
2020-11-24 xwafish [MIPS64] Fix '__NT_getrandom' definition
2020-11-11 vapier README: update Chromium DEPS link
2020-08-12 palmer Add support for `getrandom`.
2020-05-21 palmer Revert "Add support for `getrandom`."
2020-05-20 palmer Add support for `getrandom`.
2020-04-15 jperaza Don't clobber esp

Created with:
  roll-dep src/src/third_party/lss

Change-Id: Ifd62b0d44545fd3142de6a6d1f2cc8ed1424f802
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2945148
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
2021-06-07 16:02:39 +00:00
Mike Frysinger e21ebdacfa refresh minidump test output
When I extended the output for these fields, I missed updating the
test baselines.

Change-Id: Ic793dbc9f42771e6fafff343ee2563bb37272c3f
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2945147
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
2021-06-07 16:00:01 +00:00
Mike Frysinger c4b0806f48 add OWNERS settings
Since the entire Chromium GoB host is moving to enforce owners, make
sure we have settings in place ahead of time.

Change-Id: Ia8a52ff587a0b8f11f2b56caf9e283d05e2a822c
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2920608
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: Sterling Augustine <saugustine@google.com>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2021-06-03 16:26:13 +00:00
Tyrel Russell 472541827e Fix Clang Tidy error and fix ambiguous use of Endianess
Bug: b/189249305
Change-Id: I2b2e891dae5d632d965869c916c386cf3cd3c678
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2920513
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
2021-05-26 20:14:52 +00:00
Tyrel Russell a83110d6ba Remove last remaining use of dwarf2reader.
Bug: b/189249305
Change-Id: Id417a853928d7b17dc14dfc175c4dd236882f874
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2920512
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
2021-05-26 19:22:38 +00:00
Tyrel Russell 0622f68827 Move the dwarf2reader objects into google_breakpad namespace to make it consistent with cfi_assembler.cc
Bug: b/189249305
Change-Id: I3433ff5c41d2f66ab292fbecb969f2cd08d24b29
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2920506
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
2021-05-26 17:46:49 +00:00
Chingjun Lau f7428bc397 Fix macos_dump_syms when __eh_frame is included in the dSYM file.
macho_reader assumes that every section in a segment exists, or none of the
sections exist in the file (for dSYM files).

https://reviews.llvm.org/D94460?id=315965 added __eh_frame section to the
__TEXT segments in dSYM files. All the other sections are removed, but still
have non-zero size in the header. macho_reader only looks at `fileoff` and
`filesize` fields to determine the size of the segment, but it looks at `addr`
and `size` to determine the size of the section, therefore it determines that
the sections would not fit in the segment and refused to parse the file.

In this case the removed sections all have offset == 0. Ignore such cases.

Change-Id: Ife771f7b302c1bc81c673b1103492c41321b5e3e
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2911204
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
2021-05-21 18:56:41 +00:00
Joshua Peraza b7ce678aec fix includes and remove tr1::unordered_map
_LIBCPP_VERSION doesn't reliably detect c++11.

Change-Id: I1adb4303269885e4a08648f049e14b244a2fde50
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2911693
Reviewed-by: Nelson Billing <nbilling@google.com>
2021-05-20 22:47:28 +00:00
Joshua Peraza 0e86eebc5a mac: fix xcode project
Change-Id: Ia8d1a6a7249cdadfd6790da34194376b3f6dbd51
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2466325
Reviewed-by: Ivan Penkov <ivanpe@chromium.org>
2021-05-19 21:03:25 +00:00
Zequan Wu 275e6d46a4 Make forward reference DIEs cross compilation units.
Before this change, forward_ref_die_to_func is always empty.
Because forward reference DIEs could cross compilation units,
forward_ref_die_to_func is moved into FilePrivate.
By using "grep "name omitted" sym | wc -l", the number of functions
with no name is reduced from 26951 to 203 if forward reference only is
allowed within CU. It's reduced from 203 to 6 if crossing compilation
units is allowed.

Change-Id: Ie2a457abfc0c4d8e68fe0fa595a27ea4abf33a76
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2904093
Reviewed-by: Mike Frysinger <vapier@chromium.org>
2021-05-18 22:17:51 +00:00
Zequan Wu 6842fa5aa8 Set addr_base_ before parsing attributes.
If there is an address index reference to .debug_addr section before
DW_AT_addr_base, addr_base_ will be 0. It will retrieve wrong address.
An example could be DW_AT_loc_pc occurs before DW_AT_addr_base.

Change-Id: Id2b337f5235470cc9beaf05a62efebbde797dacf
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2900806
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
2021-05-17 23:03:02 +00:00
Zequan Wu 13ba5a1549 Fix parsing .debug_rnglists section
Change-Id: I1bab1517c04684b8251984498eb0d43e1505fd30
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2888265
Reviewed-by: Sterling Augustine <saugustine@google.com>
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
2021-05-13 21:05:04 +00:00
Kristofer Spinka 5c4b5d89e4 Support building with C++20
std::allocator<T>::pointer and related are removed in C++20, so moving to
std::allocator_traits which is available since C++11.
Change-Id: Ie67b5c24b27e59edf5595a3575f2794748c3817f
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2894004
Reviewed-by: Mike Frysinger <vapier@chromium.org>
2021-05-13 15:08:00 +00:00
Lei Zhang c484031f1f Consistently call BaseName() in various Usage() functions.
Make various tools print just their names as part of the usage
instructions, rather than the full path. Also fix a missing space in the
dump_syms usage output.

Change-Id: I2b796678cd47e7dbabcc03df2b57cdc3420c008c
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2787678
Reviewed-by: Mike Frysinger <vapier@chromium.org>
2021-04-07 20:37:52 +00:00
Michael Bai 3bea2815bf Add option to dump crash thread only
Add minidump_stackwalk option to dump the crash thread only

Bug: 1129202

Change-Id: I1370b4dc972f76ba1d57fca083da7d486774e65a
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2762072
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
2021-04-01 17:42:21 +00:00
Brian Sheedy dff7d5afd5 Revert "arm: Allow the first function to use linked register as return pc"
This reverts commit f2b3ab5e0a.

Reason for revert: Causes symbolization errors on ARM ChromeOS
devices crbug.com/1182948.

Original change's description:
> arm: Allow the first function to use linked register as return pc
>
> For a crash at the function entry with corrupted PC, the caller's PC
> could be lying in the link register. Using the PC from link register
> would be more effective than blindly scanning the stack immediately.
>
> Change-Id: I51673b7298e70faeeab2bfa97075e3c4793f94bc
> Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2678992
> Reviewed-by: Mike Frysinger <vapier@chromium.org>
> Reviewed-by: Joshua Peraza <jperaza@chromium.org>

Bug: 1182948
Change-Id: I2818b35ab1fb99012919cccc0fb80368e456ca15
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2765164
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
2021-03-16 18:00:35 +00:00
Mike Frysinger 8b22babdf8 minidump-2-core: check platform_id for Linux
We have an enum for the OS, so check that instead.

Change-Id: I4bb38145553e3f5a2aa9baab330d588fef09a07e
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2757679
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
2021-03-13 00:16:24 +00:00
Mike Frysinger 344b0ebf57 minidump_dump: decode cpu & os fields
We already have helper functions for this, so use them.

Change-Id: I6f77c9e138c461837cfb93adafce639ed8b836bb
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2753492
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
2021-03-12 03:10:37 +00:00
Hans Wennborg d6a6f52606 Strip LLVM-generated symbol suffixes when demangling Windows symbols
LLVM, especially in ThinLTO builds, sometimes puts a suffix on symbols
to give them a unique name. For example:

   ?foo@@YAXXZ$5520c83448162c04f2b239db4b5a2c61
   ?foo@@YAXXZ.llvm.1304071520971994875

Strip such suffixes in order to demangle the names.

Bug: chromium:1179132
Change-Id: Ibc8da0c605b95c6b9fc51802a56b89f6e7cfb7e1
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2739612
Reviewed-by: Mark Mentovai <mark@chromium.org>
Reviewed-by: Ivan Penkov <ivanpe@chromium.org>
2021-03-08 20:26:34 +00:00
Justin Cohen 7279404aea Correct native symbol upload and UUID.
The auto-detection of the UUID was missing the extra "0" added for
compatibility reasons.  The native upload also was sending malformed
HTTP.

Change-Id: I8c261fc525f0f0086f269f2dee02941dd55488cb
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2739320
Reviewed-by: Nelson Billing <nbilling@google.com>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2021-03-08 17:38:32 +00:00
Justin Cohen 46f4b593ee Automatically capture debugID in Mac OS symupload tool.
There's no need to pass in debug ID to symupload for native symbol
uploads, as breakpad can extra the ID itself for dsym and macho types.

Change-Id: Ib0b7703eac85bc84fe1f095e678d75b347bd872a
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2724731
Reviewed-by: Nelson Billing <nbilling@google.com>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2021-03-02 19:22:16 +00:00
Mike Frysinger 778bd12f22 switch repo manifest to track the main branch
Change-Id: Ibb74f3c06e821ba386dd286e730fce4f9344ac75
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2718528
Reviewed-by: Ian Barkley-Yeung <iby@chromium.org>
2021-02-25 01:23:04 +00:00
Mike Frysinger fe5025b7f1 restore gtest updates
The recent dwarf5 work in here incorrectly reverted the gtest macros.

Change-Id: I8eca7c1c85e26f5ad6ff461e4ef26d2859c08625
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2691092
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
2021-02-11 21:12:39 +00:00