• R/O
  • HTTP
  • SSH

thirdparty-breakpad: Listed des commits

Breakpad, a crash reporter, from Google.

Original home: https://chromium.googlesource.com/breakpad/breakpad/

Révision l'heure Auteur
e1b3620 2017-03-25 01:22:21 Mike Frysinger

minidump_dump: dump stack memory like hexdump

The current stack output is one line byte string which is not easy for
humans to parse. Extend the print mode to support a hexdump-like view
and switch to that by default. Now we get something like:
00000000 20 67 7b 53 94 7f 00 00 01 00 00 00 00 00 00 00 | g{S...........|
00000010 00 70 c4 44 9a 25 00 00 08 65 7a 53 94 7f 00 00 |.p.D.%...ezS...|


Change-Id: I868e1cf4faa435a14c5f1c35f94a5db4a49b6a6d
Reviewed-on: https://chromium-review.googlesource.com/404008
Reviewed-by: Mark Mentovai <mark@chromium.org>

117aa25 2017-03-25 01:21:48 Mike Frysinger

minidump_dump: add proper cli processing

In preparation for adding more flexibility to this tool, add a
proper parser for the command line flags. This uses the style
as seen in other breakpad tools.


Change-Id: I95495e6ca7093be34d0d426f98a6c22880ff24a3
Reviewed-on: https://chromium-review.googlesource.com/457019
Reviewed-by: Mark Mentovai <mark@chromium.org>

b37547b 2017-03-25 01:13:31 Tobias Sargeant

add -Wunused-local-typedefs to the set of warning flags

This helps catch issues when rolling in Chromium.

Change-Id: I2e3f33df4a69b501d8c04799ee0ac03a4bed9ac9
Reviewed-on: https://chromium-review.googlesource.com/459477
Reviewed-by: Mike Frysinger <vapier@chromium.org>

eb6c296 2017-03-24 23:02:02 Gordana Cmiljanovic

Remove unused typedef

This removes unused typedef left in change:
and fixes error:
dump_symbols.cc:613:35: error: unused typedef 'Word' [-Werror,-Wunused-local-typedef]

Change-Id: Ib5a82cd8af9a58ebf173b0f338fa9ad341819ef3
Reviewed-on: https://chromium-review.googlesource.com/459518
Reviewed-by: Mark Mentovai <mark@chromium.org>

0b7c2ea 2017-03-24 21:05:43 Tobias Sargeant

Fix ASSERT_EQUAL that should have been ASSERT_EQ.


Change-Id: I5623705edc41644495aa4f2389056d255e22da8e
Reviewed-on: https://chromium-review.googlesource.com/459617
Reviewed-by: Primiano Tucci <primiano@chromium.org>

9748392 2017-03-24 00:16:01 Tobias Sargeant

Don't generate minidump if crash thread doesn't ref principal mapping.

If the crashing thread doesn't reference the principal mapping we can
assume that not only is that thread uninteresting from a debugging
perspective, the whole crash is uninteresting. In that case we should
not generate a minidump at all.


Change-Id: Ia25bbb8adb79d04dcaf3992c3d2474f3b9b1f796
Reviewed-on: https://chromium-review.googlesource.com/457338
Reviewed-by: Robert Sesek <rsesek@chromium.org>

6cfdde4 2017-03-23 08:23:25 Joshua Peraza

Sanity check frame pointer while stackwalking


Change-Id: Ib9b0fd5ba7f829f8be8cf856ab371c6540279ee5
Reviewed-on: https://chromium-review.googlesource.com/458526
Reviewed-by: Ivan Penkov <ivanpe@chromium.org>

124035f 2017-03-23 08:22:40 Joshua Peraza

Use string instead of std::string


Change-Id: I06d1a836f8ff59a6abb7e420cd35fe52610ce091
Reviewed-on: https://chromium-review.googlesource.com/457872
Reviewed-by: Ivan Penkov <ivanpe@chromium.org>

77411db 2017-03-22 21:47:06 Gordana Cmiljanovic

[MIPS] Get (ptrace) value of $pc for a thread

This change is fixing LinuxPtraceDumperTest.SanitizeStackCopy
test case.

Change-Id: I1eb3becfd4b3660bc5529b5d2a5e35db0b6eb6e0
Reviewed-on: https://chromium-review.googlesource.com/458277
Reviewed-by: Mark Mentovai <mark@chromium.org>

0a57d7a 2017-03-18 12:04:26 Mike Frysinger

dump_context: arm: name the registers in the dump output

The current ARM minidump_dump output makes people remember or look up
how registers are mapped in the ISA. Let's use human friendly names
instead so they don't have to.

Currently it looks like:
context_flags = 0x40000006
iregs[ 0] = 0x3c48b000
iregs[ 1] = 0x3
iregs[ 2] = 0x20
iregs[ 3] = 0x0
iregs[ 4] = 0x1c
iregs[ 5] = 0x3c48b000
iregs[ 6] = 0x20
iregs[ 7] = 0x3c48b04c
iregs[ 8] = 0x39100611
iregs[ 9] = 0x1c
iregs[10] = 0x0
iregs[11] = 0xbe61c200
iregs[12] = 0xfb9c1fec
iregs[13] = 0xbe61bd28
iregs[14] = 0x39e19b1c
iregs[15] = 0x357dd74c
cpsr = 0x680b0010
float_save.fpscr = 0x0

Now it looks like:
context_flags = 0x40000006
r0 = 0x3c48b000
r1 = 0x3
r2 = 0x20
r3 = 0x0
r4 = 0x1c
r5 = 0x3c48b000
r6 = 0x20
r7 = 0x3c48b04c
r8 = 0x39100611
r9 = 0x1c
r10 = 0x0
r11 = 0xbe61c200
r12 = 0xfb9c1fec
sp = 0xbe61bd28
lr = 0x39e19b1c
pc = 0x357dd74c
cpsr = 0x680b0010
float_save.fpscr = 0x0


Change-Id: I46d87c4ff7303a7efcd60da1d0b67ae7a5465c8f
Reviewed-on: https://chromium-review.googlesource.com/457197
Reviewed-by: Ivan Penkov <ivanpe@chromium.org>

0c3b559 2017-03-18 04:15:06 Jon Turney

Fix sporadic failure of InstructionPointerMemory test on Windows

If another memory region of interest (e.g. a thread stack) randomly happens
to lie immediately before the page allocated by this test, the memory
regions can be coalesced in the minidump generated. Relax this test so it
correctly handles the case where the expected 256 bytes around the IP aren't
at the start of the minidump memory region.

Alternatively, that could be avoided by reserving the page before the page
used for this test, in which case this test is degenerate with
InstructionPointerMemoryMinBound and can be removed.


Change-Id: Ib1bfb242b2c0acaa090df68334a02ac434ad880c
Reviewed-on: https://chromium-review.googlesource.com/456702
Reviewed-by: Mike Frysinger <vapier@chromium.org>

4bb0cd4 2017-03-18 02:49:55 Jon Turney

Fix issues with Windows dump_syms_unittest

* Turn DumpSymsRegressionTest into a parameterized test so it's easier to
see which test file is failing

* Convert dump_syms_regtest.sym to DOS line endings, being careful to
preserve the required spaces at the end of 'STACK WIN' lines

* In test #4 (omap_reorder_bbs), since the .exe corresponding to the .pdb is
not present, no INFO line is generated in the .sym file. Update .sym file.

* Stop collecting stderr from dump_syms. Future work: perhaps it's worth
collecting stderr to compare with a different file to verify that "Couldn't
locate EXE or DLL file" is output when expected?

* Regenerate testdata for test #5 (dump_syms_regtest64), which currently
does not pass, seemingly due a mis-match in the PDB age between the .pdb
file and the .sym file. Also add the .exe corresponding to the .pdb
present, to provide CFI


Change-Id: I54fab866437c9e1bad3a5534cef4fe4b6ae47cd2
Reviewed-on: https://chromium-review.googlesource.com/453178
Reviewed-by: Mike Frysinger <vapier@chromium.org>

796a6c9 2017-03-17 00:59:05 Dragan Mladjenovic

[MIPS]: Don't terminate stackwalk when $sp value doesn't change between frames

Currently on MIPS we accidentally terminate stackwalk if $sp value doesn't change between frames
which results in incomplete callchain terminated at the point of first tailcall encountered.

Change-Id: I8f1ed1df958d8f0a9eb11fd7800062184d8f1ee2
Reviewed-on: https://chromium-review.googlesource.com/449755
Reviewed-by: Mark Mentovai <mark@chromium.org>

7ec3caf 2017-03-12 05:58:29 Jon Turney

Fix Windows client ExceptionHandlerTest tests

ExceptionHandlerTest.InvalidParameterMiniDumpTest and
ExceptionHandlerTest.PureVirtualCallMiniDumpTest both also exercise a
feature that if the MiniDumpWithFullMemory MINIDUMP_TYPE is used, both
UUID.dmp and UUID-full.dmp files are written.

This is currently broken, and requesting a minidump with
MiniDumpWithFullMemory MINIDUMP_TYPE fails, as the file handle for the full
dump is not set.

Call GenerateFullDumpFile() if MiniDumpWithFullMemory is requested, to
generate a filename for the full dump file and set the file handle.

Currently GenerateFullDumpFile() also generates another UUID for the full
dump filename, so also make the private method
MinidumpGenerator::GenerateDumpFilePath() idempotent (so the same UUID is

(Note that calling Generate(|Full)DumpFile() more than once is not
permitted, so there's no behaviour where this changed the UUID to preserve)


Change-Id: I74304f38b398f53da1c24f368dedfba8463da9e5
Reviewed-on: https://chromium-review.googlesource.com/452978
Reviewed-by: Mike Frysinger <vapier@chromium.org>

dac2223 2017-03-11 03:30:14 Roman Margold

iOS client identifies itself via URL params

For iOS apps, product and version information is
now automatically provided as part of the crash
report upload URL to allow for early rejections.

Change-Id: Ia19c490c38023f9e23ec8a537f7a203ff1e642d7
Reviewed-on: https://chromium-review.googlesource.com/436164
Reviewed-by: Roman Margold <rmargold@chromium.org>
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

a784e84 2017-03-10 01:11:07 George Kola

Use NSURLSession if the min version we support is iOS 7+.

Because many apps still support iOS 8, they were defaulting to
deprecated NSURLConnection even if the code ran on iOS 10.
NSURLConnection requires a run loop and hence the code did not
always upload if the queue ran on a thread without a Run Loop.
This should improve break pad uploads


Change-Id: I7bff80ea977fd1ab13c8812ed933ef842dab417f
Reviewed-on: https://chromium-review.googlesource.com/451880
Reviewed-by: Sylvain Defresne <sdefresne@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>

5dbd93a 2017-03-09 06:31:16 Joshua Peraza

Fix segfault when interpreting bad debug_file


Change-Id: Ia4da0bd9787c232a6a199cfdfccfbed60c2515c2
Reviewed-on: https://chromium-review.googlesource.com/450090
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

32a9e03 2017-03-08 01:09:40 Dragan Mladjenovic

[MIPS]: Relax dwarf section loading to accept both PROGBITS and MIPS_DWARF section types

Change-Id: I0862d930d92687dee47daa8d4dc3a21524c1c893
Reviewed-on: https://chromium-review.googlesource.com/447697
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

d61d49b 2017-03-02 22:32:02 Maciej Pawlowski

Fix dump_syms clang compilation on Windows

Clang complains about bad format strings (DWORD is an unsigned long, not
unsigned int) and signed/unsigned comparison.
This change is necessary for https://codereview.chromium.org/2712423002/


Change-Id: I58da92d43d90ac535c165fca346ee6866dfce22e
Reviewed-on: https://chromium-review.googlesource.com/448037
Reviewed-by: Mark Mentovai <mark@chromium.org>

8349b97 2017-03-02 06:40:42 Mike Frysinger

roll lss deps

We want the updated ARMv8/IT fix in the clone code path that newer
versions of clang warn about.

Change-Id: Ibd2d301d94cd09affc4225d013547ee1e24fac82
Reviewed-on: https://chromium-review.googlesource.com/448001
Reviewed-by: Mark Seaborn <mseaborn@chromium.org>

88e5b2c 2017-03-01 04:27:24 Scott Graham

win: Set LargeAddressAware on symupload

This was set manually on Chrome's built binary before
https://codereview.chromium.org/2173533002 but wasn't added to the build

After this change:

c:\src\breakpad\src\src>dumpbin /headers tools\windows\symupload\Release\symupload.exe | grep large
Application can handle large (>2GB) addresses

This change only affects x86 builds.


Change-Id: I8f1bd5535af242edde51e70c60cf33b6170855ea
Reviewed-on: https://chromium-review.googlesource.com/447780
Reviewed-by: Mark Mentovai <mark@chromium.org>

ccf03c1 2017-02-25 04:59:03 Tobias Sargeant

Improve stack sanitization unittests.

Rather than relying on the process stack having all the things that
should/shouldn't be sanitized, create synthetic stacks to test all of
the important cases.


Change-Id: I959266390e94d6fb83ca8ef11ac19fac89e68c31
Reviewed-on: https://chromium-review.googlesource.com/446108
Reviewed-by: Robert Sesek <rsesek@chromium.org>

19af23e 2017-02-24 03:28:02 Scott Graham

Handle ntdll only emitting PUBLIC at func entry

This handles a case encountered in ntdll.dll symbols for Windows 7,
where a PUBLIC would be emitted only for the entry point to the
function. The body of the function, however, is split in a PGO-ish
fashion to another remote location in the binary. Because of this, there
were large gaps in the RVA space that would be attributed to the "last"
function that happened to have an entry point before the gap. In
practice, something like this:

0x100 Func1
0x110 Func2
0x120 Func3
0x130 Func4
0x800 LaterFuncs

The bodies of Func1/2/3 tend to be implemented as a fast-path check,
followed by a jmp to somewhere in the range between 0x130 and 0x800.
Because no symbols are emitted for this range, everything is attributed
to Func4, causing crash misattribution.

In this CL, the change is: after emitting the entry point symbol, also
walk in the original OMAP entries through the untranslated binary, and
for each block until we resolve to a new symbol (via the same mechanism
as we found the entry point) emit another PUBLIC indicating that there's
another block that belongs to that symbol. This effectively breaks up
the "0x130 - 0x800" range above.


Change-Id: Ib3741abab2e7158c81e3e34bca4340ce4d3153a1
Reviewed-on: https://chromium-review.googlesource.com/446717
Reviewed-by: Mark Mentovai <mark@chromium.org>

4a7e088 2017-02-24 02:47:47 Tobias Sargeant

Make stack sanitization elide pointers to non-executable mappings.

The address space of every Android Java process is approximately 50%
mapped, which means that sanitization tends to be ineffective because
most string fragments are plausibly pointers into some mapping.

For example, the zygote on 32 bit devices has the following mappings
made by dalvik and this covers all 4 byte strings starting with a
character between 0x13 and 0x52 (which includes all uppercase characters
up to and including 'R').


In order to perform stack unwinding we only need pointers into the stack
of the thread in question, and pointers to executable mappings. If we
reduce the set of considered mappings to those mappings alone, then only
~2% of the address space is left unelided.


Change-Id: I1cc27821659acfb91d658f42a83a24c176505a88
Reviewed-on: https://chromium-review.googlesource.com/446500
Reviewed-by: Robert Sesek <rsesek@chromium.org>

4af8174 2017-02-24 02:47:07 Tobias Sargeant

Use the correct PC when determining whether to skip storing a stack.

This addresses a bug in commit 049a1532 that meant that the PC of the
crashing thread was always used to determine whether to include a stack,
instead of using the PC of the thread in question.


Change-Id: Idcbd5db751e5c00941a1be28607389961c0c75d7
Reviewed-on: https://chromium-review.googlesource.com/446499
Reviewed-by: Robert Sesek <rsesek@chromium.org>

4e82b6f 2017-02-21 03:03:14 Mike Frysinger

minidump: mark Read as override in derived classes

The base class here declares Read as virtual, so make sure it's
marked as override in the derived classes. This fixes some build
errors with clang.

src/google_breakpad/processor/minidump.h:853:8: error:
'Read' overrides a member function but is not marked 'override'
bool Read(uint32_t expected_size_);
src/google_breakpad/processor/minidump.h:153:16: note:
overridden virtual function is here
virtual bool Read(uint32_t expected_size) = 0;

Change-Id: Ie4e5fec097b7f37739433a9deb39e7ed60471461
Reviewed-on: https://chromium-review.googlesource.com/444385
Reviewed-by: Tobias Sargeant <tobiasjs@chromium.org>

644e715 2017-02-18 01:53:16 Mike Frysinger

travis: add a clang build

We rework the matrix a bit to avoid the implicit explosion of
duplicated results.

Change-Id: I9a2d91b3a6a55bf2843e0e90d59fe5710bd639c7
Reviewed-on: https://chromium-review.googlesource.com/444544
Reviewed-by: Ted Mielczarek <ted@mielczarek.org>

fd28a5b 2017-02-17 12:18:05 Tobias Sargeant

Fix compile errors arising from compiling breakpad with clang.

These compile errors occur when building the check target with:
CXXFLAGS="-Werror -Wconstant-conversion -g -O2 -std=c++11"

src/processor/stackwalker_mips.cc:60:9: error: comparison of constant
18446744073709551615 with expression of type 'bool' is always false
> 0xffffffffffffffff) {
^ ~~~~~~~~~~~~~~~~~~
src/processor/stackwalker_mips.cc:68:66: error: comparison of constant
4294967295 with expression of type 'bool' is always false
if ((memory_ && memory_->GetBase() + memory_->GetSize() - 1) > 0xffffffff) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~

Change-Id: I29eed8f4a67b9feeb274aa1fc6c79a019135e8d6
Reviewed-on: https://chromium-review.googlesource.com/438445
Reviewed-by: Mike Frysinger <vapier@chromium.org>

6cc0375 2017-02-17 07:48:56 Mike Frysinger

autotools: move -W flags to configure detection

This lets us use the flags with clang, and to add more flags easily.

Change-Id: I51bb53ffd5ab6da769cdfb422a2c88442f1ff9ad
Reviewed-on: https://chromium-review.googlesource.com/441864
Reviewed-by: Ivan Penkov <ivanpe@chromium.org>

8ba5949 2017-02-14 20:07:42 Mike Frysinger

libdisasm: add upstream/license details

The license file comes from the upstream libdisasm tarball/repo.

Change-Id: I04a4002db72f778dd67dbcd71d3b5d1205a8c21d
Reviewed-on: https://chromium-review.googlesource.com/441884
Reviewed-by: Ted Mielczarek <ted@mielczarek.org>

Afficher sur ancien navigateur de dépôt.