lp:breakpad

Owned by Dmitry Ivanov
Get this repository:
git clone https://git.launchpad.net/breakpad

Import details

Import Status: Reviewed

This repository is an import of the Git repository at https://chromium.googlesource.com/breakpad/breakpad.

The next import is scheduled to run .

Last successful import was .

Import started on juju-98ee42-prod-launchpad-codeimport-1 and finished taking 40 seconds — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-5 and finished taking 50 seconds — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-4 and finished taking 1 minute — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-3 and finished taking 50 seconds — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-3 and finished taking 40 seconds — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-4 and finished taking 50 seconds — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-3 and finished taking 40 seconds — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-4 and finished taking 50 seconds — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-1 and finished taking 40 seconds — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-3 and finished taking 1 minute — see the log

Branches

Name Last Modified Last Commit
main 2024-06-18 23:55:44 UTC
Allows setting maximum number of threads to process.

Author: Ivan Penkov
Author Date: 2024-06-18 23:35:26 UTC

Allows setting maximum number of threads to process.

By default, there is no limit and all threads will be processed. If set to a positive integer (via set_max_thread_count), the minidump processor will stop once that limit is reached. The limit will be ignored if the crashing/requesting thread is above the specified limit.

The original thread count is stored in the ProcessState and can be
acessed via the original_thread_count() method.

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

chrome_99 2022-02-02 04:22:18 UTC
Fix corner cases on Windows dump_syms

Author: Zequan Wu
Author Date: 2022-01-29 00:49:10 UTC

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>

chrome_90 2021-03-16 13:05:10 UTC
Strip LLVM-generated symbol suffixes when demangling Windows symbols

Author: Hans Wennborg
Author Date: 2021-03-08 18:25:30 UTC

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>
(cherry picked from commit d6a6f52606529111b9f0ade9a0e0d9040fa97c1f)
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2763248

master 2020-11-24 08:18:56 UTC
pid2md: generate a minidump from a running process

Author: Ludovic Guegan
Author Date: 2020-11-24 07:48:27 UTC

pid2md: generate a minidump from a running process

On Linux, this tool generates a minidump for given process. It requires
the permission to trace the process and access its /proc directory. This
is useful when a defective behavior of a process does not lead to a
crash. For example, it can be used by a watchdog or if a process does
not correctly respond to a termination request.

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

chrome_64 2017-12-21 23:50:07 UTC
Fix minidump on ChromeOS

Author: Yunlian Jiang
Author Date: 2017-12-20 20:16:34 UTC

Fix minidump on ChromeOS

Chrome somehow changed the memory mapping with hugepage enabled.
This makes the hack in CrOSPostProcessMappings more general.

BUG=chromium:793452
TEST=with this patch on Chromium,
         minidump_dump *dmp shows the right information on chrome

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

chrome_58 2017-04-03 18:57:33 UTC
Fix ASSERT_EQUAL that should have been ASSERT_EQ.

Author: Tobias Sargeant
Author Date: 2017-03-24 11:55:11 UTC

Fix ASSERT_EQUAL that should have been ASSERT_EQ.

BUG=703599

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

chrome_55 2016-11-15 20:10:56 UTC
Basic handling of CIE version 4 in dwarf reading

Author: Scott Graham
Author Date: 2016-11-01 22:05:10 UTC

Basic handling of CIE version 4 in dwarf reading

CIE looks like it's been emitted by clang since ~May 2015 [1]. This
means that we didn't have any CFI because this parse aborted, which
meant that all stack walks reverted to stack scanning. Allow expected
values for address size and segment descriptor size through so that
dump_syms can generate at least somewhat reasonable data.

[1]: http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20150518/277292.html

R=mark@chromium.org
BUG=chromium:627529

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

chrome_53 2016-07-20 02:39:11 UTC
Recover memory mappings before writing dump on ChromeOS

Author: Ting-Yuan (Leo) Huang
Author Date: 2016-07-19 00:11:07 UTC

Recover memory mappings before writing dump on ChromeOS

On Linux, breakpad relies on /proc/[pid]/maps to associate symbols from
addresses. ChromeOS' hugepage implementation replaces some segments
with anonymous private pages, which is a restriction of current
implementation in Linux kernel at the time of writing. Thus, breakpad
can no longer symbolize addresses from those text segments replaced by
hugepages.

This patch tries to recover the mappings. Because hugepages are always
inserted in between some .text sections, it tries to infer the names and
offsets of the segments, by looking at segments immediately precede and
succeed them.

For example, a text segment before hugepage optimization
  02001000-03002000 r-xp /opt/google/chrome/chrome

can be broken into
  02001000-02200000 r-xp /opt/google/chrome/chrome
  02200000-03000000 r-xp
  03000000-03002000 r-xp /opt/google/chrome/chrome

BUG=crbug.com/628040
R=mark@chromium.org

