aboutsummaryrefslogtreecommitdiff
path: root/Makefile.am
AgeCommit message (Collapse)Author
2012-04-03Add missing log.o dependency to linux_client_unittest target.benchan@chromium.org
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
2012-04-03Changes to get the breakpad client compiling and running on Android usingmark@chromium.org
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
2012-04-02google-breakpad: Merge with upstream breakpad r942Ben Chan
BUG=none TEST=Verified the following: 1. emerge google-breadpad for x86-generic, arm-generic and amd64-generic 2. cros_run_unit_tests google-breakpad for x86-generic and amd64-generic 3. Run the following autotest tests on a Cr48: - logging_CrashSender - logging_UserCrash Change-Id: I3dc44e5e24b6122647101d77ac33c7cd84e3f149
2012-02-01Add partial unit tests for dwarf2reader::CompilationUnit.jimblandy
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
2012-01-19google-breakpad: uprev breakpad to r905Ben Chan
The Chromium OS changes to google-breakpad have been upstreamed (r905). This CL pulls and merges from the upstream branch. BUG=chromium-os:22042 TEST=Verified the following: 1. emerge google-breadpad for x86-generic, arm-generic and amd64-generic 2. cros_run_unit_tests google-breakpad for x86-generic and amd64-generic 3. Run the following autotest tests on a Cr48: - logging_CrashSender - logging_UserCrash Change-Id: I865193573ca3ac78f1d85abfd848686a3e3510e3
2012-01-19Implement core dump to minidump conversion.benchan@chromium.org
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
2012-01-11Build LinuxLibcSupportTest and make it pass.thestig@chromium.org
Review URL: http://breakpad.appspot.com/341001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@903 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-01-09google-breakpad: uprev breakpad to r901Ben Chan
BUG=none TEST=Verified the following: 1. emerge google-breadpad for x86-generic, arm-generic and amd64-generic 2. cros_run_unit_tests google-breakpad for x86-generic and amd64-generic 3. Run the following autotest tests on a Cr48: - logging_CrashSender - logging_UserCrash Change-Id: I22d360490cec8119da285314554bbaf398846ecc
2012-01-07Add utilities for processing Linux core dump files.benchan@chromium.org
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
2011-12-21Replace MMappedRange with MinidumpMemoryRange.benchan@chromium.org
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
2011-12-21Replace readlink calls with a safer version that guarantees NULL-termination.benchan@chromium.org
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
2011-12-16Refactor code in preparation of merging with the fork in Chromium OS.benchan@chromium.org
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
2011-11-30google-breakpad: uprev breakpad to 891Ben Chan
BUG=chromium-os:23605 TEST=Verified the following: 1. emerge google-breadpad for x86-generic, arm-generic and amd64-generic 2. cros_run_unit_tests --board=x86-generic -p google-breakpad 3. Run the following autotest tests on a Cr48: - logging_CrashSender - logging_UserCrash Change-Id: Idee59cd917dbf3250475919b5b1585eaf712922f
2011-11-29google-breakpad: Relocate patched files in core2md.Ben Chan
This CL makes the following changes: 1. Relocate patched files from src/tools/linux/core2md to src/client/linux/minidump_writer in preparation for merging the changes back to upstream. 2. Modify Makefile.am and configure.ac accordingly and add --disable-core2md to configure to disable the compilation of core2md. 3. Fix a bug in MinidumpWriter::WriteMappings() that fails the MinidumpWriterTest.MappingInfo unit test. BUG=chromium-os:23555 TEST=Verified the following: 1. emerge google-breadpad for x86-generic, arm-generic and amd64-generic 2. cros_run_unit_tests --board=x86-generic -p google-breakpad 3. Run the following autotest tests on a Cr48: - logging_CrashSender - logging_UserCrash Change-Id: If7470382ffdd048ce1c88d8f65cf503dca71893a Reviewed-on: https://gerrit.chromium.org/gerrit/12233 Reviewed-by: Michael Krebs <mkrebs@chromium.org> Tested-by: Ben Chan <benchan@chromium.org>
2011-11-18Rename md5.c to md5.cc, put its contents inside the google_breakpad namespace.ted.mielczarek
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@887 4c0a9323-5329-0410-9bdc-e9ce6186880e
2011-11-07google-breakpad: separate out non-arm-friendly md2coreKen Mixter
Change-Id: I436cdae49e33b62336d2dacd437e235687f9a986
2011-07-07Remove NetworkSourceLine{Resolver,Server} and related code. It never wound ↵ted.mielczarek
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
2011-07-06Add some unit tests for Linux WriteSymbolFileted.mielczarek
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
2011-07-06Dump PUBLIC + CFI records from libraries without debug info on Linux, use ↵ted.mielczarek
.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
2011-02-28Make programs in src/tools/linux build via the automake build systemted.mielczarek
R=jimb at http://breakpad.appspot.com/265001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@775 4c0a9323-5329-0410-9bdc-e9ce6186880e
2011-01-19Add module_serializer.cc to libbreakpad.a. Not sure why it wasn't there in ↵ted.mielczarek
the first place. Trivial patch, landing without review. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@759 4c0a9323-5329-0410-9bdc-e9ce6186880e
2010-10-21FastSourceLineResolver implementation for optimization purpose.SiyangXie@gmail.com
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@719 4c0a9323-5329-0410-9bdc-e9ce6186880e
2010-10-15Add static version of map wrappers and corresponding serializers.SiyangXie@gmail.com
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@714 4c0a9323-5329-0410-9bdc-e9ce6186880e
2010-10-07Refactor source line resolver, add interface in supplier and resolver.SiyangXie@gmail.com
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@711 4c0a9323-5329-0410-9bdc-e9ce6186880e
2010-10-05ditch libtool, only build static libsted.mielczarek
R=mark at http://breakpad.appspot.com/210001/show git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@709 4c0a9323-5329-0410-9bdc-e9ce6186880e
2010-10-05add a --disable-processor configure arg to skip building processor libs and ↵ted.mielczarek
just build client libs R=nealsid at http://breakpad.appspot.com/209001/show git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@708 4c0a9323-5329-0410-9bdc-e9ce6186880e
2010-10-01Added libdisasm to the repository. This library is no longer under ↵cdn@chromium.org
development so there is no reason not to keep it locally. Implemented a basic disassembler which can be used to scan bytecode for interesting conditions. This should be pretty easy to add to for things other than exploitability if there is a desire. This also adds several tests to the windows exploitability ranking code to take advantage of the disassembler for x86 code. BUG=None TEST=DisassemblerX86Test.* Review URL: http://breakpad.appspot.com/203001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@705 4c0a9323-5329-0410-9bdc-e9ce6186880e
2010-09-29add top_srcdir/src to CPPFLAGS for all unittests to fix compilation of ↵ted.mielczarek
unittests when configuring outside the srcdir git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@701 4c0a9323-5329-0410-9bdc-e9ce6186880e
2010-09-23Write a window of memory around the instruction pointer from the crashing ↵ted.mielczarek
thread to the minidump on OS X. R=nealsid at http://breakpad.appspot.com/200001/show git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@699 4c0a9323-5329-0410-9bdc-e9ce6186880e
2010-09-22Added the base exploitability module for windows. This only adds the very ↵cdn@chromium.org
basic exception type based analysis for now. BUG=NONE TEST=MinidumpProcessorTest.TestExploitilityEngine Review URL: http://breakpad.appspot.com/189001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@698 4c0a9323-5329-0410-9bdc-e9ce6186880e
2010-09-20Add StaticMap implementation and unittest to breakpad.SiyangXie@gmail.com
StaticMap is a fundamental component class for in-memory representation of loaded symbol. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@694 4c0a9323-5329-0410-9bdc-e9ce6186880e
2010-09-17Write a window of memory around the instruction pointer from the crashing ↵ted.mielczarek
thread to the minidump on Linux. R=nealsid at http://breakpad.appspot.com/194001/show git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@693 4c0a9323-5329-0410-9bdc-e9ce6186880e
2010-08-31Issue 378 - Don't compile Linux client libraries on non-Linux systemsted.mielczarek
R=nealsid at http://breakpad.appspot.com/173001/show git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@679 4c0a9323-5329-0410-9bdc-e9ce6186880e
2010-08-25Update Makefile.am from r662 (which only updated Makefile.in)ted.mielczarek
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@669 4c0a9323-5329-0410-9bdc-e9ce6186880e
2010-04-27Breakpad test support: Move test_assembler.{h,cc} from src/processor to ↵jimblandy
src/common. The google_breakpad::TestAssembler classes are used in both the processor's and the Linux dumper's test suites, and will soon be used in the Mac dumper's tests as well. This patch moves their source files from src/processor to src/common. a=jimblandy, r=thestig git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@574 4c0a9323-5329-0410-9bdc-e9ce6186880e
2010-04-08provide a network source line resolver + server. r=mark,jimb at ↵ted.mielczarek
http://breakpad.appspot.com/36001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@569 4c0a9323-5329-0410-9bdc-e9ce6186880e
2010-03-16Breakpad processor: Support AMD64 stack unwinding driven by DWARF CFI.jimblandy
This adds support for 'STACK CFI' records (DWARF CFI) to the AMD64 stack walker. This is necessary for the stack trace to include any frames other than the youngest. Unit tests are included. a=jimblandy, r=mmentovai git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@554 4c0a9323-5329-0410-9bdc-e9ce6186880e
2010-03-16Breakpad: Support DWARF CFI-driven stack walking on ARM.jimblandy
This patch allows the Breakpad minidump processor to use data from STACK CFI records to generate stack traces for the ARM processor. In the symbol dumper, we need a table mapping DWARF CFI register numbers to their names: STACK CFI records refer to registers by name. In the processor, we expand StackwalkerARM::GetCallerFrame to see if there are STACK CFI records covering the callee, and then use those to recover the caller's register values. There's no good reason the ARM walker couldn't use the SimpleCFIWalker interface declared in cfi_frame_info.h. Unfortunately, that interface assumes that one can map register names to member pointers of the raw context type, while MDRawContextARM uses an array to hold the registers' values: C++ pointer-to-member types can't refer to elements of member arrays. So we have to write out SimpleCFIWalker::FindCallerRegisters in StackwalkerARM::GetCallerFrame. We define enum MDARMRegisterNumbers in minidump_cpu_arm.h, for convenience in referring to certain ARM registers with dedicated purposes, like the stack pointer and the PC. We define validity flags in StackFrameARM for all the registers, since CFI could theoretically recover any of them. In the same vein, we expand minidump_stackwalk.cc to print the values of all valid callee-saves registers in the context --- and use the proper names for special-purpose registers. We provide unit tests that give full code and branch coverage (with minor exceptions). We add a testing interface to StackwalkerARM that allows us to create context frames that lack some register values. a=jimblandy, r=mmentovai git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@553 4c0a9323-5329-0410-9bdc-e9ce6186880e
2010-03-16Breakpad: Add minidump processor support for DWARF Call Frame Information.jimblandy
Add a CFIFrameInfo class (named for symmetry with WindowsFrameInfo) to represent the set of STACK CFI rules in effect at a given instruction, and apply them to a set of register values. Provide a SimpleCFIWalker class template, to allow the essential CFI code to be shared amongst the different architectures. Teach BasicSourceLineResolver to partially parse 'STACK CFI' records, and produce the set of rules in effect at a given instruction on demand, by combining the initial rule set and the appropriate rule deltas in a CFIFrameInfo object. Adapt StackwalkerX86 and StackFrameX86 to retrieve, store, and apply CFI stack walking information. Add validity flags for all the general-purpose registers to StackFrameX86::ContextValidity. a=jimblandy, r=mmentovai git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@549 4c0a9323-5329-0410-9bdc-e9ce6186880e
2010-03-16Breakpad processor: Unit tests for StackwalkerX86.jimblandy
Issue 53001 (http://breakpad.appspot.com/53001) defines the TestAssembler classes; those, along with a new set of mock classes defined in stackwalker_unittest_utils.h, make it possible for us to actually do proper unit testing of a stack walker. These tests get us full code coverage for stackwalker_x86.cc. a=jimblandy, r=mmentovai git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@548 4c0a9323-5329-0410-9bdc-e9ce6186880e
2010-03-16Breakpad Processor: Add new unit tests for google_breakpad::Minidumpjimblandy
This also adds two new test utility class groups, TestAssembler and SynthMinidump. These are overkill for what I'm doing with them here (and may simply be overkill, period), but they make it easy to write unit tests for code that works on binary files or raw memory contents in a cross-platform way. I'm planning to use them for the DWARF CFI unwinding tests and the DWARF CFI parser tests. a=jimblandy, r=nealsid git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@547 4c0a9323-5329-0410-9bdc-e9ce6186880e
2010-03-02ARM support, with some build system changes to support x86-64, arm, and i386 ↵nealsid
in an autoconf style build in Linux. The O2 build for the unit tests is still broken but I'm checking this in to unblock people A=nealsid R=ajwong, hannahtang, ted.mielczarek git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@541 4c0a9323-5329-0410-9bdc-e9ce6186880e
2009-12-23Issue 49012: Breakpad Processor: Rename 'StackFrameInfo' structure to ↵jimblandy
'WindowsFrameInfo'. Also, rename stack_frame_info.h to windows_frame_info.h. If it seems odd to have functions like FillSourceLineInfo returning Windows-specific data structures... well, it is! This patch just makes it more obvious what's going on. a=jimblandy, r=nealsid git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@471 4c0a9323-5329-0410-9bdc-e9ce6186880e
2009-12-19Basic arm cpu support for processor. r=mark at http://breakpad.appspot.com/49011ted.mielczarek
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@454 4c0a9323-5329-0410-9bdc-e9ce6186880e
2009-12-09Allow Minidump class to be instantiated with stream instead of file. r=mark ↵ted.mielczarek
at http://breakpad.appspot.com/46001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@438 4c0a9323-5329-0410-9bdc-e9ce6186880e
2009-05-29Add more error information to minidump processing return code. Also added ↵nealsid
dependency on google test, and modified minidump processing unit tests to use google test R=brdevmn A=nealsid git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@343 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-10-31Issue 196 - Breakpad processor support for x86-64. r=mentoted.mielczarek
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@227 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-09-28Solaris version of symbol dumper (#207). Patch by Alfred Peng. r=memmentovai
http://groups.google.com/group/google-breakpad-dev/browse_thread/thread/e4cbdbf7ddaf7f51 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@218 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-09-26Update EXTRA_DIST for packaging.mmentovai
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@216 4c0a9323-5329-0410-9bdc-e9ce6186880e
2007-09-26Add SPARC/Solaris support to client handler and processor (#201, 200).mmentovai
Patch by Michael shang <satisfy123>. r=me, r=Alfred Peng. http://groups.google.com/group/google-breakpad-discuss/browse_thread/thread/2fba07577f1fa35e git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@215 4c0a9323-5329-0410-9bdc-e9ce6186880e