| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
allow dump_syms to access DWARF data for line numbers and other stuff, and not
just public symbol table data.
BUG=12776
TEST=set branding to Chrome, dsymutil should run and take forever
Review URL: http://codereview.chromium.org/113999
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17316 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
memory instead of MD5 of text section.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/113893
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17031 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/114045
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16812 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
leiz reports that it doesn't build: missing assert.h. Since it's
breakpad code I'm not going to fork it just for this.
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16726 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
| |
See comment in the patch.
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16723 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commits a rewrite of the Breakpad Linux client.
The old code:
* Had a number of plain bugs in it, but those could just have been
fixed.
* Allocated memory from the heap, which is a no go.
* Made libc calls which can enter the dynamic linker - another source
of crashes.
* Didn't understand some of the tricks needed, like clone() via libc
will write to random areas of memory because it assumes that it's
only called from libpthread
Additionally, we had one more requirement which meant changing the
interface:
* We need to be able to crash dump the renderers from the browser
process.
And that last one really needed a rewrite.
We intend to try and upstream this new code into Breakpad.
The new Breakpad design works like this:
When a renderer crashes, a signal handler runs on an alternative stack
and collects information about the registers of the thread before the
crash. Then we enter Chromium specific code an send a datagram message
to a magic file descriptor (4) containing:
* the registers and tid of the crashing thread
* the active URL
* a file descriptor to a socket
* a CREDENTIALS structure giving the PID of the renderer.
On the other end of the socket is an object on the IO thread
(render_crash_handler_host_linux.cc) which reads and parses the
datagram. The CREDENTIALS structure is validated by the kernel, so the
renderer can't lie about it's PID and try and get the browser to crash
dump the wrong process.
The browser then ptraces the renderer and extracts all the needed
information to write a minidump to a temp file. Then we write a byte
to the file descriptor which the renderer gave the browser in the
datagram and that's the signal to the renderer to finish dying. It
dies by sending itself the same signal which trigger the crash dump in
the first place, so it will appear to crash as normal as far as kernel
core dumps and waitpid are concerned.
The browser then constucts a MIME message in a temp file for upload to
the crash service. We then fork out to /usr/bin/wget to actually do
the upload (since Debian numbers suggest that 99.8% of users have wget
installed.) A second forked child unlinks the temp files once wget has
completed.
For a browser crash, everything works pretty much the same except that
the datagram step is omitted and we clone() off a process to ptrace
ourselves and write the minidump.
This code is only enabled in Chrome branded builds. Stub source files
are substituted in the case of a Chromium build.
http://codereview.chromium.org/115526
BUG=9646,10772
TEST=Build a Chrome branded binary. Send SEGV to a renderer and verify that wget output appears on stderr. Send a SEGV to the main binary and verify the same.
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16719 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
string based.
Review URL: http://codereview.chromium.org/115510
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16369 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
(out of build/temp_gyp)
Review URL: http://codereview.chromium.org/113352
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15980 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
* Compile OS X dump_syms & symupload utilities from the public repository to simplify the branded builder.
* Correct comment in breakpad_mac_stubs.mm so it more accurately reflects reality.
Review URL: http://codereview.chromium.org/113114
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15574 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
* Link agasint Breakpad from public svn repo.
* Bump DEPS to new svn rev of Breakpad with fixes for 10.5 compilation.
* Fill in code to differentiate between processes types in crash report.
Review URL: http://codereview.chromium.org/88043
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14245 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/87014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14110 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/62076
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13223 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/42044
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11388 0039d316-1c4b-4281-b951-d872f2087c98
|
|
(doesn't run correctly yet).
Switched all uses of windows system libraries that assumed they were in the include path to use -l (which will be
supported on windows in a separate change).
Review URL: http://codereview.chromium.org/27362
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10781 0039d316-1c4b-4281-b951-d872f2087c98
|