aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* Added an option (-i) to have dump_syms output header information only.David Yen2016-04-086-83/+188
| | | | | | | | | | | | | | | | | It is often helpful to check if a particular symbol file dumped by dump_syms actually matches a version of a binary file we have. The symbol output contains an ID which can be used to see if it matches the binary file. Unfortunately, this ID is internally calculated and not a standard hash of the binary file. Being able to output the header information only will allow users to determine whether their symbol file is up to date or not. R=jochen@chromium.org BUG=561447 Review URL: https://codereview.chromium.org/1864823002 . Patch from David Yen <dyen@chromium.org>.
* Remove unreferenced local variable which breaks build.Yunxiao Ma2016-04-051-3/+2
| | | | | | | | | | | | | Depending on compiler's setting, the unreferenced local variable may cause build break. modified: src/processor/minidump.cc R=mark@chromium.org Review URL: https://codereview.chromium.org/1866533002 . Patch from Yunxiao Ma <yxma@google.com>.
* Rename stdio.h wrapper file to stdio_wrapper.h.Yunxiao Ma2016-04-057-9/+9
| | | | | | | | | | | | | | | | | | | | Some projects will get build break because the comipler is confused when searches for the standard stdio.h. Rename the wrapper file to avoid that. renamed: src/common/stdio.h -> src/common/stdio_wrapper.h modified: src/processor/minidump.cc modified: src/processor/dump_context.cc modified: src/processor/logging.cc modified: src/processor/minidump.cc modified: src/processor/minidump_processor.cc modified: src/processor/stackwalk_common.cc modified: src/processor/symbolic_constants_win.cc R=mark@chromium.org, labath@google.com Review URL: https://codereview.chromium.org/1864603002 . Patch from Yunxiao Ma <yxma@google.com>.
* Switch the Linux minidump writer to use MDCVInfoELF for CV data.Ted Mielczarek2016-04-0516-226/+459
| | | | | | | | | | | | | | | | | | | | | | | | | | This preserves full build ids in minidumps, which are useful for tracking down the right version of system libraries from Linux distributions. The default build id produced by GNU binutils' ld is a 160-bit SHA-1 hash of some parts of the binary, which is exactly 20 bytes: https://sourceware.org/binutils/docs-2.26/ld/Options.html#index-g_t_002d_002dbuild_002did-292 The bulk of the changes here are to change the signatures of the FileID methods to use a wasteful_vector instead of raw pointers, since build ids can be of arbitrary length. The previous change that added support for this in the processor code preserved the return value of `Minidump::debug_identifier()` as the current `GUID+age` treatment for backwards-compatibility, and exposed the full build id from `Minidump::code_identifier()`, which was previously stubbed out for Linux dumps. This change keeps the debug ID in the `dump_syms` output the same to match. R=mark@chromium.org, thestig@chromium.org BUG= Review URL: https://codereview.chromium.org/1688743002 .
* sample_app: enable C++11 for Android buildsPatrick Linehan2016-04-041-0/+1
| | | | | | Also add the -D__STDC_LIMIT_MACROS definition as we rely on UINTPTR_MAX. Review URL: https://codereview.chromium.org/1801913002/
* Support processing microdump for mips architectureVeljko Mihailovic2016-04-017-6/+254
| | | | | | | | | | Based on changes for ARM, ARM64 and X86, the support for MIPS and MIPS64 is added in microdump. TEST=microdump_stackwalk ~/microdump-mips32.dmp symbols/ BUG=microdump_stackwalk failing for mips architectures Review URL: https://codereview.chromium.org/1731923002/
* Add the TID to the CallStack.Sebastien Marchand2016-04-014-1/+14
| | | | | | R=ivanpe@chromium.org Review URL: https://codereview.chromium.org/1849933002 .
* Refactor sym_upload in tools to extract code into common/linux, and minor fixesLi Yan2016-03-308-211/+314
| | | | | | | | | | | | to code calling libcurl. This change may be used to build a tool to dump and upload symbols with multi-thread. BUG= R=mmandlis@chromium.org CC=google-breakpad-dev@googlegroups.com Review URL: https://codereview.chromium.org/1842113002 .
* Make EXC_BAD_ACCESS / EXC_I386_GPFLT print nicely in the processorTed Mielczarek2016-03-291-5/+21
| | | | | | | | | | | | | | | | | | | | | Currently EXC_BAD_ACCESS doesn't support EXC_I386_GPFLT as exception_flags for pretty-printing in the processor, but this happens for a lot of things: http://opensource.apple.com/source/xnu/xnu-2050.24.15/osfmk/i386/trap.c (search for EXC_I386_GPFLT). And we get a lot of these in the wild: https://crash-stats.mozilla.com/search/?reason=%3DEXC_BAD_ACCESS+%2F+0x0000000d&cpu_name=amd64&_facets=signature&_facets=address&_columns=date&_columns=signature&_columns=product&_columns=version&_columns=build_id&_columns=platform&_columns=address#crash-reports This patch makes them show up with a nice name instead of the current "EXC_BAD_ACCESS / 0x0000000d". Additionally, this patch fixes some other cases where x86-64 wasn't being handled in the same way as x86, and fixes some x86-specific exception flags to be stringified with I386 in the output. R=mark@chromium.org BUG= Review URL: https://codereview.chromium.org/1833123002 .
* Have dump_syms output the full symbol table.David Yen2016-03-231-18/+47
| | | | | | | | | | | | | | | | | | Some of the symbols in the stack trace are not found in the .dynsym section but were located in the full symbol table .symtab section instead. This was causing some of our stack traces to be incomplete or point to incorrect function names. Since we only output function names, there are actually not that many more symbols located in .symtab that aren't in .dynsym. It is better to simply output all symbols found so our stack traces are complete. R=mark@chromium.org, thestig@chromium.org BUG=561447 Review URL: https://codereview.chromium.org/1824063002 . Patch from David Yen <dyen@chromium.org>.
* Fix the Linux Starter Guide docsTed Mielczarek2016-03-221-39/+52
| | | | | | | | | | The auto-conversion from googlecode wiki format apparently wasn't perfect. This also fixes up some of the links to point to the new Breakpad repo. R=vapier@chromium.org BUG= Review URL: https://codereview.chromium.org/1823583002 .
* Explicitly call non-sized delete on dynamically sized memory for correct ↵Ivan Penkov2016-03-111-1/+1
| | | | | | | | | | | | | | | | behavior under sized-delete. The code as it stands allocates a chunk of memory of arbitrary size and places an object into it. It stores a pointer to that object and memory into a list telling the compiler that it is a pointer to a char. When the compiler deletes the objects in the list it thinks that the list contains pointers to chars - not pointers to arbitrarily sized regions of memory. This is fixing an issue that will reproduces when the following optimization (C++ sized dealocation) is enabled: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3536.html The fix is to explicitly call the non-sized delete operator, and the library code that supports malloc/free/new/delete will figure out the size of the block of memory from the pointer being passed in. Patch provided by Darryl Gove. R=mark@chromium.org Review URL: https://codereview.chromium.org/1788473002 .
* Fix format warning in omap.ccJon Turney2016-03-101-1/+1
| | | | | | | omap.cc(212): warning C4473: 'fprintf' : not enough arguments passed for format string BUG=None Review URL: https://codereview.chromium.org/1776613004
* Include necessary source files in Android build config.Patrick Linehan2016-03-091-0/+3
| | | | | BUG=https://bugs.chromium.org/p/google-breakpad/issues/detail?id=639 Review URL: https://codereview.chromium.org/1722333002
* Don't merge the mappings if their exec bit are different.Primiano Tucci2016-03-081-1/+2
| | | | | | | BUG=585534 R=primiano@chromium.org Review URL: https://codereview.chromium.org/1750033002 .
* Add an optional root prefix to Linux dumpersDominik Laskowski2016-03-077-35/+58
| | | | | | | | | | | The Linux dumpers use absolute paths for shared libraries referenced by dumps, so they fail to locate them if the crash originated in a chroot. This CL enables callers to specify a root prefix, which is prepended to mapping paths before opening them. BUG=chromium:591792 TEST=make check Review URL: https://codereview.chromium.org/1761023002/
* Handle multiple microdumps in system log.Maria Mandlis2016-02-263-4/+211
| | | | | | | | 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 .
* Support processing microdumps for x86 architecture.Maria Mandlis2016-02-184-6/+216
| | | | | | | BUG=587536 R=primiano@chromium.org Review URL: https://codereview.chromium.org/1704243002 .
* Try loading msdiaNNN.dll if CoCreateInstance(CLSID_DiaSource) failsBirunthan Mohanathas2016-02-171-4/+36
| | | | | | | | | | Because tools/windows/symupload/symupload.cc uses `nullptr` (which requires VS2010), the CLSID comparison is only performed for msdia100.dll and later. When compiling with an older (or future) CLSID_DiaSource, we retain the existing behaviour (i.e. fail if CoCreateInstance fails). R=ivanpe@chromium.org BUG=https://bugzilla.mozilla.org/show_bug.cgi?id=1236343
* Fix buffer overrun in MinidumpModule::debug_identifier with MDCVInfoELFTed Mielczarek2016-02-171-1/+3
|
* linux_dumper_unittest_helper: move to a check-only binaryMike Frysinger2016-02-172-38/+34
| | | | | | | | | | | There's no need for this binary outside of local tests, so stop building/installing it by default. BUG=chromium:579384 TEST=`make check` passe R=ivanpe@chromium.org Review URL: https://codereview.chromium.org/1632933002 .
* Fixing a flaky Linux exploitability unittest.Ivan Penkov2016-02-163-15/+81
| | | | | | | BUG=https://code.google.com/p/chromium/issues/detail?id=584174 R=mmandlis@chromium.org Review URL: https://codereview.chromium.org/1697963002 .
* Ensure Linux minidump writer flushes minidump header early.Ted Mielczarek2016-02-121-11/+18
| | | | | | | | | | | | | | | | If the Linux minidump writer crashes while writing a dump, the dump might contain some useful information, but the header will be empty because TypedMDRVA's destructor flushes the data, and the header var doesn't go out of scope until the end of the `Dump` method. This fixes that problem by putting the header in a shorter block scope. We've seen this problem in some Android dumps in the wild, like: https://crash-stats.mozilla.com/report/index/cef5b777-02d1-43c2-bf40-133ab2160209 R=thestig@chromium.org BUG=https://bugzilla.mozilla.org/show_bug.cgi?id=1247978 Review URL: https://codereview.chromium.org/1696573003 .
* Fix for linux make check build failureVeljko Mihailovic2016-02-122-20/+25
| | | | | | | | | | | | | | | | Linux make check is failing for mips, mips64, arm, arm64 with error: "fatal error: mach/arm/vm_types.h: No such file or directory" in case of arm, "../src/third_party/mac_headers/mach/machine/vm_types.h:37:2: error: #error architecture not supported" in case of mips/mips64 This was partially fixed in https://codereview.chromium.org/1645673002/. Here excluding src/common/mac/macho_reader_unittest for hosts other than x86/x86-64. BUG=make check failure for linux mips TEST=make check pass Review URL: https://codereview.chromium.org/1692933002 .
* Parse additional line introduced in the microdump format and containing the ↵Maria Mandlis2016-02-1111-1/+56
| | | | | | | | | | | | | | | GPU infromation in the following format: G GL_VERSION|GL_VENDOR|GL_RENDERER. The GPU version, vendor and renderer are extracted during microdump parsing and populated in the appropriate fields in the SystemInfo struct. This is to match the changes introduced in crrev.com/1343713002 and crrev.com/1334473003 BUG=chromium:536769 R=primiano@chromium.org Review URL: https://codereview.chromium.org/1678463002 .
* Revert "Added a switch to dump minidump modules in minidump_stackwalk."Lei Zhang2016-02-103-30/+5
| | | | | | | | | | | This reverts commit cb936a0243c97ae9cd2d4bb19d95dde0421fed6d. A=dyen@chromium.org Original Review: https://codereview.chromium.org/1672773002/ R=dyen@chromium.org Review URL: https://codereview.chromium.org/1688493003 .
* Change MDCVInfoELF into something usable.Ted Mielczarek2016-02-104-45/+313
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch changes MDCVInfoELF (which is currently unused, apparently a vestigal bit of code landed as part of Solaris support) into a supported CodeView format that simply contains a build id as raw bytes. Modern ELF toolchains support build ids nicely: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Developer_Guide/compiling-build-id.html It would be useful to have the original build ids of loaded modules in Linux minidumps, since tools like Fedora's darkserver allow querying by build id and the current Breakpad code truncates the build id to the size of a GUID, which loses information: https://darkserver.fedoraproject.org/ A follow-up patch will change the Linux minidump generation code to produce MDCVInfoELF in minidumps instead of MDCVInfoPDB70. This patch should be landed first to ensure that crash processors are able to handle this format before dumps are generated containing it. The full build id is exposed as the return value of Minidump::code_identifier(), which currently just returns "id" for modules in Linux dumps. For backwards-compatibility, Minidump::debug_identifier() continues to treat the build id as a GUID, so debug identifiers for existing modules will not change. BUG= R=mark@chromium.org Review URL: https://codereview.chromium.org/1675413002 .
* Fix usage of deprecated method sendSynchronousRequest:returningResponse:error:.Sylvain Defresne2016-02-081-3/+43
| | | | | | | | | | | | | The method -[NSURLConnection sendSynchronousRequest:returningResponse:error:] has been deprecated in 10.11 OS X SDK and 9.0 iOS SDK without replacement. So emulate a synchronous request by using an asynchronous request and waiting on a semaphore for the request completion. BUG=https://bugs.chromium.org/p/google-breakpad/issues/detail?id=675 BUG=569158 R=mark@chromium.org Review URL: https://codereview.chromium.org/1675243002 .
* Fix usage of deprecated method stringByAddingPercentEscapesUsingEncoding:.Sylvain Defresne2016-02-081-4/+19
| | | | | | | | | | | | | | | | The method -[NSString stringByAddingPercentEscapesUsingEncoding:] has been deprecated with 10.11 OS X SDK and 9.0 iOS SDK. The recommended method is -[NSString stringByAddingPercentEncodingWithAllowedCharacters:] available since 10.9 OS X SDK and 7.0 iOS SDK. Use the new method when available using URLQueryAllowedCharacterSet to get the same encoded string. BUG=https://bugs.chromium.org/p/google-breakpad/issues/detail?id=675 BUG=569158 R=mark@chromium.org Review URL: https://codereview.chromium.org/1680663002 .
* Fix usage of deprecated function CFPropertyListCreateFromXMLData.Sylvain Defresne2016-02-081-3/+3
| | | | | | | | | | | | The function CFPropertyListCreateFromXMLData is deprecated in favor of the function CFPropertyListCreateWithData that is available since the 10.6 OS X SDK and 4.0 iOS SDK. BUG=https://bugs.chromium.org/p/google-breakpad/issues/detail?id=675 BUG=569158 R=mark@chromium.org Review URL: https://codereview.chromium.org/1678063002 .
* [mips64] Support for mips n64Mike Frysinger2016-02-0619-133/+1169
| | | | | | | | | | Adding remaining mips n64 support including stackwalker. BUG=None TEST=manually tested on Linux/Android R=vapier@chromium.org Review URL: https://codereview.chromium.org/1418453011 .
* Remove use of deprecated CFURLCreateDataAndPropertiesFromResource function.Ivan Penkov2016-01-311-6/+19
| | | | | | | | | | | | | 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 .
* Added a switch to dump minidump modules in minidump_stackwalk.Lei Zhang2016-01-293-5/+30
| | | | | | | | | | | | In order to figure out what symbols we need associated to a minidump, it is useful to be able to dump all the modules the minidump contains. A=dyen@chromium.org Original Review: https://codereview.chromium.org/1651593002/ BUG=563716 R=dyen@chromium.org Review URL: https://codereview.chromium.org/1650713002 .
* Improvements to GYP buildPavel Labath2016-01-293-3/+10
| | | | | | | | | | | | | | | | | | | | | | This updates the GYP build for the processor component (on windows). - adds/removes references to files which were added or removed from the repository - includes build/common.gypi in the gyp files: needed to correctly detect the OS (I think, the generated MSVC solutions were broken without it) - conditionally compiles code platform-specific code for the given platform After this minidump processor nearly compiles with VS2013: the generated project is correct, but some files still have compilation errors. Disclaimer: I have not tested the GYP changes on non-windows platform, as there does not seem to be anyone using it there. BUG= R=mark@chromium.org Review URL: https://codereview.chromium.org/1643633004 .
* only build dump_syms_mac for x86 hostsMike Frysinger2016-01-274-27/+62
| | | | | | | | | | | | | | | | | | | The dump_syms_mac tool only works for the system it is being built for (it doesn't support running on ELFs for a diff target), and it builds only for x86 currently. If you look at the mac header: src/third_party/mac_headers/mach/machine/vm_types.h it will #error for non x86/arm systems, and the arm header is not in our source tree. Tweak the build so it's only compiled when targetting x86 systems. BUG=chromium:579384 TEST=`make check` pass R=ted.mielczarek@gmail.com Review URL: https://codereview.chromium.org/1645673002 .
* convert to uint8_t* for binary data to fix -Wnarrowing build errorsMike Frysinger2016-01-2616-173/+219
| | | | | | | | | | | | | | | Newer gcc versions default to -Werror=narrowing when using newer C++ standards (which we do). This causes issues when we try to stuff a value like 0xea into a char -- the value is out of range for signed char bytes. That's when gcc throws an error: .../bytereader_unittest.cc: In member function 'virtual void Reader_DW_EH_PE_absptr4_Test::TestBody()': .../bytereader_unittest.cc:400:55: error: narrowing conversion of '234' from 'int' to 'char' inside { } [-Wnarrowing] BUG=chromium:579384 TEST=`make check` passes R=mark@chromium.org Review URL: https://codereview.chromium.org/1605153004 .
* autotools: regen w/latest versionsMike Frysinger2016-01-257-216/+202
| | | | | | | | Should have no real impact on the build. Just pulling in the latest versions from the latest autoconf/automake versions. BUG=chromium:579384 TEST=`make && make install` still works
* test: allow use of system gmock/gtest libsMike Frysinger2016-01-255-51/+385
| | | | | | | | | | | | | | Some systems provide prebuilt copies of gmock/gtest (such as Chromium OS). Add a configure flag so they can take advantage of that. This allows for a smaller checkout as they don't need to include the full testing/ tree. BUG=chromium:579384 TEST=`make check` passes w/--enable-system-test-libs TEST=`make check` passes w/--disable-system-test-libs R=thestig@chromium.org Review URL: https://codereview.chromium.org/1638653002 .
* build: clean up .dwo filesMike Frysinger2016-01-253-3/+11
| | | | | | | | | | | When building with -gsplit-dwarf, the generated dwo files are left behind even when you `make clean`. Fix that up. BUG=chromium:579384 TEST=`./configure CXXFLAGS='-O -gsplit-dwarf' && make && make clean` removes dwo files now R=mark@chromium.org Review URL: https://codereview.chromium.org/1633893002 .
* test: stop building tons of copies of gtest/gmock objectsMike Frysinger2016-01-252-1667/+378
| | | | | | | | | | | | | | | | | | | | The current makefile ends up building ~17 copies of the gtest/gmock objects -- every test that refers to the cc files directly will have its own copy. This is because the build doesn't know if CFLAGS and such have changed between each target (and in some cases, they are). Create a new libtesting.a target to hold a single copy of these files and update all of the unittests to link that in. This speeds up the build a bit especially when you aren't using ccache. This does mean we can no longer build gtest/gmock with unique flags, but we haven't wanted that so far, so clearly no one wants that. BUG=chromium:579384 TEST=`make check` passes R=thestig@chromium.org Review URL: https://codereview.chromium.org/1633903002 .
* linux_client_unittest_shlib: fix cleaningMike Frysinger2016-01-252-22/+35
| | | | | | | | | | | | The EXTRA_PROGRAMS knob does not automatically trigger clean up of targets listed in it. Use CLEANFILES so we make sure `make clean` will delete the linux_client_unittest_shlib lib. BUG=chromium:579384 TEST=`make check` passes R=mark@chromium.org Review URL: https://codereview.chromium.org/1618593002 .
* tests: unify duplicate build settingsMike Frysinger2016-01-252-260/+65
| | | | | | | | | | | Rather than copy & paste the same set of -I flags many times over, create a single varible to hold it. BUG=chromium:579384 TEST=`make check` passes R=thestig@chromium.org Review URL: https://codereview.chromium.org/1613763002 .
* DEPS: roll test libs up to the latest releaseMike Frysinger2016-01-251-3/+3
| | | | | | | | BUG=chromium:579384 TEST=`make check` passes R=thestig@chromium.org Review URL: https://codereview.chromium.org/1607413003 .
* Revert "Fix deprecatation warning when building for recent SDKs on iOS/OS X."Olivier Robin2016-01-212-62/+10
| | | | | | | | | | | | | | | | | | | | This reverts CL https://codereview.chromium.org/1563223004/ This reverts commit 7cc0d8562bf8b20b88cc941ba72593cb7230ecf6. CL 1563223004 introduces two bugs on iOS. - Encoding the minidump name with extra percent causing crash server to fail processing the file. - Using a released pointer causing random crashes on upload. The data, resp, err pointers returned in the NSURLSession completion handler is released at the end of the block. When used later (to get the crash ID), it causes a crash. BUG=569158 R=blundell@chromium.org, mark@chromium.org Review URL: https://codereview.chromium.org/1619603002 . Patch from Olivier Robin <olivierrobin@chromium.org>.
* exploitability_unittest: fix warningsMike Frysinger2016-01-211-7/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The std::getline function always returns its first arg (which is an iostream object) and cannot return anything else. Thus, testing its value is pointless, and even leads to build errors w/at least gcc-5 due to gtest ASSERT_TRUE funcs only taking bool types: .../exploitability_unittest.cc: In member function 'virtual void {anonymous}::ExploitabilityLinuxUtilsTest_DisassembleBytesTest_Test::TestBody()': .../exploitability_unittest.cc:200:136: error: no matching function for call to 'testing::AssertionResult::AssertionResult(std::basic_istream<char>&)' In file included from .../breakpad_googletest_includes.h:33:0, from .../exploitability_unittest.cc:35: .../gtest.h:262:12: note: candidate: testing::AssertionResult::AssertionResult(bool) Since we know this never fails, simply drop the ASSERT_TRUE usage. The next line already checks the content of the buffer we read. Further on in the file, we hit some signed warnings: In file included from .../breakpad_googletest_includes.h:33:0, from .../exploitability_unittest.cc:35: .../gtest.h: In instantiation of 'testing::AssertionResult testing::internal::CmpHelperEQ(const char*, const char*, const T1&, const T2&) [with T1 = long unsigned int; T2 = int]': .../gtest.h:1484:23: required from 'static testing::AssertionResult testing::internal::EqHelper<lhs_is_null_literal>::Compare(const char*, const char*, const T1&, const T2&) [with T1 = long unsigned int; T2 = int; bool lhs_is_null_literal = false]' .../exploitability_unittest.cc:241:289: required from here .../gtest.h:1448:16: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare] if (expected == actual) { This is because we compare the register value (a uint64_t) directly to an integer constant, and those are signed by default. Stick a U suffix on them to fix things up. BUG=chromium:579384 TEST=`make check` passes R=ivanpe@chromium.org Review URL: https://codereview.chromium.org/1611763002 .
* Fix usage of snprintf for MSVCPavel Labath2016-01-197-17/+50
| | | | | | | | | | | | | | Older versions of MSVC don't have a snprintf functions. Some files were already working around that, but not all of them. Instead of copying the logic into every file, I centralize it into a new stdio.h wrapper file and make other files include that. BUG= R=mark@chromium.org Review URL: https://codereview.chromium.org/1602563003 . Patch from Pavel Labath <labath@google.com>.
* breakpad: fix unittest failure when building with clang.Mike Frysinger2016-01-151-1/+1
| | | | | | | | | | | | | | | In C/C++, the result of signed integer overflow is undefined. The expression "base + size - 1" is parsed as "(base + size) - 1", and "base + size" can overflow even if "base + (size - 1)" <= INT_MAX. See http://g/c-compiler-chrome/461JohPKakE/JI3rEBg6FwAJ for more. BUG=None TEST='CC=clang CXX=clang++ ./configure && make check' R=vapier@chromium.org Review URL: https://codereview.chromium.org/1591793002 .
* README: add more links to breakpad sitesMike Frysinger2016-01-141-4/+6
| | | | | | R=andybons@chromium.org Review URL: https://codereview.chromium.org/1583163003 .
* Move core2md objects to libbreakpad_client.aMike Frysinger2016-01-132-20/+21
| | | | | | | | | This CL exports LinuxCoreDumper and ElfCoreDump in the client library. The ARC collector, which is an alternative to core2md optimized for large core dumps, needs these symbols for core dump parsing and conversion to minidump. BUG=http://b/25773929 TEST=nm src/client/linux/libbreakpad_client.a | grep LinuxCoreDumper Review URL: https://codereview.chromium.org/1576053002 .
* libdisasm: Remove inclusion of windows.hPavel Labath2016-01-121-4/+0
| | | | | | | | | | | | | | windows.h defines exception_code as a macro, which conflicts with our use of the identifier in exception records. It appears that this particular include of windows.h is not needed, so instead of undefining the macro, I simply delete the include. Build tested with MSVC 2013. BUG= R=mark@chromium.org Review URL: https://codereview.chromium.org/1579623004 . Patch from Pavel Labath <labath@google.com>.