summaryrefslogtreecommitdiffstats
path: root/breakpad
Commit message (Collapse)AuthorAgeFilesLines
* Linux: build fix for systems where sys/user.h needs sys/types.hagl@chromium.org2009-10-241-0/+1
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30009 0039d316-1c4b-4281-b951-d872f2087c98
* MDRawSystemInfo.processor_level refers to the CPU family, not the cpuid level.thestig@chromium.org2009-10-191-1/+1
| | | | | | | | BUG=none TEST=Intel Core 2 should show up as family 6 model 15 instead of family 10 model 15. Review URL: http://codereview.chromium.org/295009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29452 0039d316-1c4b-4281-b951-d872f2087c98
* Disable -fexceptions in Breakpad. I made the Mac Breakpad framework buildablemark@chromium.org2009-10-151-5/+0
| | | | | | | | | | | without -fexceptions in upstream r417. BUG=24911 (because this also eliminates some C++ exception symbols from the symbol table) TEST=none Review URL: http://codereview.chromium.org/267129 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29201 0039d316-1c4b-4281-b951-d872f2087c98
* Add the BREAKPAD_NO_TERMINATE_THREAD define to breakpad build configsiggi@google.com2009-10-141-0/+4
| | | | | | | | | | | to avoid Application Verifier errors on some corner cases. BUG=none TEST=none Review URL: http://codereview.chromium.org/267097 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29024 0039d316-1c4b-4281-b951-d872f2087c98
* Add comments setting emacs and vim tab width and expansion variables.sgk@google.com2009-10-061-0/+6
| | | | | | | | BUG=none TEST=successful builds Review URL: http://codereview.chromium.org/256059 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28089 0039d316-1c4b-4281-b951-d872f2087c98
* Force inclusion of build/common.gypi for all chromium gyp files.yaar@chromium.org2009-09-151-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | Why: Simpler build code. If everybody includes it, it should be included automatically. Why now: The webkit chromium builds need it be specified, since can't default to build/common.gypi. What was done: 1. build/common.gypi's contents were moved to a new file build/gyp_chromium.gypi 2. tools/gyp/gyp_chromium was moved to build/gyp_chromium and made to automatically include build/gyp_chromium.gypi. 3. lots of gyp files were fixed to not refer to build/common.gypi any more. 4. o3d which also builds independently of chrome, was fixed to have a gyp_o3d that includes gyp_chromium.gypi too. 5. build/common.gypi was left empty, because there are some external projects that still refer to it. Things that are left to do after this patch is in: 1. The following external files (in other repositories) need to stop include common.gypi ./third_party/hunspell/hunspell.gyp ./third_party/icu/icu.gyp ./v8/tools/gyp/v8.gyp 2. Once nobody refers to common.gypi anymore, delete common.gypi -or- Delete gyp_chromium.gypi and move its content back to common.gypi Tested on mac, win and linux. On win, got a few unit tests errors on chrome bookmarks, which should not be related. I'm running again with clobber to verify. Review URL: http://codereview.chromium.org/206006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26302 0039d316-1c4b-4281-b951-d872f2087c98
* Linux Breakpad: Use MD_MODULE_SIZE in place of sizeof(MDRawModule).thestig@chromium.org2009-09-042-4/+4
| | | | | | | | BUG=none TEST=minidump_dump can read the generated .dmp files. Review URL: http://codereview.chromium.org/200013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25427 0039d316-1c4b-4281-b951-d872f2087c98
* Allow Chromium Linux to be built with Breakpad. Enable Linux CHROME_HEADLESS ↵thestig@chromium.org2009-08-261-2/+2
| | | | | | | | | | | | | support. (Try 2) TEST=none BUG=19663 Original Review URL: http://codereview.chromium.org/173095 Review URL: http://codereview.chromium.org/173397 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24378 0039d316-1c4b-4281-b951-d872f2087c98
* Refer to newly-filed bug about Breakpad Mac dump_syms compiler optimizationmark@chromium.org2009-08-251-1/+1
| | | | | | Review URL: http://codereview.chromium.org/173402 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24334 0039d316-1c4b-4281-b951-d872f2087c98
* Build Mac Breakpad dump_syms at -O0 to avoid a crash.mark@chromium.org2009-08-251-1/+12
| | | | | | Review URL: http://codereview.chromium.org/174450 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24329 0039d316-1c4b-4281-b951-d872f2087c98
* Reverting 24220.yutak@chromium.org2009-08-251-2/+2
| | | | | | | | | | It seemed that r24220 caused failures on all of Linux UI (valgrind) bots. TBR=thestig@chromium.org Review URL: http://codereview.chromium.org/173345 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24228 0039d316-1c4b-4281-b951-d872f2087c98
* Allow Chromium Linux to be built with Breakpad. Enable Linux CHROME_HEADLESS ↵thestig@chromium.org2009-08-251-2/+2
| | | | | | | | | | support. TEST=none BUG=19663 Review URL: http://codereview.chromium.org/173095 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24220 0039d316-1c4b-4281-b951-d872f2087c98
* Updates to be able to build all targets in Linux x64.deanm@chromium.org2009-08-211-2/+2
| | | | | | | Review URL: http://codereview.chromium.org/174261 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24029 0039d316-1c4b-4281-b951-d872f2087c98
* Remove minidump_2_core target since it's not used and breaks 64-bit build.mmoss@chromium.org2009-08-201-13/+0
| | | | | | | Review URL: http://codereview.chromium.org/173138 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23865 0039d316-1c4b-4281-b951-d872f2087c98
* Include linux_syscall_support.h to get definition of NT_PRXFPREG.agl@chromium.org2009-08-181-0/+1
| | | | | | | | | | | | BUG=none TEST=app_unittests && base_unittests --gtest_filter=-ConditionVariableTest.LargeFastTaskTest http://codereview.chromium.org/171033 (Patch from Jacob Mandelson) git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23659 0039d316-1c4b-4281-b951-d872f2087c98
* Build breakpad / crash reporting on Linux 64-bit.deanm@chromium.org2009-08-145-7/+16
| | | | | | | Review URL: http://codereview.chromium.org/165493 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23396 0039d316-1c4b-4281-b951-d872f2087c98
* Disable RTTI and C++ exceptions in the Mac build. Disable RTTI in the Linuxmark@chromium.org2009-08-131-0/+5
| | | | | | | | | | | | build, where C++ exceptions are already disabled. BUG=19094 12248 TEST=Mac release-mode Google Chrome.app should shrink by about 6MB. Mac disk image should shrink by about 1.5MB. Linux binary and package should shrink too. Review URL: http://codereview.chromium.org/165330 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23304 0039d316-1c4b-4281-b951-d872f2087c98
* Fix incorrect logic in WriteCPUInformation().thestig@chromium.org2009-07-151-3/+3
| | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/155605 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20816 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: SUID sandbox supportagl@chromium.org2009-07-081-0/+3
| | | | | | | | | | | | | | | | | | | | | * Make processes dumpable when they crash. * Find crashing processes by searching for a socket inode, rather than relying on SCM_CREDENTIALS. The kernel doesn't translate PIDs between PID namespaces with SCM_CREDENTIALS, so we can't use the PID there. * Use a command line flag to the renderer to enable crash dumping. Previously it tried to access the user's home directory for this information. * Search for a sandbox helper binary and, if found, use it. * Include the source for a sandbox helper binary. It's currently not built by default. http://codereview.chromium.org/149230 R=evan,markus BUG=8081 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20110 0039d316-1c4b-4281-b951-d872f2087c98
* Initialize the age field in Linux Breakpad.thestig@chromium.org2009-07-071-1/+2
| | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/149273 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20079 0039d316-1c4b-4281-b951-d872f2087c98
* Fix breakpad compile on Fedora 11.thestig@chromium.org2009-07-071-2/+2
| | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/155126 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20064 0039d316-1c4b-4281-b951-d872f2087c98
* Avoid using fgets in a compromised context in Linux Breakpad.thestig@chromium.org2009-06-301-12/+18
| | | | | | Review URL: http://codereview.chromium.org/151066 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19618 0039d316-1c4b-4281-b951-d872f2087c98
* Add missing include, fix compile on Fedora 11.thestig@chromium.org2009-06-261-2/+3
| | | | | | Review URL: http://codereview.chromium.org/147224 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19407 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: add linux-gate.so to the minidump mappings.agl@chromium.org2009-06-253-42/+201
| | | | | | | | | | | | | | | Add linux-gate.so to the minidump mappings list by checking for the load address in the aux vector and adding a filename of linux-gate.so when we encounter that load address. This is necessary for crash reporting to walk the stack correctly when a crash happens while in a system call. http://codereview.chromium.org/147032 Committed for Neal Sidhwaney. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19214 0039d316-1c4b-4281-b951-d872f2087c98
* Fill in sys_info->csd_version_rva on Linux.thestig@chromium.org2009-06-231-0/+48
| | | | | | | | | | BUG=none TEST=none This is (cleaned up) code from Breakpad's /client/linux/handler/minidump_generator.cc. Review URL: http://codereview.chromium.org/146001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18996 0039d316-1c4b-4281-b951-d872f2087c98
* Fill in more fields of struct MDRawSystemInfo.thestig@chromium.org2009-06-221-6/+114
| | | | | | | | | | BUG=none TEST=none This is code from Breakpad's /client/linux/handler/minidump_generator.cc. Review URL: http://codereview.chromium.org/144002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18986 0039d316-1c4b-4281-b951-d872f2087c98
* Always build breakpad tools with Linux official build.mmoss@chromium.org2009-06-111-37/+55
| | | | | | | | | | This removes the need for separate build runs with different hammer flags (e.g. --mode=Tool). Review URL: http://codereview.chromium.org/125009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18202 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: Dumping a renderer can traverse an invalid pointer.agl@chromium.org2009-06-053-5/+10
| | | | | | | | | | | | | | | | A ucontext isn't a POD datatype, so we can end up sending it to the browser and then walking an embedded pointer which is only valid in the renderer context. This fix sends the floating point registers (which were at the other end of said pointer) in the context and stops using the pointer in the ucontext. BUG=13465 http://codereview.chromium.org/119249 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17771 0039d316-1c4b-4281-b951-d872f2087c98
* In Linux Breakpad, point the child stack at the top-most address rather than ↵thestig@google.com2009-06-011-1/+8
| | | | | | | | | | the bottom-most address before calling clone(). BUG=none TEST=Official builds on Linux should be able to dump/upload reliably when running with --crash-test. Review URL: http://codereview.chromium.org/115955 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17354 0039d316-1c4b-4281-b951-d872f2087c98
* Run real dsymutil to get a real .dSYM for Breakpad dump_syms. This willmark@chromium.org2009-06-011-1/+5
| | | | | | | | | | | 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
* Linux Breakpad tweaking to get symbols working.thestig@chromium.org2009-05-282-15/+45
| | | | | | | | | | | Do endian swapping for the identifier in dump_syms. Fill in the pdb_file_name (debug_file) field for modules. BUG=none TEST=none Review URL: http://codereview.chromium.org/113943 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17081 0039d316-1c4b-4281-b951-d872f2087c98
* Fork breakpad's dump_syms and related code. Generate XOR of first page of ↵thestig@chromium.org2009-05-276-5/+1055
| | | | | | | | | | 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
* Linux: Breakpad updates.agl@chromium.org2009-05-273-19/+90
| | | | | | | | | | | | | | | | | | | | The crash server requires an MDRawSystemInfo stream in order to process the file, although it actually only needs a single value in it. Additionally, it needs a PDB7 structure for each module, so we remove those modules which probably aren't shared libraries and XOR the first page of data to get a signature for them. The previous code opened the file and MD5 summed the text segment. However, we can't know if the shared library is still linked on disk, nor if the whole text segment is mapped in memory. Thus, we only assume that a single page is mapped. dump_syms will need to be forked and updated to match the signature scheme used in this patch. http://codereview.chromium.org/113875 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17030 0039d316-1c4b-4281-b951-d872f2087c98
* Breakpad's symupload needs -ldl.thestig@chromium.org2009-05-221-0/+5
| | | | | | Review URL: http://codereview.chromium.org/114045 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16812 0039d316-1c4b-4281-b951-d872f2087c98
* Add another missing include to exception_handler.cc to fix building on ↵thestig@chromium.org2009-05-221-0/+1
| | | | | | | | Fedora 11. Review URL: http://codereview.chromium.org/113780 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16782 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a missing include in exception_handler.cc, fix compilation on Jaunty.thestig@chromium.org2009-05-221-5/+6
| | | | | | Review URL: http://codereview.chromium.org/113774 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16773 0039d316-1c4b-4281-b951-d872f2087c98
* Comment out dump_syms from the GYP file.agl@chromium.org2009-05-221-15/+15
| | | | | | | | 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
* Fix build on Jaunty: need string.hagl@chromium.org2009-05-221-0/+1
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16724 0039d316-1c4b-4281-b951-d872f2087c98
* Build fix: Building all targets with 32-bit config would fail.agl@chromium.org2009-05-221-13/+16
| | | | | | | See comment in the patch. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16723 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: add Breakpad supportagl@chromium.org2009-05-2223-0/+6958
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Update where the nib is on disk since a change moved it to make localization ↵thomasvl@chromium.org2009-05-191-1/+1
| | | | | | | | 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
* Moving all the breakpad stuff to: src/breakpadbradnelson@chromium.org2009-05-133-379/+195
| | | | | | | | (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
* OS X Breakpad cleanup.jeremy@chromium.org2009-05-071-0/+38
| | | | | | | | | * 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
* Last chunk of OS X Breakpad integration:jeremy@chromium.org2009-04-221-0/+8
| | | | | | | | | | * 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
* .gyp file for Breakpad on OS X.jeremy@chromium.org2009-04-211-0/+99
| | | | | | Review URL: http://codereview.chromium.org/87014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14110 0039d316-1c4b-4281-b951-d872f2087c98
* Switching breakpad to gyp generated project.bradnelson@google.com2009-04-071-40/+0
| | | | | | Review URL: http://codereview.chromium.org/62076 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13223 0039d316-1c4b-4281-b951-d872f2087c98
* Remove the checked-in scons configuration files.sgk@google.com2009-04-014-190/+0
| | | | | | Review URL: http://codereview.chromium.org/53121 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12982 0039d316-1c4b-4281-b951-d872f2087c98
* Update symupload to the last version. (r319)nsylvain@chromium.org2009-03-241-0/+0
| | | | | | | | It has the fix to not timeout when the network is too slow. Review URL: http://codereview.chromium.org/53018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12412 0039d316-1c4b-4281-b951-d872f2087c98
* Adding fixed guids to some modules to facilitate incremental switch to gyp.bradnelson@google.com2009-03-101-0/+1
| | | | | | Review URL: http://codereview.chromium.org/42044 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11388 0039d316-1c4b-4281-b951-d872f2087c98
* Fixes to gyp files to get test_shell building on windows from a gyp project ↵bradnelson@google.com2009-03-031-0/+39
| | | | | | | | | | (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