summaryrefslogtreecommitdiffstats
path: root/breakpad
diff options
context:
space:
mode:
authorcarlosvaldivia@google.com <carlosvaldivia@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2012-04-09 19:27:22 +0000
committercarlosvaldivia@google.com <carlosvaldivia@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2012-04-09 19:27:22 +0000
commite7aa62a3bf6993369b5adb61028fddb3eb7a58bf (patch)
tree476e203d6e64f9b350130ecb3d16ff34c6835204 /breakpad
parent6e575772033fb8ad816b805fbaa95bde2ce18985 (diff)
downloadchromium_src-e7aa62a3bf6993369b5adb61028fddb3eb7a58bf.zip
chromium_src-e7aa62a3bf6993369b5adb61028fddb3eb7a58bf.tar.gz
chromium_src-e7aa62a3bf6993369b5adb61028fddb3eb7a58bf.tar.bz2
Upstream native crash handling changes for Android.
Android native crash handling is almost identical to linux handling with some differences. Note that even after this change Chrome on Android will not compile with the USE_LINUX_BREAKPAD flag. Forthcomming changes in breakpad should remedy this state of affairs. BUG= TEST= Review URL: http://codereview.chromium.org/9838033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@131404 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'breakpad')
-rw-r--r--breakpad/breakpad.gyp151
1 files changed, 150 insertions, 1 deletions
diff --git a/breakpad/breakpad.gyp b/breakpad/breakpad.gyp
index ca561d8..6fb89f6 100644
--- a/breakpad/breakpad.gyp
+++ b/breakpad/breakpad.gyp
@@ -217,12 +217,154 @@
},
],
}],
- [ 'OS=="linux"', {
+ [ 'OS=="linux" or OS=="android"', {
'conditions': [
+ ['OS=="android"', {
+ 'defines': [
+ '__ANDROID__',
+ ],
+ }],
# Tools needed for archiving build symbols.
['linux_breakpad==1', {
'targets': [
{
+ 'target_name': 'minidump_stackwalk',
+ 'type': 'executable',
+ 'toolsets': [ 'host', ],
+ # This uses the system libcurl, so don't use the default 32-bit
+ # compile flags when building on a 64-bit machine.
+ 'variables': {
+ 'host_arch': '<!(uname -m)',
+ },
+ 'conditions': [
+ ['host_arch=="x86_64"', {
+ 'cflags!': ['-m32', '-march=pentium4', '-msse2',
+ '-mfpmath=sse'],
+ 'ldflags!': ['-m32'],
+ 'cflags': ['-O2'],
+ 'include_dirs!': ['/usr/include32'],
+ }],
+ ],
+ 'include_dirs': [
+ 'src',
+ 'src/third_party',
+ '..',
+ ],
+ 'sources': [
+ 'src/processor/minidump_stackwalk.cc',
+ 'src/processor/stackwalker.cc',
+ 'src/processor/stackwalker.h',
+ 'src/processor/basic_code_module.h',
+ 'src/processor/basic_code_modules.cc',
+ 'src/processor/basic_code_modules.h',
+ 'src/processor/basic_source_line_resolver.cc',
+ 'src/processor/basic_source_line_resolver.h',
+ 'src/processor/binarystream.cc',
+ 'src/processor/binarystream.h',
+ 'src/processor/call_stack.cc',
+ 'src/google_breakpad/procesor/call_stack.h',
+ 'src/processor/cfi_frame_info.cc',
+ 'src/processor/cfi_frame_info.h',
+ 'src/processor/disassembler_x86.cc',
+ 'src/processor/disassembler_x86.h',
+ 'src/processor/exploitability.cc',
+ 'src/processor/exploitability.h',
+ 'src/processor/exploitability_win.cc',
+ 'src/processor/exploitability_win.h',
+ 'src/processor/logging.cc',
+ 'src/processor/logging.h',
+ 'src/processor/minidump.cc',
+ 'src/processor/minidump.h',
+ 'src/processor/minidump_processor.cc',
+ 'src/processor/minidump_processor.h',
+ 'src/processor/pathname_stripper.cc',
+ 'src/processor/pathname_stripper.h',
+ 'src/processor/process_state.cc',
+ 'src/processor/process_state.h',
+ 'src/processor/simple_symbol_supplier.cc',
+ 'src/processor/simple_symbol_supplier.h',
+ 'src/processor/source_line_resolver_base.cc',
+ 'src/processor/source_line_resolver_base.h',
+ 'src/processor/stackwalker.cc',
+ 'src/processor/stackwalker.h',
+ 'src/processor/stackwalker_amd64.cc',
+ 'src/processor/stackwalker_amd64.h',
+ 'src/processor/stackwalker_arm.cc',
+ 'src/processor/stackwalker_arm.h',
+ 'src/processor/stackwalker_ppc.cc',
+ 'src/processor/stackwalker_ppc.h',
+ 'src/processor/stackwalker_sparc.cc',
+ 'src/processor/stackwalker_sparc.h',
+ 'src/processor/stackwalker_x86.cc',
+ 'src/processor/stackwalker_x86.h',
+ 'src/processor/tokenize.cc',
+ 'src/processor/tokenize.h',
+ # libdisasm
+ 'src/third_party/libdisasm/ia32_implicit.c',
+ 'src/third_party/libdisasm/ia32_implicit.h',
+ 'src/third_party/libdisasm/ia32_insn.c',
+ 'src/third_party/libdisasm/ia32_insn.h',
+ 'src/third_party/libdisasm/ia32_invariant.c',
+ 'src/third_party/libdisasm/ia32_invariant.h',
+ 'src/third_party/libdisasm/ia32_modrm.c',
+ 'src/third_party/libdisasm/ia32_modrm.h',
+ 'src/third_party/libdisasm/ia32_opcode_tables.c',
+ 'src/third_party/libdisasm/ia32_opcode_tables.h',
+ 'src/third_party/libdisasm/ia32_operand.c',
+ 'src/third_party/libdisasm/ia32_operand.h',
+ 'src/third_party/libdisasm/ia32_reg.c',
+ 'src/third_party/libdisasm/ia32_reg.h',
+ 'src/third_party/libdisasm/ia32_settings.c',
+ 'src/third_party/libdisasm/ia32_settings.h',
+ 'src/third_party/libdisasm/libdis.h',
+ 'src/third_party/libdisasm/qword.h',
+ 'src/third_party/libdisasm/x86_disasm.c',
+ 'src/third_party/libdisasm/x86_format.c',
+ 'src/third_party/libdisasm/x86_imm.c',
+ 'src/third_party/libdisasm/x86_imm.h',
+ 'src/third_party/libdisasm/x86_insn.c',
+ 'src/third_party/libdisasm/x86_misc.c',
+ 'src/third_party/libdisasm/x86_operand_list.c',
+ 'src/third_party/libdisasm/x86_operand_list.h',
+ ],
+ },
+ {
+ 'target_name': 'minidump_dump',
+ 'type': 'executable',
+ 'toolsets': [ 'host', ],
+ # This uses the system libcurl, so don't use the default 32-bit
+ # compile flags when building on a 64-bit machine.
+ 'variables': {
+ 'host_arch': '<!(uname -m)',
+ },
+ 'conditions': [
+ ['host_arch=="x86_64"', {
+ 'cflags!': ['-m32', '-march=pentium4', '-msse2',
+ '-mfpmath=sse'],
+ 'ldflags!': ['-m32'],
+ 'cflags': ['-O2'],
+ 'include_dirs!': ['/usr/include32'],
+ }],
+ ],
+ 'sources': [
+ 'src/processor/minidump_dump.cc',
+ 'src/processor/basic_code_module.h',
+ 'src/processor/basic_code_modules.h',
+ 'src/processor/basic_code_modules.cc',
+ 'src/processor/logging.h',
+ 'src/processor/logging.cc',
+ 'src/processor/minidump.h',
+ 'src/processor/minidump.cc',
+ 'src/processor/pathname_stripper.h',
+ 'src/processor/pathname_stripper.cc',
+ ],
+ 'include_dirs': [
+ 'src',
+ 'src/third_party',
+ '..',
+ ],
+ },
+ {
'target_name': 'symupload',
'type': 'executable',
@@ -258,6 +400,7 @@
{
'target_name': 'dump_syms',
'type': 'executable',
+ 'toolsets': [ 'host' ],
# dwarf2reader.cc uses dynamic_cast. Because we don't typically
# don't support RTTI, we enable it for this single target. Since
@@ -358,6 +501,12 @@
['target_arch=="arm"', {
'cflags': ['-Wa,-mimplicit-it=always'],
}],
+ ['OS=="android"', {
+ 'sources!':[
+ 'src/common/linux/elf_core_dump.cc',
+ 'src/common/linux/elf_core_dump.h',
+ ],
+ }],
],
'link_settings': {