Review URL: https://codereview.chromium.org/2161713002 .

Patch from Ting-Yuan (Leo) Huang <laszio@chromium.org>.

travis 2016-04-11 16:22:52 UTC
Add travis CI config

Author: Ted Mielczarek
Author Date: 2016-04-05 19:19:04 UTC

Add travis CI config

This will let us setup travis-ci on the Breakpad GitHub mirror.

master-large-syms 2016-02-27 00:40:40 UTC
Handle multiple microdumps in system log.

Author: Maria Mandlis
Author Date: 2016-02-27 00:40:40 UTC

Handle multiple microdumps in system log.

Properly handle microdump processing, when the system_log file contains an incomplete microdump section at the top. The processor will process the first complete microdump section.

R=primiano@chromium.org

Review URL: https://codereview.chromium.org/1742843002 .

chrome_49 2016-02-02 20:48:26 UTC
Remove use of deprecated CFURLCreateDataAndPropertiesFromResource function.

Author: Ivan Penkov
Author Date: 2016-02-01 02:17:42 UTC

Remove use of deprecated CFURLCreateDataAndPropertiesFromResource function.

Original change (https://codereview.chromium.org/1527363003/) was failing
in CFReadStreamGetBuffer() call, so changed to CFReadStreamRead() to be
more conservative.

Patch provided by Scott Hancher.

BUG=
R=mark@chromium.org

Review URL: https://codereview.chromium.org/1637433003 .

chrome_43 2015-05-19 08:01:12 UTC
Merge trunk r1454 to the chrome_43 branch.

Author: primiano@chromium.org
Author Date: 2015-05-19 08:01:12 UTC

Merge trunk r1454 to the chrome_43 branch.

> Fix signal propagation logic for Linux/Android exception handler.
>
> The current code is relying on info->si_pid to figure out whether
> the exception handler was triggered by a signal coming from the kernel
> (that will re-trigger until the cause that triggered the signal has
> been cleared) or from user-space e.g., kill -SIGNAL pid, which will NOT
> automatically re-trigger in the next signal handler in the chain.
> While the intentions are good (manually re-triggering user-space
> signals), the current implementation mistakenly looks at the si_pid
> field in siginfo_t, assuming that it is coming from the kernel if
> si_pid == 0.
> This is wrong. siginfo_t, in fact, is a union and si_pid is meaningful
> only for userspace signals. For signals originated by the kernel,
> instead, si_pid overlaps with si_addr (the faulting address).
> As a matter of facts, the current implementation is mistakenly
> re-triggering the signal using tgkill for most of the kernel-space
> signals (unless the fault address is exactly 0x0).
> This is not completelly correct for the case of SIGSEGV/SIGBUS. The
> next handler in the chain will stil see the signal, but the |siginfo|
> and the |context| arguments of the handler will be meaningless
> (retriggering a signal with tgkill doesn't preserve them).
> Therefore, if the next handler in the chain expects those arguments
> to be set, it will fail.
> Concretelly, this is causing problems to WebView. In some rare
> circumstances, the next handler in the chain is a user-space runtime
> which does SIGSEGV handling to implement speculative null pointer
> managed exceptions (see as an example
> http://www.mono-project.com/docs/advanced/runtime/docs/exception-handling/)
>
> The fix herein proposed consists in using the si_code (see SI_FROMUSER
> macros) to determine whether a signal is coming form the kernel
> (and therefore just re-establish the next signal handler) or from
> userspace (and use the tgkill logic).
>
> Repro case:
> This issue is visible in Chrome for Android with this simple repro case:
> - Add a non-null pointer dereference in the codebase:
> *((volatile int*)0xbeef) = 42
> Without this change: the next handler (the libc trap) prints:
> F/libc ( 595): Fatal signal 11 (SIGSEGV), code 1, fault addr 0x487
> where 0x487 is actually the PID of the process (which is wrong).
> With this change: the next handler prints:
> F/libc ( 595): Fatal signal 11 (SIGSEGV), code 1, fault addr 0xbeef
> which is the correct answer.
>
> BUG=chromium:481937
> R=mark@chromium.org
>
> Review URL: https://breakpad.appspot.com/6844002

BUG=chromium:481937

git-svn-id: http://google-breakpad.googlecode.com/svn/branches/chrome_43@1457 4c0a9323-5329-0410-9bdc-e9ce6186880e

chrome_42 2015-04-15 23:12:21 UTC
Merge 1447 "Fix call to rt_sigaction"

Author: cjhopman@chromium.org
Author Date: 2015-04-15 23:12:21 UTC

Merge 1447 "Fix call to rt_sigaction"

> Fix call to rt_sigaction
>
> Despite the fact that many places imply that sigaction and rt_sigaction
> are essentially the same, rt_sigaction's signature is actually
> different-- it takes the size of the kernel's sigset_t as an extra argument.
>
> BUG=473973
>

TBR=cjhopman@chromium.org

Review URL: https://breakpad.appspot.com/5784002

git-svn-id: http://google-breakpad.googlecode.com/svn/branches/chrome_42@1448 4c0a9323-5329-0410-9bdc-e9ce6186880e

chrome_38 2014-09-19 20:25:37 UTC
Merge r1375 from trunk for M38 release.

Author: andresantoso@chromium.org
Author Date: 2014-09-19 20:25:37 UTC

Merge r1375 from trunk for M38 release.

git-svn-id: http://google-breakpad.googlecode.com/svn/branches/chrome_38@1383 4c0a9323-5329-0410-9bdc-e9ce6186880e

chrome_37 2014-07-22 16:54:48 UTC
Cherry pick r1344 into chrome_37 branch

Author: rmcilroy@chromium.org
Author Date: 2014-07-22 16:54:48 UTC

Cherry pick r1344 into chrome_37 branch

Original commit message:
> Unhook current Breakpad object after handling uncaught NSException.
> After handling an uncaught NSException, release the Breakpad object
> so there will not be a second crash dump logged.
>
> Prior to this change, for every uncaught NSException handled through
> the Breakpad::UncaughtExceptionHandler(), a second crash without
> any useful information (generally __cxa_rethrow and std::__terminate)
> is recorded.
>
> R=qsr@chromium.org
>
> Review URL: https://breakpad.appspot.com/9664002
>
> Patch from Peter Lee <pkl@chromium.org>.

R=mark@chromium.org

Review URL: https://breakpad.appspot.com/1704002

git-svn-id: http://google-breakpad.googlecode.com/svn/branches/chrome_37@1357 4c0a9323-5329-0410-9bdc-e9ce6186880e

chrome_23 2012-10-12 22:24:30 UTC
Merge r1065: Don't bail if a thread's stack pointer is invalid

Author: thestig@chromium.org
Author Date: 2012-10-12 22:24:30 UTC

Merge r1065: Don't bail if a thread's stack pointer is invalid

Currently, if a thread's stack pointer is not within a valid memory page,
the minidump writing will fail with an error. This change allows an invalid
stack pointer by simply setting the memory size to zero in the minidump.
The processing code already checks for the size being zero, although it
currently just gives an error (see https://breakpad.appspot.com/413002/).

BUG=google-breakpad:499, chromium-os:34880
TEST=make check, manually ran minidump-2-core and core2md
Original Review URL: https://breakpad.appspot.com/478002

* To make this build, there is an additional #include <ucontext.h>.
Review URL: https://breakpad.appspot.com/485002

git-svn-id: http://google-breakpad.googlecode.com/svn/branches/chrome_23@1071 4c0a9323-5329-0410-9bdc-e9ce6186880e

chrome_15 2011-10-20 21:38:01 UTC
Merge trunk r875 to the chrome_15 branch.

Author: mark@chromium.org
Author Date: 2011-10-20 21:38:01 UTC

Merge trunk r875 to the chrome_15 branch.

Fix some shadow variables, including one in file_id.cc that causes all files to
generate the same hash. Add a test to make sure this doesn't happen again.

Review URL: http://breakpad.appspot.com/316002

Original patch by Lei Zhang <thestig@chromium.org>
Review URL: http://breakpad.appspot.com/320001

git-svn-id: http://google-breakpad.googlecode.com/svn/branches/chrome_15@877 4c0a9323-5329-0410-9bdc-e9ce6186880e

linux-dwarf 2009-10-08 19:20:06 UTC
Forgot to add modified files for the last commit!

Author: nealsid
Author Date: 2009-10-08 19:20:06 UTC

Forgot to add modified files for the last commit!

http://breakpad.appspot.com/33002

A=jim.blandy
R=nealsid

git-svn-id: http://google-breakpad.googlecode.com/svn/branches/linux-dwarf@415 4c0a9323-5329-0410-9bdc-e9ce6186880e

processor-symbol-cache 2009-10-07 18:02:59 UTC
properly null terminate temp file template names, add some extra logging to D...

Author: ted.mielczarek
Author Date: 2009-10-07 18:02:59 UTC

properly null terminate temp file template names, add some extra logging to DiskModuleCache

git-svn-id: http://google-breakpad.googlecode.com/svn/branches/processor-symbol-cache@408 4c0a9323-5329-0410-9bdc-e9ce6186880e

linux-rewrite 2009-08-11 01:48:59 UTC
Integrated revisions 378-381 into branch to prepare for re-merge.

Author: nealsid
Author Date: 2009-08-11 01:48:59 UTC

Integrated revisions 378-381 into branch to prepare for re-merge.

git-svn-id: http://google-breakpad.googlecode.com/svn/branches/linux-rewrite@382 4c0a9323-5329-0410-9bdc-e9ce6186880e

120 of 20 results
This repository contains Public information 
Everyone can see this information.

Subscribers