aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Allow setting a limit on the number of frames to be recovered by stack scanning.ted.mielczarek@gmail.com2013-08-1917-29/+262
| | | | | | Patch by Julian Seward <jseward@acm.org> R=ted at https://bugzilla.mozilla.org/show_bug.cgi?id=894264 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1206 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Enable the SIGABRT handler on desktop OS Xted.mielczarek@gmail.com2013-08-143-8/+53
| | | | | | R=mark at https://breakpad.appspot.com/618002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1205 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Updating MDRawMiscInfo to support verions 3 and 4 of the ↵ivan.penkov@gmail.com2013-08-023-62/+246
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MINIDUMP_MISC_INFO_N structure. Added the necessary code for swapping and string conversion from UTF-16. Found and fixed a bug in MinidumpAssertion::Read where the max string length passed to UTF16codeunits was in bytes instead of UTF-16 chars. Tested with a minidump containing a version 3 structure to validate the string conversion routines. Interestingly enough the time_zone names does not appear to be abbreviation as the documentation was suggesting but full names, e.g. Eastern Standard Time: MDRawMiscInfo size_of_info = 232 flags1 = 0xf7 process_id = 0x54c4 process_create_time = 0x51a9323c process_user_time = 0x1 process_kernel_time = 0x0 processor_max_mhz = 3100 processor_current_mhz = 1891 processor_mhz_limit = 3100 processor_max_idle_state = 0x1 processor_current_idle_state = 0x1 The new fileds follow: process_integrity_level = 0x1000 process_execute_flags = 0x4d protected_process = 0 time_zone_id = 2 time_zone.bias = 300 time_zone.standard_name = Eastern Standard Time time_zone.daylight_name = Eastern Daylight Time Review URL: https://breakpad.appspot.com/617002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1204 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix erronoius address of crashinfo.auxv in minidump-2-core.thestig@chromium.org2013-07-191-1/+1
| | | | | | | | | | | | BUG=537 A=ajwong@chromium.org Original review: https://breakpad.appspot.com/615002/ R=ajwong@chromium.org Review URL: https://breakpad.appspot.com/616002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1203 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix a memory leak, using stringWithUTF8String instead.yuwu@google.com2013-07-171-1/+1
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1202 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Check env var BreakpadMinidumpLocation first, if set, use it as ↵yuwu@google.com2013-07-151-2/+5
| | | | | | BREAKPAD_DUMP_DIRECTORY. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1201 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Detect corrupt symbol files during minidump processing. Recover from the ↵ivan.penkov@gmail.com2013-07-1134-213/+572
| | | | | | | | | | | | | | | | | | | | | errors and use the good data if possible. More specifically: - Detect corrupt symbols during minidump processing and provide the list of modules with corrupt symbols in the ProcessState. This will allow listing the corrupt symbol files in the final crash report. - Skip and recover from symbol data parse errors - don't give up until 100 parse errors are seen. - In order to recover from '\0' (null terminator) in the middle of a symbol file, a couple of methods have to be updated to require both buffer pointer and length. Previously they required only a buffer pointer (char *) and the size of the buffer was evaluated using strlen which is not reliable when the data is corrupt. Most of the changes are due to these signature updates. - Added and updated unittests. Also, updated minidump_stackwalk to show a WARNING for corrupt symbols. Output looks like this: ... Loaded modules: 0x000da000 - 0x000dafff Google Chrome Canary ??? (main) 0x000e0000 - 0x0417dfff Google Chrome Framework 0.1500.0.3 (WARNING: Corrupt symbols, Google Chrome Framework, 4682A6B4136436C4BFECEB62D498020E0) 0x044a8000 - 0x04571fff IOBluetooth 0.1.0.0 ... Review URL: https://breakpad.appspot.com/613002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1200 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Linux: Fix builds on systems without PR_SET_PTRACER in linux/prctl.h.thestig@chromium.org2013-07-021-1/+5
| | | | | | | | R=thakis@chromium.org Review URL: https://breakpad.appspot.com/612002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1199 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix Android build more.thestig@chromium.org2013-07-011-0/+2
| | | | | | | | | | | | | Android doesn't have the Yama LSM, so this line isn't needed. (It doesn't compile either.) Original CL: https://breakpad.appspot.com/610002/ A=thakis@chromium.org R=mark@chromium.org Review URL: https://breakpad.appspot.com/611002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1198 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix build on Android.mark@chromium.org2013-06-281-0/+5
| | | | | | | | Patch by Nico Weber <thakis@chromium.org> Review URL: https://breakpad.appspot.com/609002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1197 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix a clang warning:mark@chromium.org2013-06-281-4/+2
| | | | | | | | | | | | | | | | | | | | ../../breakpad/src/processor/tokenize.cc:65:7: error: logical not is only applied to the left hand side of this comparison [-Werror,-Wlogical-not-parentheses] if (!remaining > 0) { ^ ~ ../../breakpad/src/processor/tokenize.cc:65:7: note: add parentheses after the '!' to evaluate the comparison first if (!remaining > 0) { ^ ( ) ../../breakpad/src/processor/tokenize.cc:65:7: note: add parentheses around left hand side expression to silence this warning if (!remaining > 0) { ^ ( ) R=thakis@chromium.org Review URL: https://breakpad.appspot.com/608002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1196 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix a clang warning.mark@chromium.org2013-06-271-5/+7
| | | | | | | | | | | | | | | | | Since explanatoryDialogText returns something that migth be user input, this looks like a good change anyhow. ../../breakpad/src/client/mac/sender/crash_report_sender.m:269:38: error: format string is not a string literal (potentially insecure) [-Werror,-Wformat-security] [self explanatoryDialogText], ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ Patch by Nico Weber <thakis@chromium.org> Review URL: https://breakpad.appspot.com/607002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1195 4c0a9323-5329-0410-9bdc-e9ce6186880e
* This change is addressing a particularly nasty issue where the stackwalkerivan.penkov@gmail.com2013-06-274-14/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | doesn't see the correct thread stack memory. Instead, it loads garbage (from offset 0 of the minidump file - well that's not garbage, but it is not the stack memory region either) and attempts to walk it. A typical symptom of this issue is when you get a single stack frame after processing - the context frame - for which you don't need stack memory. This issue is caused by an invalid RVA in the memory descriptor stored inside the MINIDUMP_THREAD structure for the thread. Luckily, the invalid RVA is 0, and the start_of_memory_region appears to be correct, so this issue can be easily detected and the correct memory region can be loaded using an RVA specified in the MinidumpMemoryList. I couldn't find a reasonable description on MSDN regarding MINIDUMP_MEMORY_DESCRIPTOR.MINIDUMP_LOCATION_DESCRIPTOR having RVA of 0 except maybe for full dumps where the 64-bit version of the structure (MINIDUMP_MEMORY_DESCRIPTOR64) is used and it has no RVA at all. It has a 64-bit DataSize which if interpreted as the 32-bit structure will very likely result in 0 for the RVA: http://msdn.microsoft.com/en-us/library/windows/desktop/ms680384(v=vs.85).aspx Anyways, the dump that I looked at was not a full dump so 0 for RVA is a bit puzzling (at least easily detectable): ... Microsoft (R) Windows Debugger Version 6.2.9200.20512 X86 Copyright (c) Microsoft Corporation. All rights reserved. ... User Mini Dump File: Only registers, stack and portions of memory are available ... MINIDUMP_HEADER: Version A793 (62F0) NumberOfStreams 11 Flags 160 0020 MiniDumpWithUnloadedModules 0040 MiniDumpWithIndirectlyReferencedMemory 0100 MiniDumpWithProcessThreadData Review URL: https://breakpad.appspot.com/606002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1194 4c0a9323-5329-0410-9bdc-e9ce6186880e
* More robust stack walks when the IP address in the context frame is invalid ↵ivan.penkov@gmail.com2013-06-265-105/+350
| | | | | | | | | | | | | (or not in a known module). This is achieved by: 1. Extending the span of the scan for return address in the conext frame. Initially, I wanted to extend the span of the scan for all frames but then I noticed that there is code for ARM already that is extending the search only for the context frame. This kind of makes sense so I decided to reuse the same idea everywhere. 2. Attempting to restore the EBP chain after a successful scan for return address so that the stackwalker can switch back to FRAME_TRUST_CFI for the rest of the frames when possible. I also fixed the lint errors in the files touched. Review URL: https://breakpad.appspot.com/605002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1193 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Eliminate redundant initialization following r1188,mark@chromium.org2013-06-201-2/+1
| | | | | | | | | | https://breakpad.appspot.com/599002 R=ivan.penkov@gmail.com Review URL: https://breakpad.appspot.com/604002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1192 4c0a9323-5329-0410-9bdc-e9ce6186880e
* add interface for WriteMinidump which allows the caller to supply file ↵cdn@chromium.org2013-06-062-21/+64
| | | | | | | | | | | | handles instead of paths where the minidumps should be written. BUG=N/A TEST=N/A R=ivan.penkov@gmail.com, mark@chromium.org Review URL: https://breakpad.appspot.com/602002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1191 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Make all linux ptrace dumper tests use a subprocessted.mielczarek@gmail.com2013-06-061-191/+203
| | | | | | Patch by Mike Hommey <mh@glandium.org>, R=ted at https://breakpad.appspot.com/550002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1190 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Treat warnings as error and fix most level 4 warnings in the breakpad ↵ivan.penkov@gmail.com2013-06-0412-124/+173
| | | | | | | | | | | windows client projects. Some of the lint errors in the files touched by this change were also fixed. BUG=533 Review URL: https://breakpad.appspot.com/601002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1189 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Thanks to Matthew Riley who noticed this issue and provided the initial ↵ivan.penkov@gmail.com2013-05-232-12/+36
| | | | | | | | | | | | proposal for the fix. There's a bug in the new allocator<T> implementation used by wasteful_vector. It inherits the base class' implementation of allocator and doesn't implement allocate() so it goes to the heap instead of the PageAllocator -- the very thing wasteful_vector was trying to avoid! As a side effect it was also leaking heap memory. Thanks, -Ivan Review URL: https://breakpad.appspot.com/599002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1188 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fixing several instances of std::vector::operator[] out of range accessivan.penkov@gmail.com2013-05-212-9/+16
| | | | | | Review URL: https://breakpad.appspot.com/597002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1187 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Submitting this on behalf of Xiaoling Bao.ivan.penkov@gmail.com2013-05-204-4/+17
| | | | | | | Make custom info population before dump generation as an optional operation. This is part of a security change to move the crash generation and upload out of Google updater process. Review URL: https://breakpad.appspot.com/586003 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1186 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Ensure a proper LinuxDumper::crash_thread_ valueted.mielczarek@gmail.com2013-05-172-4/+4
| | | | | | Patch by Mike Hommey <mh@glandium.org>, R=me at https://breakpad.appspot.com/582002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1185 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Use std::vector with a custom allocator wrapping PageAllocator for ↵ted.mielczarek@gmail.com2013-05-171-70/+29
| | | | | | | | wasteful_vector Patch by Mike Hommey <mh@glandium.org>, R=me at https://breakpad.appspot.com/581002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1184 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Avoid gmock warning "Uninteresting mock function call"ted.mielczarek@gmail.com2013-05-174-0/+22
| | | | | | Patch by Michael Krebs <mkrebs@chromium.org>, R=me at https://breakpad.appspot.com/397002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1183 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Always read CFI section, even when not outputing CFI information.qsr@chromium.org2013-05-161-8/+6
| | | | | | | | | | | | On iOS at least, the CFI section contains information needed to correctly dump the symbols. Even if the CFI section is not dumped, reading it is necessary to get correcty symbolication. R=mark@chromium.org, ted.mielczarek@gmail.com Review URL: https://breakpad.appspot.com/596002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1182 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Compile issue when using global string "::string". For more details take a ↵ivan.penkov@gmail.com2013-05-111-2/+5
| | | | | | | | look at src/common/using_std_string.h. Review URL: https://breakpad.appspot.com/577002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1181 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix a "set but not used" compiler warning in a testmseaborn@chromium.org2013-05-101-1/+2
| | | | | | | | | | | | Add a missing assertion whose absence made the test ineffective. Make the test a little stricter too. BUG=none TEST="make check" to run the test + use "-Wall -Werror" Review URL: https://breakpad.appspot.com/592003 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1180 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix a "set but not used" compiler warning in libdisasmmseaborn@chromium.org2013-05-101-2/+0
| | | | | | | | | BUG=none TEST=none apart from compiling with "-Wall -Werror" Review URL: https://breakpad.appspot.com/594002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1179 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix following r1175: the section name is __debug_info, not .debug_info.mark@chromium.org2013-05-091-1/+1
| | | | | | Review URL: https://breakpad.appspot.com/583003 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1178 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Check in new Windows binaries.chrisha@chromium.org2013-05-092-0/+0
| | | | | | | | | | | | These binaries include recent changes to pdb_source_line_writer for handling PDBs with OMAP data. They were built using the GYP build files, MSVS 2010 and DIA SDK 8.0. Review URL: https://breakpad.appspot.com/584002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1177 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Mac: Fix more errors from clang to get crash_report.xcodeproj close to ↵thestig@chromium.org2013-05-084-5/+7
| | | | | | | | | | compiling. R=mark@chromium.org Review URL: https://breakpad.appspot.com/593002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1176 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix mac dump_syms after r1163.thestig@chromium.org2013-05-083-18/+40
| | | | | | | | R=mark@chromium.org Review URL: https://breakpad.appspot.com/592002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1175 4c0a9323-5329-0410-9bdc-e9ce6186880e
* NULL-check the entry in NonAllocatingMap before setting on it.rsesek@chromium.org2013-05-082-5/+10
| | | | | | | | | | | Using just an assert will still cause a crash in a release build. BUG=http://code.google.com/p/chromium/issues/detail?id=238757 R=mark@chromium.org Review URL: https://breakpad.appspot.com/593003 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1174 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Make x86-64 stack walking work for Native Client minidumpsmseaborn@chromium.org2013-05-082-4/+16
| | | | | | | | | | | | | | For NaCl, a stack walker should ignore the top 32 bits of %rip, %rsp and %rbp, otherwise it will try to read from %r15-extended stack addresses and look up symbol info for %r15-extended code addresses, which will fail. BUG=https://code.google.com/p/nativeclient/issues/detail?id=3424 TEST=tested manually with a NaCl minidump Review URL: https://breakpad.appspot.com/591002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1173 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add MD_OS_NACL platform_id value for identifying NaCl minidumpsmseaborn@chromium.org2013-05-064-3/+15
| | | | | | | | | | | | | | Change minidump-2-core to accept minidumps with this platform_id value rather than rejecting them as non-Linux dumps. Add a missing "break" for a MD_OS_PS3 case. BUG= https://code.google.com/p/nativeclient/issues/detail?id=3424 TEST= tested with work-in-progress NaCl minidump generator Review URL: https://breakpad.appspot.com/590002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1172 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix an "unused variable" compiler warning in exploitability_win.ccmseaborn@chromium.org2013-05-061-3/+0
| | | | | | | | | BUG=none TEST=compile with "-Wall -Werror" Review URL: https://breakpad.appspot.com/588003 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1171 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix GetLoadingAddress() to work for Native Client executablesmark@chromium.org2013-05-061-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | NaCl executables have ELF program headers that look like this (for the original NaCl x86 GCC toolchain): Program Header: LOAD off 0x00010000 vaddr 0x00020000 paddr 0x00020000 align 2**16 filesz 0x00017ce0 memsz 0x00017ce0 flags r-x LOAD off 0x00030000 vaddr 0x10020000 paddr 0x10020000 align 2**16 filesz 0x00001c98 memsz 0x00001c98 flags r-- LOAD off 0x00040000 vaddr 0x10030000 paddr 0x10030000 align 2**16 filesz 0x000025ec memsz 0x00002b88 flags rw- or this (for the newer NaCl ARM GCC toolchain): Program Header: LOAD off 0x00010000 vaddr 0x00020000 paddr 0x00020000 align 2**16 filesz 0x000193b0 memsz 0x000193b0 flags r-x LOAD off 0x00000000 vaddr 0x10020000 paddr 0x10020000 align 2**16 filesz 0x00000978 memsz 0x00000978 flags r-- LOAD off 0x00001000 vaddr 0x10031000 paddr 0x10031000 align 2**16 filesz 0x00000abc memsz 0x00000fac flags rw- Fix GetLoadingAddress() to return the start address of the first segment, 0x20000, in these cases. Looking at p_offset for this isn't correct, and the first segment doesn't have p_offset == 0 here because NaCl can't map the ELF file headers as part of the first segment (which is for validatable code only). BUG= https://code.google.com/p/nativeclient/issues/detail?id=3424 TEST= check addresses in output of "dump_syms" when run on NaCl nexe Patch by Mark Seaborn <mseaborn@chromium.org> Review URL: https://breakpad.appspot.com/588002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1170 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix minidump generation from exception.qsr@chromium.org2013-05-032-9/+15
| | | | | | Review URL: https://breakpad.appspot.com/583002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1169 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add GYP file for tools\windows\symupload.chrisha@chromium.org2013-05-012-0/+65
| | | | | | | | | | | | This creates a GYP project file for the Windows symupload binary, allowing for easier building. It also updates the old VC 8.0 project file to reflect recent changes to PdbSourceLineWriter. Review URL: https://breakpad.appspot.com/579002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1168 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add explicit OMAP support to dump_syms.chrisha@chromium.org2013-05-0123-14147/+20051
| | | | | | | | | | | | | | This CL adds new utilities to common/windows for handling OMAP information in PDB files. It then augments PdbSourceLineWriter with explicit OMAP knowledge so that symbolization will proceed more cleanly for images whose PDB files contain OMAP information. This makes breakpad handle OMAPped symbol files as cleanly as WinDbg. Review URL: https://breakpad.appspot.com/570002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1167 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fixing a clang warning.ivan.penkov@gmail.com2013-04-251-1/+3
| | | | | | | | | | | | This is a followup change from https://breakpad.appspot.com/569002/ This prevents push_back from ever calling Realloc() with 0 (which could happen if wasteful_vector was constructed with size_hint set to 0, causing allocated_ to be 0. Review URL: https://breakpad.appspot.com/576002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1166 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add MD_OS_PS3 to breakpad and exception types.thestig@chromium.org2013-04-255-4/+161
| | | | | | | | | A=Jia Ji <jijia@google.com> Original review: https://breakpad.appspot.com/571002/ Review URL: https://breakpad.appspot.com/574002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1165 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Cleanup: Use scoped_ptr where appropriate in DwarfCUToModule.thestig@chromium.org2013-04-242-13/+13
| | | | | | Review URL: https://breakpad.appspot.com/572002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1164 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add an option to not handle DWARF inter-compilation unit references in Linux ↵thestig@chromium.org2013-04-247-129/+300
| | | | | | | | | | dump_syms. This saves a lot of memory for dump_syms. Review URL: https://breakpad.appspot.com/565002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1163 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix Clang warning regarding null pointer argument.ivan.penkov@gmail.com2013-04-241-1/+3
| | | | | | | | | This warning was showing up in the Clang static analyzer in Xcode: "Null pointer argument in call to memory copy function" Fix provided by Ian Wilkinson. Review URL: https://breakpad.appspot.com/569002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1162 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Rewrite SimpleStringDictionary with NonAllocatingMap.rsesek@chromium.org2013-04-248-307/+384
| | | | | | | | | | | NonAllocatingMap has a near-identical interface, but is significantly less code, more customizable, and has storage that is POD. BUG=http://code.google.com/p/chromium/issues/detail?id=77656 Review URL: https://breakpad.appspot.com/568002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1161 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Improve ARM CPU info reporting.digit@chromium.org2013-04-2413-127/+1203
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch improves several things for Linux/ARM: - Better detection of the number of CPUs on the target device. The content of /proc/cpuinfo only matches the number of "online" CPUs, which varies over time with recent Android devices. - Reconstruct the CPUID and ELF hwcaps values from /proc/cpuinfo, this is useful to better identify target devices in minidumps. - Make minidump_dump display the new information in useful ways. - Write a small helper class to parse /proc/cpuinfo and also use it for x86/64. - Write a small helper class to parse sysfds cpu lists. - Add a my_memchr() implementation. - Add unit tests. Tested on a Nexus S (1 CPU), Galaxy Nexus (2 CPUs) and a Nexus 4 (4 CPUs). Review URL: https://breakpad.appspot.com/540003 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1160 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Cleanup: Remove duplicate wording in license headers.thestig@chromium.org2013-04-232-24/+4
| | | | | | | | BUG=505 Review URL: https://breakpad.appspot.com/498002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1159 4c0a9323-5329-0410-9bdc-e9ce6186880e
* This change allows compiling sym_upload.cc and minidump_upload.cc using a ↵ivan.penkov@gmail.com2013-04-232-38/+42
| | | | | | | | | | | | | | | | global ::string class instead of std::string. For more details take a look at common/using_std_string.h A few other fixes: - getopt() returns (int)(-1) when options are exhausted. This was already sent out for code review by mattdr but only for sym_upload.cc (https://breakpad.appspot.com/561002/). I'm applying the fix for both files. - Fixed a couple of lint warning about improper usage of white-spaces. Thanks, -Ivan Review URL: https://breakpad.appspot.com/567002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1158 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Allow option for efficient and safe opt out of in-proc dump generation for ↵ivan.penkov@gmail.com2013-04-234-41/+143
| | | | | | | | | | Windows breakpad clients. https://breakpad.appspot.com/549002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1157 4c0a9323-5329-0410-9bdc-e9ce6186880e