aboutsummaryrefslogtreecommitdiff
path: root/Makefile.am
Commit message (Collapse)AuthorAgeFilesLines
* Add support for Linux memory mapping stream and remove ELF header usageLiu.andrew.x@gmail.com2015-07-281-3/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | when checking exploitability rating. Linux minidumps do not support MD_MEMORY_INFO_LIST_STREAM, meaning the processor cannot retrieve its memory mappings. However, it has its own stream, MD_LINUX_MAPS, which contains memory mappings specific to Linux (it contains the contents of /proc/self/maps). This CL allows the minidump to gather information from the memory mappings for Linux minidumps. In addition, exploitability rating for Linux dumps now use memory mappings instead of checking the ELF headers of binaries. The basis for the change is that checking the ELF headers requires the minidumps to store the memory from the ELF headers, while the memory mapping data is already present, meaning the size of a minidump will be unchanged. As a result, of removing ELF header analysis, two unit tests have been removed. Arguably, the cases that those unit tests check do not merit a high exploitability rating and do not warrant a solid conclusion that was given earlier. R=ivanpe@chromium.org Review URL: https://codereview.chromium.org/1251593007 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1476 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add address and reason for IN_PAGE_ERROR.mark@chromium.org2015-04-101-0/+5
| | | | | | | | | | | | | | ACCESS_VIOLATION and IN_PAGE_ERROR both specify read/write/dep flags and address. ACCESS_VIOLATION currently reports these, but IN_PAGE_ERROR does not. This change makes IN_PAGE_ERROR report this information as well, and also the additional NTSTATUS value for the underlying cause. Patch by bungeman@chromium.org Review URL: https://breakpad.appspot.com/1794002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1441 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Introduce microdump_stackwalk comand line executableprimiano@chromium.org2014-11-251-5/+43
| | | | | | | | | | | | | | | This introduces the microdump_stackwalk binary which takes advantage of the MicrodumpProcessor to symbolize microdumps. Its operation is identical to the one of minidump_stackwalk. This CL, in fact, is also refactoring most of the common bits into stackwalk_common. BUG=chromium:410294 R=mmandlis@chromium.org Review URL: https://breakpad.appspot.com/4704002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1405 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix microdump_writer and add unittest.primiano@chromium.org2014-11-251-0/+4
| | | | | | | | | | | | This adds some small fixes to the microdump writer and introduces a unittest. BUG=chromium:410294 R=mmandlis@chromium.org Review URL: https://breakpad.appspot.com/2814002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1404 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Microdump processing implementationmmandlis@chromium.org2014-11-191-12/+39
| | | | | | | | | | | | According to design document: http://goo.gl/B3wIRN This is an initial implementation version, support ARM architecture only. BUG=chromium:410294 R=primiano@chromium.org Review URL: https://breakpad.appspot.com/5714003 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1403 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Introduce microdump writer class.primiano@chromium.org2014-10-281-0/+2
| | | | | | | | | | | | | | | | | | | Microdumps are a very lightweight variant of minidumps. They are meant to dump a minimal crash report on the system log (logcat on Android), containing only the state of the crashing thread. This is to deal with cases where the user has opted out from crash uploading but we still want to generate meaningful information on the device to pull a stacktrace for development purposes. Conversely to conventional stack traces (e.g. the one generated by Android's debuggerd or Chromium's base::stacktrace) microdumps do NOT require unwind tables to be present in the target binary. This allows to save precious binary size (~1.5 MB for Chrome on Arm, ~10 MB on arm64). More information and design doc on crbug.com/410294 BUG=chromium:410294 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1398 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Microdumps: refactor out common parts of minidump_writer.ccprimiano@chromium.org2014-10-011-1/+7
| | | | | | | | | | | | | | | | | | | | This change is a pure refactoring of the common bits of minidump_writer.cc that will be shared soon with the upcoming microdump_writer.cc. In particular, this CL is extracting the following classes: - ThreadInfo: handles the state of the threads in the crashing process. - RawContextCPU: typedef for arch-specific CPU context structure. - UContextReader: Fills out a dump RawContextCPU structure from the ucontext struct provided by the kernel (arch-dependent). - SeccompUnwinder: cleans out the stack frames of the Seccomp sandbox on the supported architectures. - MappingInfo: handles information about mappings BUG=chromium:410294 R=mmandlis@chromium.org Review URL: https://breakpad.appspot.com/4684002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1388 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Introduce stub microdump processor classes.mmandlis@chromium.org2014-09-101-0/+16
| | | | | | | | | | | | | Adds the interfaces for MicrodumpProcessor (very similar to MinidumpProcessor) and corresponding unittest stubs. These stubs are required for multi-side integration and to start rolling the updated processor library into the dependent projects. BUG=chromium:410294 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1372 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Refactoring in preparation for microdump processingmmandlis@chromium.org2014-09-081-0/+17
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1370 4c0a9323-5329-0410-9bdc-e9ce6186880e
* make "make install" also install headers and pkgconfig filesvapier@chromium.org2014-08-271-0/+32
| | | | | | | | | | See https://code.google.com/p/google-breakpad/issues/detail?id=219 R=vapier@chromium.org Review URL: https://breakpad.appspot.com/1114002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1364 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Linux: Check the CRC32 of the debug link file in the symbol dumper.thestig@chromium.org2014-04-231-0/+3
| | | | | | | | R=mark@chromium.org Review URL: https://breakpad.appspot.com/1644002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1320 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Renaming file COPYING to LICENSE and appending the disclaimer from ↵ivan.penkov@gmail.com2014-02-271-1/+4
| | | | | | | | | | src/common/convert_UTF.h to LICENSE. R=mark@chromium.org Review URL: https://breakpad.appspot.com/1174003 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1285 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Misc Android-related fixes.digit@chromium.org2013-12-131-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | - src/common/android/testing/mkdtemp.h: Fixes a compilation error when using the (recent) NDK r9b, see comments in the source file for details. - android/test-driver, Makefile.am, Makefile.in: Autotools 1.12 changed the way tests are run during "make check" so add a new "custom test driver" to run tests on Android, and modify Makefile.am / Makefile.in accordingly. Otherwise, 'make check' tried to run the tests on the host. - android/test-shell.sh: Allow several tests to run in parallel on the device, by creating a custom test directory for each test process. This allows running "make check -j8" reliably. - src/common/linux/file_id_unittest.cc: Disable the SelfStrip test on Android, since it assumes a 'strip' executable is available on the target system where the test runs. BUG=NONE R=mark@chromium.org, ted.mielczarek@gmail.com TEST=android/run-checks.sh --ndk-dir=/path/to/android-ndk-r9b Review URL: https://breakpad.appspot.com/904003 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1259 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Process minidumps generated on ARM64 in iOS apps.mark@chromium.org2013-11-231-0/+28
| | | | | | | | | | | Patch by Colin Blundell <blundell@chromium.org> BUG=542 Review URL: https://breakpad.appspot.com/704002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1236 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add simple exploitability analysis for Linux crashes.mattdr.breakpad@gmail.com2013-10-291-0/+7
| | | | | | | | https://breakpad.appspot.com/622002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1226 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix the Android/MIPS build.digit@chromium.org2013-09-251-1/+7
| | | | | | | | | | | | | | | | | | | | | | | This patch fixes the build for Android on MIPS when using the latest official Android NDK (r9): - Update src/common/android/include/elf.h to add a missing definition for SHT_MIPS_DWARF. - Add src/common/android/include/sgidefs.h required by LSS when compiling for MIPS. - Update android/run-checks.sh to work properly with the --abi=mips option. All tests were passed succesfully with an emulator system image running Android 4.2. - Update other Android-specific files. R=Petar.Jovanovic@imgtec.com, mark@chromium.org Review URL: https://breakpad.appspot.com/633002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1216 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Adding support for mips.gordana.cmiljanovic@imgtec.com2013-09-111-0/+23
| | | | | | | | | | | | | Support for mips cpu is added to all breakapad targets including unittests. BUG=none TEST=unittests Review URL: https://breakpad.appspot.com/614002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1212 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Create StackwalkerAddressList.chrisha@chromium.org2013-08-231-0/+23
| | | | | | | | | | | | | | This creates a pseudo stack-walker which does nothing except symbolize an already walked array of addresses. Will be used for adding 'additional stack trace' support to MinidumpProcessor. R=mark@chromium.org, ivan.penkov@gmail.com Review URL: https://breakpad.appspot.com/620002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1207 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Improve ARM CPU info reporting.digit@chromium.org2013-04-241-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Add PPC64 support to breakpad processor.thestig@chromium.org2013-04-121-0/+6
| | | | | | | | A=Jia Ji <jijia@google.com> Original review: https://breakpad.appspot.com/557002/ Review URL: https://breakpad.appspot.com/558002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1147 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix remaining processor/scoped_ptr.h references after r1096.thestig@chromium.org2013-01-221-1/+1
| | | | | | Review URL: https://breakpad.appspot.com/516002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1103 4c0a9323-5329-0410-9bdc-e9ce6186880e
* The Google-breakpad processor rejects (ignores) context records that lack ↵ivan.penkov@gmail.com2012-12-081-4/+5
| | | | | | | | | | | | CPU type information in their context_flags fields. Such context records can be valid (e.g. contexts captured by ::RtlCaptureContext). http://code.google.com/p/google-breakpad/issues/detail?id=493 http://breakpad.appspot.com/500002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1088 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Cleaning up google-breakpad source code of signed-unsigned comparison warningsivan.penkov@gmail.com2012-11-211-1/+2
| | | | | | | | http://breakpad.appspot.com/488002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1083 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Refactor the logic of resolving source line info into helper class.SiyangXie@gmail.com2012-10-101-0/+6
| | | | | | | http://breakpad.appspot.com/459002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1068 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix the Android unit tests.digit@chromium.org2012-10-091-1/+5
| | | | | | | | | | | | | | | | | | | - One of the unit test binaries refused to link due to missing linker flags. - The WriteDSODebug() function now works on Android, so do not special-case it anymore. - Ensure android/run-checks.sh will complain properly if the client unit test suite fails on Android. It used to consider that such failures were acceptable. Note that it still considers failures when running the tools and processor test suite on the device normal (fixing this is a lot harder, and these parts of Breakpad typically never run on a device, but on the host). Review URL: https://breakpad.appspot.com/482002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1066 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Minidumps never contain MD_LINUX_DSO_DEBUG info when breakpad is in a shared ↵ted.mielczarek@gmail.com2012-09-191-8/+30
| | | | | | | | | library A=Mike Hommey <mh@glandium.org> R=ted at http://breakpad.appspot.com/422002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1044 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix compilation of crash_generation_server.cc, and add it to the client ↵ted.mielczarek@gmail.com2012-09-171-0/+1
| | | | | | | | library sources so it actually gets built. R=mark at https://breakpad.appspot.com/446003/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1036 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix compiler warnings on Ubuntu Precise. Pull in gmock r408 in the process.thestig@chromium.org2012-09-101-20/+44
| | | | | | | BUG=490 Review URL: https://breakpad.appspot.com/448002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1034 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add custom getcontext() implementation for Android.digit@chromium.org2012-08-311-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | This adds a minimalistic implementation of getcontext() for Android/ARM and Android/x86. The provided code is in assembly and only implements the bare minimum required by Breakpad to get the current processor state. Note that: - The FPU state is not saved to the ucontext_t on ARM. (that's actually the main difference with a normal getcontext() implementation). This is normal. On Linux/ARM, such state must be obtained with PTRACE_GETVFPREGS instead. This will be implemented in a future patch. - On x86, only the 'regular' FPU state is saved, to mimic the GLibc/i386 implementation. The state of SSE/SSE2/etc registers is not part of the upstream getcontext() implementation. Review URL: https://breakpad.appspot.com/444002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1024 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix 'make check' for Androiddigit@chromium.org2012-08-311-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch allows 'make check' to work when performing an Automake-based build of Breakpad for Android. This requires to have an Android device connected, and the 'adb' tool in your path. You can test that with something like: configure --host=arm-linux-androideabi make check This is achieved by adding a new small shell script under android/test-shell.sh, which is invoked by the Makefile (see TESTS_ENVIRONMENT definition in Makefile.am). By default, this runs all unit tests, including those for the processor and tools (which normally never run on an Android device). Note that the test suites fails (e.g. 11 failing tests for the client library). This will be addressed in later patches. + Modify android/run-checks.sh to run the client library test suite on the device by default. + Add a new option (--all-tests) to android/run-checks.sh which forces it to run the unit test suite for the host binaries, and the full suite on the Android device. + Update README.ANDROID appropriately. Review URL: https://breakpad.appspot.com/441002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1023 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix Breakpad unit tests build for Android.digit@chromium.org2012-08-231-2/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch contains the source-related fixes to ensure that the Breakpad unit tests build properly when targetting Android. Calling 'make check' still fails because there is still no way to run the unit test programs on a device. This will be addressed by a future patch. Important notes: - You must target Android API level 9 (Gingerbread) or higher to build the unit tests. This requirement is due to the current GTest revision used in the breakpad source tree. - This patch adds headers providing inlined C library functions missing from the NDK (see src/common/android/testing). They are inlined to avoid modifying Makefile.am and other build files. - Similarly, the <wchar.h> header-fix under src/common/android/testing/include is only required by GTest's current revision. E.g. it's not needed when building Breakpad as part of Chromium which uses a more up-to-date revision. Review URL: https://breakpad.appspot.com/439002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1020 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Improve Android supportdigit@chromium.org2012-08-211-0/+4
| | | | | | | | | | | | | | | | | | This patch remove many Android-specific #ifdefs from the Breakpad source code. This is achieved by providing "fixed-up" platform headers (e.g. <signal.h> or <sys/user,h>), in the new directory src/common/android/include/, which masks differences between the NDK and GLibc headers. The old "android_link.h" and "android_ucontext.h" are moved and renamed. This also requires putting this directory as the first include path during Android-hosted builds, hence the modification of Makefile.am and configure.ac Review URL: https://breakpad.appspot.com/434002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1017 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Adding a way to create an ExceptionHandler that takes in a file descriptorjcivelli@chromium.org2012-08-091-0/+4
| | | | | | | | | | | | where the minidump should be created, without the need of opening any other file. BUG=None TEST=Run unit-tests. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1007 4c0a9323-5329-0410-9bdc-e9ce6186880e
* SORRY. It seems I've screwed up my commit for ↵digit@chromium.org2012-08-031-4/+8
| | | | | | | | | | http://breakpad.appspot.com/411002/, since revision 1001 only contains the new src/client/linux/linux_libc_support.cc and none of the other required files. I'm not sure what happened, but I'm re-uploading the patch has another issue. Review URL: https://breakpad.appspot.com/426002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1002 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Move some ELF-handling bits from file_id.cc to elfutils.{h,cc}ted.mielczarek2012-07-181-0/+6
| | | | | | R=mark at https://breakpad.appspot.com/392002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@986 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fixing various compiler warnings and applying minor tweaks to allow running ofivan.penkov@gmail.com2012-07-021-0/+11
| | | | | | | | | | the mojority of breakpad unittests in Google. http://breakpad.appspot.com/399002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@978 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Make Breakpad build with DSO linking on newer versions of Fedora/Ubuntu.thestig@chromium.org2012-04-191-2/+2
| | | | | | | | | BUG=444 TEST=compiles Kudos to pkwarren at geeee mail.com for coming up with this 5 months ago. Review URL: https://breakpad.appspot.com/382001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@955 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add missing log.o dependency to linux_client_unittest target.benchan@chromium.org2012-04-031-0/+1
| | | | | | | | | | | r945 introduced src/client/linux/log/log.c, which is used in exception_handler.cc, and thus should be added as a dependency in the linux_client_unittest target. TEST=Compile and run unit tests on Linux. Review URL: https://breakpad.appspot.com/373001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@946 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Changes to get the breakpad client compiling and running on Android usingmark@chromium.org2012-04-031-3/+5
| | | | | | | | | | | ndk-7b. Patch by Carlos Valdivia <carlosvaldivia@google.com> Review URL: https://breakpad.appspot.com/363001/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@945 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add partial unit tests for dwarf2reader::CompilationUnit.jimblandy2012-02-011-0/+1
| | | | | | | | This is really incomplete --- it's just what's needed to get started testing support for the DWARF 4 attribute forms. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@910 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Implement core dump to minidump conversion.benchan@chromium.org2012-01-191-20/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch is part of a bigger patch that helps merging the breakpad code with the modified version in Chromium OS. Specifically, this patch makes the following changes: 1. Turn the LinuxDumper class into a base class and move ptrace related code into a new derived class, LinuxPtraceDumper. 2. Add a LinuxCoreDumper class, which is derived from LinuxDumper, to extract information from a crashed process via a core dump file instead of ptrace. 3. Add a WriteMinidumpFromCore function to src/client/linux/minidump_writer/minidump_writer.h, which uses LinuxCoreDumper to extract information from a core dump file. 4. Add a core2md utility, which simply wraps WriteMinidumpFromCore, for converting a core dump to a minidump. BUG=455 TEST=Tested the following: 1. Build on 32-bit and 64-bit Linux with gcc 4.4.3 and gcc 4.6. 2. Build on Mac OS X 10.6.8 with gcc 4.2 and clang 3.0 (with latest gmock). 3. All unit tests pass. 4. Run Chromium OS tests to test core2md. Review URL: http://breakpad.appspot.com/343001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@905 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Build LinuxLibcSupportTest and make it pass.thestig@chromium.org2012-01-111-0/+1
| | | | | | Review URL: http://breakpad.appspot.com/341001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@903 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add utilities for processing Linux core dump files.benchan@chromium.org2012-01-071-1/+9
| | | | | | | | | | | | | | | | | | | | | This patch is part of a bigger patch that helps merging the breakpad code with the modified version in Chromium OS. Specifically, this patch makes the following changes: 1. Add an ElfCoreDump class for processing Linux core dump files, which will later be used to implement the core dump to minidump conversion. 2. Add a CrashGenerator class for generating a crash with a core dump file for testing the functionalities of ElfCoreDump. 3. Move some utility functions for reading/writing files to file_utils.h. BUG=455 TEST=Tested the following: 1. Build on 32-bit and 64-bit Linux with gcc 4.4.3 and gcc 4.6. 2. Build on Mac OS X 10.6.8 with gcc 4.2 and clang 3.0 (with latest gmock). 3. All unit tests pass. Review URL: http://breakpad.appspot.com/337001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@900 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Replace MMappedRange with MinidumpMemoryRange.benchan@chromium.org2011-12-211-1/+15
| | | | | | | | | | | | | | | | | | | | | | | This patch is part of a bigger patch that helps merging the breakpad code with the modified version in Chromium OS. The MemoryRange class was added in r895 (http://breakpad.appspot.com/332001), which is largely based on MMappedRange but generalized to be used in other code. However, MemoryRange does not support minidump data structures. This patch adds a MinidumpMemoryRange class that extends MemoryRange to handle minidump data structures, which can then replace MMappedRange. As with MemoryRange, MinidumpMemoryRange is unit tested. BUG=455 TEST=Tested the following: 1. Build on 32-bit and 64-bit Linux with gcc 4.4.3 and gcc 4.6. 2. Build on Mac OS X 10.6.8 with gcc 4.2 and clang 3.0 (with latest gmock). 3. All unit tests pass. 4. Run minidump-2-core to covnert a minidump file to a core file. Review URL: http://breakpad.appspot.com/335001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@898 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Replace readlink calls with a safer version that guarantees NULL-termination.benchan@chromium.org2011-12-211-1/+6
| | | | | | | | | | | | | | | | | | | | | This patch is part of a bigger patch that helps merging the breakpad code with the modified version in Chromium OS. Specifically, this patch makes the following changes: 1. Add a SafeReadLink function that wraps sys_readlink() to resolve a symbolic link but guarantees the result is NULL-terminated on success. 2. Refactor other source code to use SafeReadLink instead of readlink() or sys_readlink(). BUG=455 TEST=Tested the following: 1. Build on 32-bit and 64-bit Linux with gcc 4.4.3 and gcc 4.6. 2. Build on Mac OS X 10.6.8 with gcc 4.2 and clang 3.0 (with latest gmock). 3. All unit tests pass. 4. Run minidump-2-core to covnert a minidump file to a core file. Review URL: http://breakpad.appspot.com/334001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@896 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Refactor code in preparation of merging with the fork in Chromium OS.benchan@chromium.org2011-12-161-2/+9
| | | | | | | | | | | | | | | | | | | | | | This patch is part of a bigger patch that helps merging the breakpad code with the modified version in Chromium OS. Specifically, this patch makes the following changes: 1. Add a MemoryRange class for encapsulating and checking read access to a contiguous range of memory. 2. Add a MemoryMappedFile class for mapping a file into memory for read-only access. 3. Refactor other source code to use MemoryMappedFile. BUG=455 TEST=Tested the following: 1. Build on 32-bit and 64-bit Linux with gcc 4.4.3 and gcc 4.6. 2. Build on Mac OS X 10.6.8 with gcc 4.2 and clang 3.0 (with latest gmock). 3. All unit tests pass. 4. Run minidump-2-core to covnert a minidump file to a core file. Review URL: http://breakpad.appspot.com/332001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@895 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Rename md5.c to md5.cc, put its contents inside the google_breakpad namespace.ted.mielczarek2011-11-181-2/+2
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@887 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Remove NetworkSourceLine{Resolver,Server} and related code. It never wound ↵ted.mielczarek2011-07-071-105/+2
| | | | | | | | up being useful enough to use in production, so let's drop the maintenence burden R=jessicag at http://breakpad.appspot.com/292001/show git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@795 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add some unit tests for Linux WriteSymbolFileted.mielczarek2011-07-061-0/+3
| | | | | | | | | | | This patch adds synth_elf::{StringTable,SymbolTable,ELF} classes to produce in-memory ELF files to properly test the Linux symbol dumping code. It also uses those classes to add some basic tests for the WriteSymbolFile function. R=jimb at http://breakpad.appspot.com/277001/show git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@794 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Dump PUBLIC + CFI records from libraries without debug info on Linux, use ↵ted.mielczarek2011-07-061-0/+5
| | | | | | | | .dynsym for symbol names if there are no usable debug symbols. R=jimb at http://breakpad.appspot.com/275001/show git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@793 4c0a9323-5329-0410-9bdc-e9ce6186880e