aboutsummaryrefslogtreecommitdiff
path: root/Makefile.am
diff options
context:
space:
mode:
authorbenchan@chromium.org <benchan@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e>2012-01-19 07:14:51 +0000
committerbenchan@chromium.org <benchan@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e>2012-01-19 07:14:51 +0000
commit30566abed8d95b752f31f67fde94c0ae0a1502d2 (patch)
tree90f98f074cebf21102ad8f8717a2e70e9f4438a9 /Makefile.am
parentSkip ElfCoreDumpTest.ValidCoreFile test if no core dump is generated. (diff)
downloadbreakpad-30566abed8d95b752f31f67fde94c0ae0a1502d2.tar.xz
Implement core dump to minidump conversion.
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
Diffstat (limited to 'Makefile.am')
-rw-r--r--Makefile.am57
1 files changed, 37 insertions, 20 deletions
diff --git a/Makefile.am b/Makefile.am
index d4540f15..934b72d2 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -66,6 +66,8 @@ src_client_linux_libbreakpad_client_a_SOURCES = \
src/client/linux/crash_generation/crash_generation_client.cc \
src/client/linux/handler/exception_handler.cc \
src/client/linux/minidump_writer/linux_dumper.cc \
+ src/client/linux/minidump_writer/linux_core_dumper.cc \
+ src/client/linux/minidump_writer/linux_ptrace_dumper.cc \
src/client/linux/minidump_writer/minidump_writer.cc \
src/client/minidump_file_writer.cc \
src/common/convert_UTF.c \
@@ -214,6 +216,7 @@ bin_PROGRAMS += \
if !DISABLE_TOOLS
bin_PROGRAMS += \
+ src/tools/linux/core2md/core2md \
src/tools/linux/dump_syms/dump_syms \
src/tools/linux/md2core/minidump-2-core \
src/tools/linux/symupload/minidump_upload \
@@ -289,10 +292,13 @@ src_client_linux_linux_client_unittest_SOURCES = \
src/client/linux/handler/exception_handler_unittest.cc \
src/client/linux/minidump_writer/directory_reader_unittest.cc \
src/client/linux/minidump_writer/line_reader_unittest.cc \
- src/client/linux/minidump_writer/linux_dumper_unittest.cc \
+ src/client/linux/minidump_writer/linux_core_dumper_unittest.cc \
+ src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc \
src/client/linux/minidump_writer/minidump_writer_unittest.cc \
src/common/linux/linux_libc_support_unittest.cc \
+ src/common/linux/tests/crash_generator.cc \
src/common/memory_unittest.cc \
+ src/common/tests/file_utils.cc \
src/testing/gtest/src/gtest-all.cc \
src/testing/gtest/src/gtest_main.cc \
src/testing/src/gmock-all.cc \
@@ -311,6 +317,8 @@ src_client_linux_linux_client_unittest_LDADD = \
src/client/linux/handler/exception_handler.o \
src/client/linux/crash_generation/crash_generation_client.o \
src/client/linux/minidump_writer/linux_dumper.o \
+ src/client/linux/minidump_writer/linux_core_dumper.o \
+ src/client/linux/minidump_writer/linux_ptrace_dumper.o \
src/client/linux/minidump_writer/minidump_writer.o \
src/client/minidump_file_writer.o \
src/common/convert_UTF.o \
@@ -320,11 +328,20 @@ src_client_linux_linux_client_unittest_LDADD = \
src/common/linux/guid_creator.o \
src/common/linux/memory_mapped_file.o \
src/common/linux/safe_readlink.o \
- src/common/string_conversion.o
+ src/common/string_conversion.o \
+ $(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
-src_client_linux_linux_client_unittest_DEPENDENCIES = src/client/linux/linux_dumper_unittest_helper src/client/linux/libbreakpad_client.a src/libbreakpad.a
+src_client_linux_linux_client_unittest_DEPENDENCIES = \
+ src/client/linux/linux_dumper_unittest_helper \
+ src/client/linux/libbreakpad_client.a \
+ src/libbreakpad.a
if !DISABLE_TOOLS
+src_tools_linux_core2md_core2md_SOURCES = \
+ src/tools/linux/core2md/core2md.cc
+src_tools_linux_core2md_core2md_LDADD = \
+ src/client/linux/libbreakpad_client.a
+
src_tools_linux_dump_syms_dump_syms_SOURCES = \
src/common/dwarf_cfi_to_module.cc \
src/common/dwarf_cu_to_module.cc \
@@ -534,25 +551,25 @@ src_processor_disassembler_x86_unittest_LDADD = \
src/third_party/libdisasm/libdisasm.a
src_processor_fast_source_line_resolver_unittest_SOURCES = \
- src/processor/fast_source_line_resolver_unittest.cc \
- src/testing/gtest/src/gtest-all.cc \
- src/testing/src/gmock-all.cc
+ src/processor/fast_source_line_resolver_unittest.cc \
+ src/testing/gtest/src/gtest-all.cc \
+ src/testing/src/gmock-all.cc
src_processor_fast_source_line_resolver_unittest_CPPFLAGS = \
- -I$(top_srcdir)/src \
- -I$(top_srcdir)/src/testing/include \
- -I$(top_srcdir)/src/testing/gtest/include \
- -I$(top_srcdir)/src/testing/gtest \
- -I$(top_srcdir)/src/testing
+ -I$(top_srcdir)/src \
+ -I$(top_srcdir)/src/testing/include \
+ -I$(top_srcdir)/src/testing/gtest/include \
+ -I$(top_srcdir)/src/testing/gtest \
+ -I$(top_srcdir)/src/testing
src_processor_fast_source_line_resolver_unittest_LDADD = \
- src/processor/fast_source_line_resolver.o \
- src/processor/basic_source_line_resolver.o \
- src/processor/cfi_frame_info.o \
- src/processor/module_comparer.o \
- src/processor/module_serializer.o \
- src/processor/pathname_stripper.o \
- src/processor/logging.o \
- src/processor/source_line_resolver_base.o \
- src/processor/tokenize.o
+ src/processor/fast_source_line_resolver.o \
+ src/processor/basic_source_line_resolver.o \
+ src/processor/cfi_frame_info.o \
+ src/processor/module_comparer.o \
+ src/processor/module_serializer.o \
+ src/processor/pathname_stripper.o \
+ src/processor/logging.o \
+ src/processor/source_line_resolver_base.o \
+ src/processor/tokenize.o
src_processor_map_serializers_unittest_SOURCES = \
src/processor/map_serializers_unittest.cc \