Define and use a a new MDRawContextARM64
This struct matches the layout defined by Microsoft and replaces Breakpad's MDRawContextARM64_Old. This CL updates the processor to understand either the old or new structs, but clients continue to write the old structs. Change-Id: I8dedd9ddb2ec083b802723b9ac87beb18d98edbd Reviewed-on: https://chromium-review.googlesource.com/1155938 Reviewed-by: Mark Mentovai <mark@chromium.org>
This commit is contained in:
parent
627ef0cb9c
commit
88d8114fda
22 changed files with 411 additions and 83 deletions
10
Makefile.am
10
Makefile.am
|
@ -233,6 +233,8 @@ src_libbreakpad_a_SOURCES = \
|
||||||
src/processor/cfi_frame_info.h \
|
src/processor/cfi_frame_info.h \
|
||||||
src/processor/contained_range_map-inl.h \
|
src/processor/contained_range_map-inl.h \
|
||||||
src/processor/contained_range_map.h \
|
src/processor/contained_range_map.h \
|
||||||
|
src/processor/convert_old_arm64_context.cc \
|
||||||
|
src/processor/convert_old_arm64_context.h \
|
||||||
src/processor/disassembler_x86.h \
|
src/processor/disassembler_x86.h \
|
||||||
src/processor/disassembler_x86.cc \
|
src/processor/disassembler_x86.cc \
|
||||||
src/processor/dump_context.cc \
|
src/processor/dump_context.cc \
|
||||||
|
@ -487,6 +489,7 @@ src_client_linux_linux_client_unittest_shlib_SOURCES = \
|
||||||
src/common/tests/file_utils.cc \
|
src/common/tests/file_utils.cc \
|
||||||
src/common/tests/file_utils.h \
|
src/common/tests/file_utils.h \
|
||||||
src/processor/basic_code_modules.cc \
|
src/processor/basic_code_modules.cc \
|
||||||
|
src/processor/convert_old_arm64_context.cc \
|
||||||
src/processor/dump_context.cc \
|
src/processor/dump_context.cc \
|
||||||
src/processor/dump_object.cc \
|
src/processor/dump_object.cc \
|
||||||
src/processor/logging.cc \
|
src/processor/logging.cc \
|
||||||
|
@ -811,6 +814,7 @@ src_processor_exploitability_unittest_SOURCES = \
|
||||||
src_processor_exploitability_unittest_CPPFLAGS = \
|
src_processor_exploitability_unittest_CPPFLAGS = \
|
||||||
$(AM_CPPFLAGS) $(TEST_CFLAGS)
|
$(AM_CPPFLAGS) $(TEST_CFLAGS)
|
||||||
src_processor_exploitability_unittest_LDADD = \
|
src_processor_exploitability_unittest_LDADD = \
|
||||||
|
src/processor/convert_old_arm64_context.o \
|
||||||
src/processor/minidump_processor.o \
|
src/processor/minidump_processor.o \
|
||||||
src/processor/process_state.o \
|
src/processor/process_state.o \
|
||||||
src/processor/disassembler_x86.o \
|
src/processor/disassembler_x86.o \
|
||||||
|
@ -892,6 +896,7 @@ src_processor_microdump_processor_unittest_LDADD = \
|
||||||
src/processor/basic_code_modules.o \
|
src/processor/basic_code_modules.o \
|
||||||
src/processor/basic_source_line_resolver.o \
|
src/processor/basic_source_line_resolver.o \
|
||||||
src/processor/call_stack.o \
|
src/processor/call_stack.o \
|
||||||
|
src/processor/convert_old_arm64_context.o \
|
||||||
src/processor/cfi_frame_info.o \
|
src/processor/cfi_frame_info.o \
|
||||||
src/processor/dump_context.o \
|
src/processor/dump_context.o \
|
||||||
src/processor/dump_object.o \
|
src/processor/dump_object.o \
|
||||||
|
@ -926,6 +931,7 @@ src_processor_minidump_processor_unittest_LDADD = \
|
||||||
src/processor/basic_source_line_resolver.o \
|
src/processor/basic_source_line_resolver.o \
|
||||||
src/processor/call_stack.o \
|
src/processor/call_stack.o \
|
||||||
src/processor/cfi_frame_info.o \
|
src/processor/cfi_frame_info.o \
|
||||||
|
src/processor/convert_old_arm64_context.o \
|
||||||
src/processor/disassembler_x86.o \
|
src/processor/disassembler_x86.o \
|
||||||
src/processor/dump_context.o \
|
src/processor/dump_context.o \
|
||||||
src/processor/dump_object.o \
|
src/processor/dump_object.o \
|
||||||
|
@ -965,6 +971,7 @@ src_processor_minidump_unittest_CPPFLAGS = \
|
||||||
$(AM_CPPFLAGS) $(TEST_CFLAGS)
|
$(AM_CPPFLAGS) $(TEST_CFLAGS)
|
||||||
src_processor_minidump_unittest_LDADD = \
|
src_processor_minidump_unittest_LDADD = \
|
||||||
src/processor/basic_code_modules.o \
|
src/processor/basic_code_modules.o \
|
||||||
|
src/processor/convert_old_arm64_context.o \
|
||||||
src/processor/dump_context.o \
|
src/processor/dump_context.o \
|
||||||
src/processor/dump_object.o \
|
src/processor/dump_object.o \
|
||||||
src/processor/logging.o \
|
src/processor/logging.o \
|
||||||
|
@ -1186,6 +1193,7 @@ src_processor_minidump_dump_SOURCES = \
|
||||||
src/processor/minidump_dump.cc
|
src/processor/minidump_dump.cc
|
||||||
src_processor_minidump_dump_LDADD = \
|
src_processor_minidump_dump_LDADD = \
|
||||||
src/processor/basic_code_modules.o \
|
src/processor/basic_code_modules.o \
|
||||||
|
src/processor/convert_old_arm64_context.o \
|
||||||
src/processor/dump_context.o \
|
src/processor/dump_context.o \
|
||||||
src/processor/dump_object.o \
|
src/processor/dump_object.o \
|
||||||
src/processor/logging.o \
|
src/processor/logging.o \
|
||||||
|
@ -1200,6 +1208,7 @@ src_processor_microdump_stackwalk_LDADD = \
|
||||||
src/processor/basic_code_modules.o \
|
src/processor/basic_code_modules.o \
|
||||||
src/processor/basic_source_line_resolver.o \
|
src/processor/basic_source_line_resolver.o \
|
||||||
src/processor/call_stack.o \
|
src/processor/call_stack.o \
|
||||||
|
src/processor/convert_old_arm64_context.o \
|
||||||
src/processor/cfi_frame_info.o \
|
src/processor/cfi_frame_info.o \
|
||||||
src/processor/disassembler_x86.o \
|
src/processor/disassembler_x86.o \
|
||||||
src/processor/dump_context.o \
|
src/processor/dump_context.o \
|
||||||
|
@ -1235,6 +1244,7 @@ src_processor_minidump_stackwalk_LDADD = \
|
||||||
src/processor/basic_source_line_resolver.o \
|
src/processor/basic_source_line_resolver.o \
|
||||||
src/processor/call_stack.o \
|
src/processor/call_stack.o \
|
||||||
src/processor/cfi_frame_info.o \
|
src/processor/cfi_frame_info.o \
|
||||||
|
src/processor/convert_old_arm64_context.o \
|
||||||
src/processor/disassembler_x86.o \
|
src/processor/disassembler_x86.o \
|
||||||
src/processor/dump_context.o \
|
src/processor/dump_context.o \
|
||||||
src/processor/dump_object.o \
|
src/processor/dump_object.o \
|
||||||
|
|
58
Makefile.in
58
Makefile.in
|
@ -1,7 +1,7 @@
|
||||||
# Makefile.in generated by automake 1.15 from Makefile.am.
|
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
||||||
# @configure_input@
|
# @configure_input@
|
||||||
|
|
||||||
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
|
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
|
||||||
|
|
||||||
# This Makefile.in is free software; the Free Software Foundation
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
@ -385,6 +385,8 @@ am__src_libbreakpad_a_SOURCES_DIST = \
|
||||||
src/processor/cfi_frame_info.h \
|
src/processor/cfi_frame_info.h \
|
||||||
src/processor/contained_range_map-inl.h \
|
src/processor/contained_range_map-inl.h \
|
||||||
src/processor/contained_range_map.h \
|
src/processor/contained_range_map.h \
|
||||||
|
src/processor/convert_old_arm64_context.cc \
|
||||||
|
src/processor/convert_old_arm64_context.h \
|
||||||
src/processor/disassembler_x86.h \
|
src/processor/disassembler_x86.h \
|
||||||
src/processor/disassembler_x86.cc \
|
src/processor/disassembler_x86.cc \
|
||||||
src/processor/dump_context.cc src/processor/dump_object.cc \
|
src/processor/dump_context.cc src/processor/dump_object.cc \
|
||||||
|
@ -455,6 +457,7 @@ am__src_libbreakpad_a_SOURCES_DIST = \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/basic_source_line_resolver.$(OBJEXT) \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/basic_source_line_resolver.$(OBJEXT) \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/call_stack.$(OBJEXT) \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/call_stack.$(OBJEXT) \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/cfi_frame_info.$(OBJEXT) \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/cfi_frame_info.$(OBJEXT) \
|
||||||
|
@DISABLE_PROCESSOR_FALSE@ src/processor/convert_old_arm64_context.$(OBJEXT) \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/disassembler_x86.$(OBJEXT) \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/disassembler_x86.$(OBJEXT) \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_context.$(OBJEXT) \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_context.$(OBJEXT) \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_object.$(OBJEXT) \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_object.$(OBJEXT) \
|
||||||
|
@ -626,6 +629,7 @@ am__src_client_linux_linux_client_unittest_shlib_SOURCES_DIST = \
|
||||||
src/common/tests/auto_tempdir.h src/common/tests/file_utils.cc \
|
src/common/tests/auto_tempdir.h src/common/tests/file_utils.cc \
|
||||||
src/common/tests/file_utils.h \
|
src/common/tests/file_utils.h \
|
||||||
src/processor/basic_code_modules.cc \
|
src/processor/basic_code_modules.cc \
|
||||||
|
src/processor/convert_old_arm64_context.cc \
|
||||||
src/processor/dump_context.cc src/processor/dump_object.cc \
|
src/processor/dump_context.cc src/processor/dump_object.cc \
|
||||||
src/processor/logging.cc src/processor/minidump.cc \
|
src/processor/logging.cc src/processor/minidump.cc \
|
||||||
src/processor/pathname_stripper.cc \
|
src/processor/pathname_stripper.cc \
|
||||||
|
@ -656,6 +660,7 @@ am__src_client_linux_linux_client_unittest_shlib_SOURCES_DIST = \
|
||||||
@LINUX_HOST_TRUE@ src/common/src_client_linux_linux_client_unittest_shlib-memory_allocator_unittest.$(OBJEXT) \
|
@LINUX_HOST_TRUE@ src/common/src_client_linux_linux_client_unittest_shlib-memory_allocator_unittest.$(OBJEXT) \
|
||||||
@LINUX_HOST_TRUE@ src/common/tests/src_client_linux_linux_client_unittest_shlib-file_utils.$(OBJEXT) \
|
@LINUX_HOST_TRUE@ src/common/tests/src_client_linux_linux_client_unittest_shlib-file_utils.$(OBJEXT) \
|
||||||
@LINUX_HOST_TRUE@ src/processor/src_client_linux_linux_client_unittest_shlib-basic_code_modules.$(OBJEXT) \
|
@LINUX_HOST_TRUE@ src/processor/src_client_linux_linux_client_unittest_shlib-basic_code_modules.$(OBJEXT) \
|
||||||
|
@LINUX_HOST_TRUE@ src/processor/src_client_linux_linux_client_unittest_shlib-convert_old_arm64_context.$(OBJEXT) \
|
||||||
@LINUX_HOST_TRUE@ src/processor/src_client_linux_linux_client_unittest_shlib-dump_context.$(OBJEXT) \
|
@LINUX_HOST_TRUE@ src/processor/src_client_linux_linux_client_unittest_shlib-dump_context.$(OBJEXT) \
|
||||||
@LINUX_HOST_TRUE@ src/processor/src_client_linux_linux_client_unittest_shlib-dump_object.$(OBJEXT) \
|
@LINUX_HOST_TRUE@ src/processor/src_client_linux_linux_client_unittest_shlib-dump_object.$(OBJEXT) \
|
||||||
@LINUX_HOST_TRUE@ src/processor/src_client_linux_linux_client_unittest_shlib-logging.$(OBJEXT) \
|
@LINUX_HOST_TRUE@ src/processor/src_client_linux_linux_client_unittest_shlib-logging.$(OBJEXT) \
|
||||||
|
@ -906,7 +911,7 @@ am__src_processor_exploitability_unittest_SOURCES_DIST = \
|
||||||
@DISABLE_PROCESSOR_FALSE@am_src_processor_exploitability_unittest_OBJECTS = src/processor/src_processor_exploitability_unittest-exploitability_unittest.$(OBJEXT)
|
@DISABLE_PROCESSOR_FALSE@am_src_processor_exploitability_unittest_OBJECTS = src/processor/src_processor_exploitability_unittest-exploitability_unittest.$(OBJEXT)
|
||||||
src_processor_exploitability_unittest_OBJECTS = \
|
src_processor_exploitability_unittest_OBJECTS = \
|
||||||
$(am_src_processor_exploitability_unittest_OBJECTS)
|
$(am_src_processor_exploitability_unittest_OBJECTS)
|
||||||
@DISABLE_PROCESSOR_FALSE@src_processor_exploitability_unittest_DEPENDENCIES = \
|
@DISABLE_PROCESSOR_FALSE@src_processor_exploitability_unittest_DEPENDENCIES = src/processor/convert_old_arm64_context.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/minidump_processor.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/minidump_processor.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/process_state.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/process_state.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/disassembler_x86.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/disassembler_x86.o \
|
||||||
|
@ -979,6 +984,7 @@ src_processor_microdump_processor_unittest_OBJECTS = \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/basic_code_modules.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/basic_code_modules.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/basic_source_line_resolver.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/basic_source_line_resolver.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/call_stack.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/call_stack.o \
|
||||||
|
@DISABLE_PROCESSOR_FALSE@ src/processor/convert_old_arm64_context.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/cfi_frame_info.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/cfi_frame_info.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_context.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_context.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_object.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_object.o \
|
||||||
|
@ -1014,6 +1020,7 @@ src_processor_microdump_stackwalk_OBJECTS = \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/basic_code_modules.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/basic_code_modules.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/basic_source_line_resolver.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/basic_source_line_resolver.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/call_stack.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/call_stack.o \
|
||||||
|
@DISABLE_PROCESSOR_FALSE@ src/processor/convert_old_arm64_context.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/cfi_frame_info.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/cfi_frame_info.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/disassembler_x86.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/disassembler_x86.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_context.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_context.o \
|
||||||
|
@ -1047,6 +1054,7 @@ src_processor_minidump_dump_OBJECTS = \
|
||||||
$(am_src_processor_minidump_dump_OBJECTS)
|
$(am_src_processor_minidump_dump_OBJECTS)
|
||||||
@DISABLE_PROCESSOR_FALSE@src_processor_minidump_dump_DEPENDENCIES = \
|
@DISABLE_PROCESSOR_FALSE@src_processor_minidump_dump_DEPENDENCIES = \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/basic_code_modules.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/basic_code_modules.o \
|
||||||
|
@DISABLE_PROCESSOR_FALSE@ src/processor/convert_old_arm64_context.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_context.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_context.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_object.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_object.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/logging.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/logging.o \
|
||||||
|
@ -1063,6 +1071,7 @@ src_processor_minidump_processor_unittest_OBJECTS = \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/basic_source_line_resolver.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/basic_source_line_resolver.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/call_stack.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/call_stack.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/cfi_frame_info.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/cfi_frame_info.o \
|
||||||
|
@DISABLE_PROCESSOR_FALSE@ src/processor/convert_old_arm64_context.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/disassembler_x86.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/disassembler_x86.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_context.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_context.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_object.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_object.o \
|
||||||
|
@ -1105,6 +1114,7 @@ src_processor_minidump_stackwalk_OBJECTS = \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/basic_source_line_resolver.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/basic_source_line_resolver.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/call_stack.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/call_stack.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/cfi_frame_info.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/cfi_frame_info.o \
|
||||||
|
@DISABLE_PROCESSOR_FALSE@ src/processor/convert_old_arm64_context.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/disassembler_x86.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/disassembler_x86.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_context.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_context.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_object.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_object.o \
|
||||||
|
@ -1146,6 +1156,7 @@ src_processor_minidump_unittest_OBJECTS = \
|
||||||
$(am_src_processor_minidump_unittest_OBJECTS)
|
$(am_src_processor_minidump_unittest_OBJECTS)
|
||||||
@DISABLE_PROCESSOR_FALSE@src_processor_minidump_unittest_DEPENDENCIES = \
|
@DISABLE_PROCESSOR_FALSE@src_processor_minidump_unittest_DEPENDENCIES = \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/basic_code_modules.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/basic_code_modules.o \
|
||||||
|
@DISABLE_PROCESSOR_FALSE@ src/processor/convert_old_arm64_context.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_context.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_context.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_object.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_object.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/logging.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/logging.o \
|
||||||
|
@ -2031,6 +2042,7 @@ pdfdir = @pdfdir@
|
||||||
prefix = @prefix@
|
prefix = @prefix@
|
||||||
program_transform_name = @program_transform_name@
|
program_transform_name = @program_transform_name@
|
||||||
psdir = @psdir@
|
psdir = @psdir@
|
||||||
|
runstatedir = @runstatedir@
|
||||||
sbindir = @sbindir@
|
sbindir = @sbindir@
|
||||||
sharedstatedir = @sharedstatedir@
|
sharedstatedir = @sharedstatedir@
|
||||||
srcdir = @srcdir@
|
srcdir = @srcdir@
|
||||||
|
@ -2179,6 +2191,8 @@ CLEANFILES = $(am__append_12)
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/cfi_frame_info.h \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/cfi_frame_info.h \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/contained_range_map-inl.h \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/contained_range_map-inl.h \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/contained_range_map.h \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/contained_range_map.h \
|
||||||
|
@DISABLE_PROCESSOR_FALSE@ src/processor/convert_old_arm64_context.cc \
|
||||||
|
@DISABLE_PROCESSOR_FALSE@ src/processor/convert_old_arm64_context.h \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/disassembler_x86.h \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/disassembler_x86.h \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/disassembler_x86.cc \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/disassembler_x86.cc \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_context.cc \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_context.cc \
|
||||||
|
@ -2330,6 +2344,7 @@ TESTS = $(check_PROGRAMS) $(check_SCRIPTS)
|
||||||
@LINUX_HOST_TRUE@ src/common/tests/file_utils.cc \
|
@LINUX_HOST_TRUE@ src/common/tests/file_utils.cc \
|
||||||
@LINUX_HOST_TRUE@ src/common/tests/file_utils.h \
|
@LINUX_HOST_TRUE@ src/common/tests/file_utils.h \
|
||||||
@LINUX_HOST_TRUE@ src/processor/basic_code_modules.cc \
|
@LINUX_HOST_TRUE@ src/processor/basic_code_modules.cc \
|
||||||
|
@LINUX_HOST_TRUE@ src/processor/convert_old_arm64_context.cc \
|
||||||
@LINUX_HOST_TRUE@ src/processor/dump_context.cc \
|
@LINUX_HOST_TRUE@ src/processor/dump_context.cc \
|
||||||
@LINUX_HOST_TRUE@ src/processor/dump_object.cc \
|
@LINUX_HOST_TRUE@ src/processor/dump_object.cc \
|
||||||
@LINUX_HOST_TRUE@ src/processor/logging.cc \
|
@LINUX_HOST_TRUE@ src/processor/logging.cc \
|
||||||
|
@ -2654,6 +2669,7 @@ TESTS = $(check_PROGRAMS) $(check_SCRIPTS)
|
||||||
@DISABLE_PROCESSOR_FALSE@ $(AM_CPPFLAGS) $(TEST_CFLAGS)
|
@DISABLE_PROCESSOR_FALSE@ $(AM_CPPFLAGS) $(TEST_CFLAGS)
|
||||||
|
|
||||||
@DISABLE_PROCESSOR_FALSE@src_processor_exploitability_unittest_LDADD = \
|
@DISABLE_PROCESSOR_FALSE@src_processor_exploitability_unittest_LDADD = \
|
||||||
|
@DISABLE_PROCESSOR_FALSE@ src/processor/convert_old_arm64_context.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/minidump_processor.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/minidump_processor.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/process_state.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/process_state.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/disassembler_x86.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/disassembler_x86.o \
|
||||||
|
@ -2743,6 +2759,7 @@ TESTS = $(check_PROGRAMS) $(check_SCRIPTS)
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/basic_code_modules.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/basic_code_modules.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/basic_source_line_resolver.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/basic_source_line_resolver.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/call_stack.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/call_stack.o \
|
||||||
|
@DISABLE_PROCESSOR_FALSE@ src/processor/convert_old_arm64_context.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/cfi_frame_info.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/cfi_frame_info.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_context.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_context.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_object.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_object.o \
|
||||||
|
@ -2779,6 +2796,7 @@ TESTS = $(check_PROGRAMS) $(check_SCRIPTS)
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/basic_source_line_resolver.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/basic_source_line_resolver.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/call_stack.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/call_stack.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/cfi_frame_info.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/cfi_frame_info.o \
|
||||||
|
@DISABLE_PROCESSOR_FALSE@ src/processor/convert_old_arm64_context.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/disassembler_x86.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/disassembler_x86.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_context.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_context.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_object.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_object.o \
|
||||||
|
@ -2820,6 +2838,7 @@ TESTS = $(check_PROGRAMS) $(check_SCRIPTS)
|
||||||
|
|
||||||
@DISABLE_PROCESSOR_FALSE@src_processor_minidump_unittest_LDADD = \
|
@DISABLE_PROCESSOR_FALSE@src_processor_minidump_unittest_LDADD = \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/basic_code_modules.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/basic_code_modules.o \
|
||||||
|
@DISABLE_PROCESSOR_FALSE@ src/processor/convert_old_arm64_context.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_context.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_context.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_object.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_object.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/logging.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/logging.o \
|
||||||
|
@ -3073,6 +3092,7 @@ TESTS = $(check_PROGRAMS) $(check_SCRIPTS)
|
||||||
|
|
||||||
@DISABLE_PROCESSOR_FALSE@src_processor_minidump_dump_LDADD = \
|
@DISABLE_PROCESSOR_FALSE@src_processor_minidump_dump_LDADD = \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/basic_code_modules.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/basic_code_modules.o \
|
||||||
|
@DISABLE_PROCESSOR_FALSE@ src/processor/convert_old_arm64_context.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_context.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_context.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_object.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_object.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/logging.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/logging.o \
|
||||||
|
@ -3088,6 +3108,7 @@ TESTS = $(check_PROGRAMS) $(check_SCRIPTS)
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/basic_code_modules.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/basic_code_modules.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/basic_source_line_resolver.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/basic_source_line_resolver.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/call_stack.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/call_stack.o \
|
||||||
|
@DISABLE_PROCESSOR_FALSE@ src/processor/convert_old_arm64_context.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/cfi_frame_info.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/cfi_frame_info.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/disassembler_x86.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/disassembler_x86.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_context.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_context.o \
|
||||||
|
@ -3124,6 +3145,7 @@ TESTS = $(check_PROGRAMS) $(check_SCRIPTS)
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/basic_source_line_resolver.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/basic_source_line_resolver.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/call_stack.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/call_stack.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/cfi_frame_info.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/cfi_frame_info.o \
|
||||||
|
@DISABLE_PROCESSOR_FALSE@ src/processor/convert_old_arm64_context.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/disassembler_x86.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/disassembler_x86.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_context.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_context.o \
|
||||||
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_object.o \
|
@DISABLE_PROCESSOR_FALSE@ src/processor/dump_object.o \
|
||||||
|
@ -3665,6 +3687,9 @@ src/processor/call_stack.$(OBJEXT): src/processor/$(am__dirstamp) \
|
||||||
src/processor/$(DEPDIR)/$(am__dirstamp)
|
src/processor/$(DEPDIR)/$(am__dirstamp)
|
||||||
src/processor/cfi_frame_info.$(OBJEXT): src/processor/$(am__dirstamp) \
|
src/processor/cfi_frame_info.$(OBJEXT): src/processor/$(am__dirstamp) \
|
||||||
src/processor/$(DEPDIR)/$(am__dirstamp)
|
src/processor/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/processor/convert_old_arm64_context.$(OBJEXT): \
|
||||||
|
src/processor/$(am__dirstamp) \
|
||||||
|
src/processor/$(DEPDIR)/$(am__dirstamp)
|
||||||
src/processor/disassembler_x86.$(OBJEXT): \
|
src/processor/disassembler_x86.$(OBJEXT): \
|
||||||
src/processor/$(am__dirstamp) \
|
src/processor/$(am__dirstamp) \
|
||||||
src/processor/$(DEPDIR)/$(am__dirstamp)
|
src/processor/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
@ -3966,6 +3991,9 @@ src/common/tests/src_client_linux_linux_client_unittest_shlib-file_utils.$(OBJEX
|
||||||
src/processor/src_client_linux_linux_client_unittest_shlib-basic_code_modules.$(OBJEXT): \
|
src/processor/src_client_linux_linux_client_unittest_shlib-basic_code_modules.$(OBJEXT): \
|
||||||
src/processor/$(am__dirstamp) \
|
src/processor/$(am__dirstamp) \
|
||||||
src/processor/$(DEPDIR)/$(am__dirstamp)
|
src/processor/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/processor/src_client_linux_linux_client_unittest_shlib-convert_old_arm64_context.$(OBJEXT): \
|
||||||
|
src/processor/$(am__dirstamp) \
|
||||||
|
src/processor/$(DEPDIR)/$(am__dirstamp)
|
||||||
src/processor/src_client_linux_linux_client_unittest_shlib-dump_context.$(OBJEXT): \
|
src/processor/src_client_linux_linux_client_unittest_shlib-dump_context.$(OBJEXT): \
|
||||||
src/processor/$(am__dirstamp) \
|
src/processor/$(am__dirstamp) \
|
||||||
src/processor/$(DEPDIR)/$(am__dirstamp)
|
src/processor/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
@ -4921,6 +4949,7 @@ distclean-compile:
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/call_stack.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/call_stack.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/cfi_frame_info.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/cfi_frame_info.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/contained_range_map_unittest.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/contained_range_map_unittest.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/convert_old_arm64_context.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/disassembler_x86.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/disassembler_x86.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/dump_context.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/dump_context.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/dump_object.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/dump_object.Po@am__quote@
|
||||||
|
@ -4947,6 +4976,7 @@ distclean-compile:
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/simple_symbol_supplier.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/simple_symbol_supplier.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/source_line_resolver_base.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/source_line_resolver_base.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-basic_code_modules.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-basic_code_modules.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-convert_old_arm64_context.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-dump_context.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-dump_context.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-dump_object.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-dump_object.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-logging.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-logging.Po@am__quote@
|
||||||
|
@ -5392,6 +5422,20 @@ src/processor/src_client_linux_linux_client_unittest_shlib-basic_code_modules.ob
|
||||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_client_linux_linux_client_unittest_shlib-basic_code_modules.obj `if test -f 'src/processor/basic_code_modules.cc'; then $(CYGPATH_W) 'src/processor/basic_code_modules.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/basic_code_modules.cc'; fi`
|
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_client_linux_linux_client_unittest_shlib-basic_code_modules.obj `if test -f 'src/processor/basic_code_modules.cc'; then $(CYGPATH_W) 'src/processor/basic_code_modules.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/basic_code_modules.cc'; fi`
|
||||||
|
|
||||||
|
src/processor/src_client_linux_linux_client_unittest_shlib-convert_old_arm64_context.o: src/processor/convert_old_arm64_context.cc
|
||||||
|
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_client_linux_linux_client_unittest_shlib-convert_old_arm64_context.o -MD -MP -MF src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-convert_old_arm64_context.Tpo -c -o src/processor/src_client_linux_linux_client_unittest_shlib-convert_old_arm64_context.o `test -f 'src/processor/convert_old_arm64_context.cc' || echo '$(srcdir)/'`src/processor/convert_old_arm64_context.cc
|
||||||
|
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-convert_old_arm64_context.Tpo src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-convert_old_arm64_context.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/processor/convert_old_arm64_context.cc' object='src/processor/src_client_linux_linux_client_unittest_shlib-convert_old_arm64_context.o' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_client_linux_linux_client_unittest_shlib-convert_old_arm64_context.o `test -f 'src/processor/convert_old_arm64_context.cc' || echo '$(srcdir)/'`src/processor/convert_old_arm64_context.cc
|
||||||
|
|
||||||
|
src/processor/src_client_linux_linux_client_unittest_shlib-convert_old_arm64_context.obj: src/processor/convert_old_arm64_context.cc
|
||||||
|
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_client_linux_linux_client_unittest_shlib-convert_old_arm64_context.obj -MD -MP -MF src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-convert_old_arm64_context.Tpo -c -o src/processor/src_client_linux_linux_client_unittest_shlib-convert_old_arm64_context.obj `if test -f 'src/processor/convert_old_arm64_context.cc'; then $(CYGPATH_W) 'src/processor/convert_old_arm64_context.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/convert_old_arm64_context.cc'; fi`
|
||||||
|
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-convert_old_arm64_context.Tpo src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-convert_old_arm64_context.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/processor/convert_old_arm64_context.cc' object='src/processor/src_client_linux_linux_client_unittest_shlib-convert_old_arm64_context.obj' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_client_linux_linux_client_unittest_shlib-convert_old_arm64_context.obj `if test -f 'src/processor/convert_old_arm64_context.cc'; then $(CYGPATH_W) 'src/processor/convert_old_arm64_context.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/convert_old_arm64_context.cc'; fi`
|
||||||
|
|
||||||
src/processor/src_client_linux_linux_client_unittest_shlib-dump_context.o: src/processor/dump_context.cc
|
src/processor/src_client_linux_linux_client_unittest_shlib-dump_context.o: src/processor/dump_context.cc
|
||||||
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_client_linux_linux_client_unittest_shlib-dump_context.o -MD -MP -MF src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-dump_context.Tpo -c -o src/processor/src_client_linux_linux_client_unittest_shlib-dump_context.o `test -f 'src/processor/dump_context.cc' || echo '$(srcdir)/'`src/processor/dump_context.cc
|
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_client_linux_linux_client_unittest_shlib-dump_context.o -MD -MP -MF src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-dump_context.Tpo -c -o src/processor/src_client_linux_linux_client_unittest_shlib-dump_context.o `test -f 'src/processor/dump_context.cc' || echo '$(srcdir)/'`src/processor/dump_context.cc
|
||||||
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-dump_context.Tpo src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-dump_context.Po
|
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-dump_context.Tpo src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-dump_context.Po
|
||||||
|
@ -8398,7 +8442,7 @@ distdir: $(DISTFILES)
|
||||||
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|
||||||
|| chmod -R a+r "$(distdir)"
|
|| chmod -R a+r "$(distdir)"
|
||||||
dist-gzip: distdir
|
dist-gzip: distdir
|
||||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
|
||||||
$(am__post_remove_distdir)
|
$(am__post_remove_distdir)
|
||||||
|
|
||||||
dist-bzip2: distdir
|
dist-bzip2: distdir
|
||||||
|
@ -8424,7 +8468,7 @@ dist-shar: distdir
|
||||||
@echo WARNING: "Support for shar distribution archives is" \
|
@echo WARNING: "Support for shar distribution archives is" \
|
||||||
"deprecated." >&2
|
"deprecated." >&2
|
||||||
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
|
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
|
||||||
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
|
shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
|
||||||
$(am__post_remove_distdir)
|
$(am__post_remove_distdir)
|
||||||
|
|
||||||
dist-zip: distdir
|
dist-zip: distdir
|
||||||
|
@ -8442,7 +8486,7 @@ dist dist-all:
|
||||||
distcheck: dist
|
distcheck: dist
|
||||||
case '$(DIST_ARCHIVES)' in \
|
case '$(DIST_ARCHIVES)' in \
|
||||||
*.tar.gz*) \
|
*.tar.gz*) \
|
||||||
GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
|
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
|
||||||
*.tar.bz2*) \
|
*.tar.bz2*) \
|
||||||
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
|
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
|
||||||
*.tar.lz*) \
|
*.tar.lz*) \
|
||||||
|
@ -8452,7 +8496,7 @@ distcheck: dist
|
||||||
*.tar.Z*) \
|
*.tar.Z*) \
|
||||||
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
|
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
|
||||||
*.shar.gz*) \
|
*.shar.gz*) \
|
||||||
GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
|
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
|
||||||
*.zip*) \
|
*.zip*) \
|
||||||
unzip $(distdir).zip ;;\
|
unzip $(distdir).zip ;;\
|
||||||
esac
|
esac
|
||||||
|
|
52
aclocal.m4
vendored
52
aclocal.m4
vendored
|
@ -1,6 +1,6 @@
|
||||||
# generated automatically by aclocal 1.15 -*- Autoconf -*-
|
# generated automatically by aclocal 1.15.1 -*- Autoconf -*-
|
||||||
|
|
||||||
# Copyright (C) 1996-2014 Free Software Foundation, Inc.
|
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
|
||||||
|
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
@ -20,7 +20,7 @@ You have another version of autoconf. It may work, but is not guaranteed to.
|
||||||
If you have problems, you may need to regenerate the build system entirely.
|
If you have problems, you may need to regenerate the build system entirely.
|
||||||
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
|
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
|
||||||
|
|
||||||
# Copyright (C) 2002-2014 Free Software Foundation, Inc.
|
# Copyright (C) 2002-2017 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
@ -35,7 +35,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION],
|
||||||
[am__api_version='1.15'
|
[am__api_version='1.15'
|
||||||
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
|
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
|
||||||
dnl require some minimum version. Point them to the right macro.
|
dnl require some minimum version. Point them to the right macro.
|
||||||
m4_if([$1], [1.15], [],
|
m4_if([$1], [1.15.1], [],
|
||||||
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
|
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
|
||||||
])
|
])
|
||||||
|
|
||||||
|
@ -51,12 +51,12 @@ m4_define([_AM_AUTOCONF_VERSION], [])
|
||||||
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
|
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
|
||||||
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
|
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
|
||||||
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
|
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
|
||||||
[AM_AUTOMAKE_VERSION([1.15])dnl
|
[AM_AUTOMAKE_VERSION([1.15.1])dnl
|
||||||
m4_ifndef([AC_AUTOCONF_VERSION],
|
m4_ifndef([AC_AUTOCONF_VERSION],
|
||||||
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
||||||
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
|
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
|
||||||
|
|
||||||
# Copyright (C) 2011-2014 Free Software Foundation, Inc.
|
# Copyright (C) 2011-2017 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
@ -118,7 +118,7 @@ AC_SUBST([AR])dnl
|
||||||
|
|
||||||
# Figure out how to run the assembler. -*- Autoconf -*-
|
# Figure out how to run the assembler. -*- Autoconf -*-
|
||||||
|
|
||||||
# Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
@ -138,7 +138,7 @@ _AM_IF_OPTION([no-dependencies],, [_AM_DEPENDENCIES([CCAS])])dnl
|
||||||
|
|
||||||
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
|
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
|
||||||
|
|
||||||
# Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
@ -190,7 +190,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd`
|
||||||
|
|
||||||
# AM_CONDITIONAL -*- Autoconf -*-
|
# AM_CONDITIONAL -*- Autoconf -*-
|
||||||
|
|
||||||
# Copyright (C) 1997-2014 Free Software Foundation, Inc.
|
# Copyright (C) 1997-2017 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
@ -221,7 +221,7 @@ AC_CONFIG_COMMANDS_PRE(
|
||||||
Usually this means the macro was only invoked conditionally.]])
|
Usually this means the macro was only invoked conditionally.]])
|
||||||
fi])])
|
fi])])
|
||||||
|
|
||||||
# Copyright (C) 1999-2014 Free Software Foundation, Inc.
|
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
@ -412,7 +412,7 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl
|
||||||
|
|
||||||
# Generate code to set up dependency tracking. -*- Autoconf -*-
|
# Generate code to set up dependency tracking. -*- Autoconf -*-
|
||||||
|
|
||||||
# Copyright (C) 1999-2014 Free Software Foundation, Inc.
|
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
@ -488,7 +488,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||||
|
|
||||||
# Do all the work for Automake. -*- Autoconf -*-
|
# Do all the work for Automake. -*- Autoconf -*-
|
||||||
|
|
||||||
# Copyright (C) 1996-2014 Free Software Foundation, Inc.
|
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
@ -685,7 +685,7 @@ for _am_header in $config_headers :; do
|
||||||
done
|
done
|
||||||
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
|
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
|
||||||
|
|
||||||
# Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
@ -706,7 +706,7 @@ if test x"${install_sh+set}" != xset; then
|
||||||
fi
|
fi
|
||||||
AC_SUBST([install_sh])])
|
AC_SUBST([install_sh])])
|
||||||
|
|
||||||
# Copyright (C) 2003-2014 Free Software Foundation, Inc.
|
# Copyright (C) 2003-2017 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
@ -728,7 +728,7 @@ AC_SUBST([am__leading_dot])])
|
||||||
# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
|
# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
|
||||||
# From Jim Meyering
|
# From Jim Meyering
|
||||||
|
|
||||||
# Copyright (C) 1996-2014 Free Software Foundation, Inc.
|
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
@ -763,7 +763,7 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
|
||||||
|
|
||||||
# Check to see how 'make' treats includes. -*- Autoconf -*-
|
# Check to see how 'make' treats includes. -*- Autoconf -*-
|
||||||
|
|
||||||
# Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
@ -813,7 +813,7 @@ rm -f confinc confmf
|
||||||
|
|
||||||
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
|
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
|
||||||
|
|
||||||
# Copyright (C) 1997-2014 Free Software Foundation, Inc.
|
# Copyright (C) 1997-2017 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
@ -854,7 +854,7 @@ fi
|
||||||
# Obsolete and "removed" macros, that must however still report explicit
|
# Obsolete and "removed" macros, that must however still report explicit
|
||||||
# error messages when used, to smooth transition.
|
# error messages when used, to smooth transition.
|
||||||
#
|
#
|
||||||
# Copyright (C) 1996-2014 Free Software Foundation, Inc.
|
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
@ -881,7 +881,7 @@ AU_DEFUN([fp_C_PROTOTYPES], [AM_C_PROTOTYPES])
|
||||||
|
|
||||||
# Helper functions for option handling. -*- Autoconf -*-
|
# Helper functions for option handling. -*- Autoconf -*-
|
||||||
|
|
||||||
# Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
@ -910,7 +910,7 @@ AC_DEFUN([_AM_SET_OPTIONS],
|
||||||
AC_DEFUN([_AM_IF_OPTION],
|
AC_DEFUN([_AM_IF_OPTION],
|
||||||
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
|
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
|
||||||
|
|
||||||
# Copyright (C) 1999-2014 Free Software Foundation, Inc.
|
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
@ -957,7 +957,7 @@ AC_LANG_POP([C])])
|
||||||
# For backward compatibility.
|
# For backward compatibility.
|
||||||
AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
|
AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
|
||||||
|
|
||||||
# Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
@ -976,7 +976,7 @@ AC_DEFUN([AM_RUN_LOG],
|
||||||
|
|
||||||
# Check to make sure that the build environment is sane. -*- Autoconf -*-
|
# Check to make sure that the build environment is sane. -*- Autoconf -*-
|
||||||
|
|
||||||
# Copyright (C) 1996-2014 Free Software Foundation, Inc.
|
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
@ -1057,7 +1057,7 @@ AC_CONFIG_COMMANDS_PRE(
|
||||||
rm -f conftest.file
|
rm -f conftest.file
|
||||||
])
|
])
|
||||||
|
|
||||||
# Copyright (C) 2009-2014 Free Software Foundation, Inc.
|
# Copyright (C) 2009-2017 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
@ -1117,7 +1117,7 @@ AC_SUBST([AM_BACKSLASH])dnl
|
||||||
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
|
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
|
||||||
])
|
])
|
||||||
|
|
||||||
# Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
@ -1145,7 +1145,7 @@ fi
|
||||||
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
|
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
|
||||||
AC_SUBST([INSTALL_STRIP_PROGRAM])])
|
AC_SUBST([INSTALL_STRIP_PROGRAM])])
|
||||||
|
|
||||||
# Copyright (C) 2006-2014 Free Software Foundation, Inc.
|
# Copyright (C) 2006-2017 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
@ -1164,7 +1164,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
|
||||||
|
|
||||||
# Check how to create a tarball. -*- Autoconf -*-
|
# Check how to create a tarball. -*- Autoconf -*-
|
||||||
|
|
||||||
# Copyright (C) 2004-2014 Free Software Foundation, Inc.
|
# Copyright (C) 2004-2017 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
|
|
@ -52,6 +52,9 @@
|
||||||
3329D4ED0FA16D820007BBC5 /* Breakpad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3329D4EC0FA16D820007BBC5 /* Breakpad.xib */; };
|
3329D4ED0FA16D820007BBC5 /* Breakpad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3329D4EC0FA16D820007BBC5 /* Breakpad.xib */; };
|
||||||
33880C800F9E097100817F82 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 33880C7E0F9E097100817F82 /* InfoPlist.strings */; };
|
33880C800F9E097100817F82 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 33880C7E0F9E097100817F82 /* InfoPlist.strings */; };
|
||||||
4084699D0F5D9CF900FDCA37 /* crash_report_sender.icns in Resources */ = {isa = PBXBuildFile; fileRef = 4084699C0F5D9CF900FDCA37 /* crash_report_sender.icns */; };
|
4084699D0F5D9CF900FDCA37 /* crash_report_sender.icns in Resources */ = {isa = PBXBuildFile; fileRef = 4084699C0F5D9CF900FDCA37 /* crash_report_sender.icns */; };
|
||||||
|
421BC5BC21110C0300B8042E /* convert_old_arm64_context.cc in Sources */ = {isa = PBXBuildFile; fileRef = 421BC5AD21110C0300B8042E /* convert_old_arm64_context.cc */; };
|
||||||
|
421BC5BD21110C0300B8042E /* convert_old_arm64_context.h in Headers */ = {isa = PBXBuildFile; fileRef = 421BC5BB21110C0300B8042E /* convert_old_arm64_context.h */; };
|
||||||
|
421BC5BE21110C1000B8042E /* convert_old_arm64_context.cc in Sources */ = {isa = PBXBuildFile; fileRef = 421BC5AD21110C0300B8042E /* convert_old_arm64_context.cc */; };
|
||||||
4247E6412110D7A300482558 /* memory_allocator_unittest.cc in Sources */ = {isa = PBXBuildFile; fileRef = D244540A12439BA0009BBCE0 /* memory_allocator_unittest.cc */; };
|
4247E6412110D7A300482558 /* memory_allocator_unittest.cc in Sources */ = {isa = PBXBuildFile; fileRef = D244540A12439BA0009BBCE0 /* memory_allocator_unittest.cc */; };
|
||||||
4D61A25F14F43CFC002D5862 /* bootstrap_compat.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D61A25D14F43CFC002D5862 /* bootstrap_compat.cc */; };
|
4D61A25F14F43CFC002D5862 /* bootstrap_compat.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D61A25D14F43CFC002D5862 /* bootstrap_compat.cc */; };
|
||||||
4D61A26B14F43D3C002D5862 /* bootstrap_compat.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D61A25D14F43CFC002D5862 /* bootstrap_compat.cc */; };
|
4D61A26B14F43D3C002D5862 /* bootstrap_compat.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D61A25D14F43CFC002D5862 /* bootstrap_compat.cc */; };
|
||||||
|
@ -577,6 +580,8 @@
|
||||||
3329D4EC0FA16D820007BBC5 /* Breakpad.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Breakpad.xib; path = sender/Breakpad.xib; sourceTree = "<group>"; };
|
3329D4EC0FA16D820007BBC5 /* Breakpad.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Breakpad.xib; path = sender/Breakpad.xib; sourceTree = "<group>"; };
|
||||||
33880C7F0F9E097100817F82 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = sender/English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
33880C7F0F9E097100817F82 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = sender/English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||||
4084699C0F5D9CF900FDCA37 /* crash_report_sender.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = crash_report_sender.icns; path = sender/crash_report_sender.icns; sourceTree = "<group>"; };
|
4084699C0F5D9CF900FDCA37 /* crash_report_sender.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = crash_report_sender.icns; path = sender/crash_report_sender.icns; sourceTree = "<group>"; };
|
||||||
|
421BC5AD21110C0300B8042E /* convert_old_arm64_context.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = convert_old_arm64_context.cc; path = ../../processor/convert_old_arm64_context.cc; sourceTree = "<group>"; };
|
||||||
|
421BC5BB21110C0300B8042E /* convert_old_arm64_context.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = convert_old_arm64_context.h; path = ../../processor/convert_old_arm64_context.h; sourceTree = "<group>"; };
|
||||||
4D61A25D14F43CFC002D5862 /* bootstrap_compat.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = bootstrap_compat.cc; path = ../../common/mac/bootstrap_compat.cc; sourceTree = SOURCE_ROOT; };
|
4D61A25D14F43CFC002D5862 /* bootstrap_compat.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = bootstrap_compat.cc; path = ../../common/mac/bootstrap_compat.cc; sourceTree = SOURCE_ROOT; };
|
||||||
4D61A25E14F43CFC002D5862 /* bootstrap_compat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = bootstrap_compat.h; path = ../../common/mac/bootstrap_compat.h; sourceTree = SOURCE_ROOT; };
|
4D61A25E14F43CFC002D5862 /* bootstrap_compat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = bootstrap_compat.h; path = ../../common/mac/bootstrap_compat.h; sourceTree = SOURCE_ROOT; };
|
||||||
4D72CA0D13DFAD5C006CABE3 /* md5.cc */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; name = md5.cc; path = ../../common/md5.cc; sourceTree = SOURCE_ROOT; };
|
4D72CA0D13DFAD5C006CABE3 /* md5.cc */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; name = md5.cc; path = ../../common/md5.cc; sourceTree = SOURCE_ROOT; };
|
||||||
|
@ -896,6 +901,8 @@
|
||||||
D244536912426EE7009BBCE0 /* processor */ = {
|
D244536912426EE7009BBCE0 /* processor */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
421BC5AD21110C0300B8042E /* convert_old_arm64_context.cc */,
|
||||||
|
421BC5BB21110C0300B8042E /* convert_old_arm64_context.h */,
|
||||||
D244535112426EBB009BBCE0 /* logging.cc */,
|
D244535112426EBB009BBCE0 /* logging.cc */,
|
||||||
D244535212426EBB009BBCE0 /* minidump.cc */,
|
D244535212426EBB009BBCE0 /* minidump.cc */,
|
||||||
D244535312426EBB009BBCE0 /* pathname_stripper.cc */,
|
D244535312426EBB009BBCE0 /* pathname_stripper.cc */,
|
||||||
|
@ -1154,6 +1161,7 @@
|
||||||
D2F9A4CC121336C7002747C1 /* crash_generation_server.h in Headers */,
|
D2F9A4CC121336C7002747C1 /* crash_generation_server.h in Headers */,
|
||||||
163201D61443019E00C4DBF5 /* ConfigFile.h in Headers */,
|
163201D61443019E00C4DBF5 /* ConfigFile.h in Headers */,
|
||||||
16C7C918147D45AE00776EAD /* BreakpadDefines.h in Headers */,
|
16C7C918147D45AE00776EAD /* BreakpadDefines.h in Headers */,
|
||||||
|
421BC5BD21110C0300B8042E /* convert_old_arm64_context.h in Headers */,
|
||||||
162F64F3161C577500CD68D5 /* arch_utilities.h in Headers */,
|
162F64F3161C577500CD68D5 /* arch_utilities.h in Headers */,
|
||||||
F4DAB1DE19F1027100A5A838 /* launch_reporter.h in Headers */,
|
F4DAB1DE19F1027100A5A838 /* launch_reporter.h in Headers */,
|
||||||
1EEEB6241720829E00F7E689 /* simple_string_dictionary.h in Headers */,
|
1EEEB6241720829E00F7E689 /* simple_string_dictionary.h in Headers */,
|
||||||
|
@ -1686,6 +1694,7 @@
|
||||||
163201D71443019E00C4DBF5 /* ConfigFile.mm in Sources */,
|
163201D71443019E00C4DBF5 /* ConfigFile.mm in Sources */,
|
||||||
162F64F2161C577500CD68D5 /* arch_utilities.cc in Sources */,
|
162F64F2161C577500CD68D5 /* arch_utilities.cc in Sources */,
|
||||||
1EEEB6231720829E00F7E689 /* simple_string_dictionary.cc in Sources */,
|
1EEEB6231720829E00F7E689 /* simple_string_dictionary.cc in Sources */,
|
||||||
|
421BC5BC21110C0300B8042E /* convert_old_arm64_context.cc in Sources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
@ -1844,6 +1853,7 @@
|
||||||
isa = PBXSourcesBuildPhase;
|
isa = PBXSourcesBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
|
421BC5BE21110C1000B8042E /* convert_old_arm64_context.cc in Sources */,
|
||||||
4247E6412110D7A300482558 /* memory_allocator_unittest.cc in Sources */,
|
4247E6412110D7A300482558 /* memory_allocator_unittest.cc in Sources */,
|
||||||
D244536A12426F00009BBCE0 /* logging.cc in Sources */,
|
D244536A12426F00009BBCE0 /* logging.cc in Sources */,
|
||||||
D244536B12426F00009BBCE0 /* minidump.cc in Sources */,
|
D244536B12426F00009BBCE0 /* minidump.cc in Sources */,
|
||||||
|
|
|
@ -66,7 +66,61 @@
|
||||||
#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_ARM64_H__
|
#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_ARM64_H__
|
||||||
#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_ARM64_H__
|
#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_ARM64_H__
|
||||||
|
|
||||||
|
#include "google_breakpad/common/breakpad_types.h"
|
||||||
|
|
||||||
#define MD_FLOATINGSAVEAREA_ARM64_FPR_COUNT 32
|
#define MD_FLOATINGSAVEAREA_ARM64_FPR_COUNT 32
|
||||||
|
#define MD_CONTEXT_ARM64_GPR_COUNT 33
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
/* 32 128-bit floating point registers, d0 .. d31. */
|
||||||
|
uint128_struct regs[MD_FLOATINGSAVEAREA_ARM64_FPR_COUNT];
|
||||||
|
|
||||||
|
uint32_t fpcr; /* FPU control register */
|
||||||
|
uint32_t fpsr; /* FPU status register */
|
||||||
|
} MDFloatingSaveAreaARM64;
|
||||||
|
|
||||||
|
/* For (MDRawContextARM64).context_flags. These values indicate the type of
|
||||||
|
* context stored in the structure. */
|
||||||
|
#define MD_CONTEXT_ARM64 0x00400000
|
||||||
|
#define MD_CONTEXT_ARM64_CONTROL (MD_CONTEXT_ARM64 | 0x00000001)
|
||||||
|
#define MD_CONTEXT_ARM64_INTEGER (MD_CONTEXT_ARM64 | 0x00000002)
|
||||||
|
#define MD_CONTEXT_ARM64_FLOATING_POINT (MD_CONTEXT_ARM64 | 0x00000004)
|
||||||
|
#define MD_CONTEXT_ARM64_DEBUG (MD_CONTEXT_ARM64 | 0x00000008)
|
||||||
|
#define MD_CONTEXT_ARM64_FULL (MD_CONTEXT_ARM64_CONTROL | \
|
||||||
|
MD_CONTEXT_ARM64_INTEGER | \
|
||||||
|
MD_CONTEXT_ARM64_FLOATING_POINT)
|
||||||
|
#define MD_CONTEXT_ARM64_ALL (MD_CONTEXT_ARM64_FULL | MD_CONTEXT_ARM64_DEBUG)
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
/* Determines which fields of this struct are populated */
|
||||||
|
uint32_t context_flags;
|
||||||
|
|
||||||
|
/* CPSR (flags, basically): 32 bits:
|
||||||
|
bit 31 - N (negative)
|
||||||
|
bit 30 - Z (zero)
|
||||||
|
bit 29 - C (carry)
|
||||||
|
bit 28 - V (overflow)
|
||||||
|
bit 27 - Q (saturation flag, sticky)
|
||||||
|
All other fields -- ignore */
|
||||||
|
uint32_t cpsr;
|
||||||
|
|
||||||
|
/* 33 64-bit integer registers, x0 .. x31 + the PC
|
||||||
|
* Note the following fixed uses:
|
||||||
|
* x29 is the frame pointer
|
||||||
|
* x30 is the link register
|
||||||
|
* x31 is the stack pointer
|
||||||
|
* The PC is effectively x32.
|
||||||
|
*/
|
||||||
|
uint64_t iregs[MD_CONTEXT_ARM64_GPR_COUNT];
|
||||||
|
|
||||||
|
/* The next field is included with MD_CONTEXT64_ARM_FLOATING_POINT */
|
||||||
|
MDFloatingSaveAreaARM64 float_save;
|
||||||
|
|
||||||
|
uint32_t bcr[8];
|
||||||
|
uint64_t bvr[8];
|
||||||
|
uint32_t wcr[2];
|
||||||
|
uint64_t wvr[2];
|
||||||
|
} MDRawContextARM64;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint32_t fpsr; /* FPU status register */
|
uint32_t fpsr; /* FPU status register */
|
||||||
|
@ -76,8 +130,6 @@ typedef struct {
|
||||||
uint128_struct regs[MD_FLOATINGSAVEAREA_ARM64_FPR_COUNT];
|
uint128_struct regs[MD_FLOATINGSAVEAREA_ARM64_FPR_COUNT];
|
||||||
} MDFloatingSaveAreaARM64_Old;
|
} MDFloatingSaveAreaARM64_Old;
|
||||||
|
|
||||||
#define MD_CONTEXT_ARM64_GPR_COUNT 33
|
|
||||||
|
|
||||||
/* Use the same 32-bit alignment when accessing this structure from 64-bit code
|
/* Use the same 32-bit alignment when accessing this structure from 64-bit code
|
||||||
* as is used natively in 32-bit code. */
|
* as is used natively in 32-bit code. */
|
||||||
#pragma pack(push, 4)
|
#pragma pack(push, 4)
|
||||||
|
|
|
@ -654,6 +654,7 @@ typedef enum {
|
||||||
MD_CPU_ARCHITECTURE_AMD64 = 9, /* PROCESSOR_ARCHITECTURE_AMD64 */
|
MD_CPU_ARCHITECTURE_AMD64 = 9, /* PROCESSOR_ARCHITECTURE_AMD64 */
|
||||||
MD_CPU_ARCHITECTURE_X86_WIN64 = 10,
|
MD_CPU_ARCHITECTURE_X86_WIN64 = 10,
|
||||||
/* PROCESSOR_ARCHITECTURE_IA32_ON_WIN64 (WoW64) */
|
/* PROCESSOR_ARCHITECTURE_IA32_ON_WIN64 (WoW64) */
|
||||||
|
MD_CPU_ARCHITECTURE_ARM64 = 12, /* PROCESSOR_ARCHITECTURE_ARM64 */
|
||||||
MD_CPU_ARCHITECTURE_SPARC = 0x8001, /* Breakpad-defined value for SPARC */
|
MD_CPU_ARCHITECTURE_SPARC = 0x8001, /* Breakpad-defined value for SPARC */
|
||||||
MD_CPU_ARCHITECTURE_PPC64 = 0x8002, /* Breakpad-defined value for PPC64 */
|
MD_CPU_ARCHITECTURE_PPC64 = 0x8002, /* Breakpad-defined value for PPC64 */
|
||||||
MD_CPU_ARCHITECTURE_ARM64_OLD = 0x8003, /* Breakpad-defined value for ARM64 */
|
MD_CPU_ARCHITECTURE_ARM64_OLD = 0x8003, /* Breakpad-defined value for ARM64 */
|
||||||
|
|
|
@ -56,7 +56,7 @@ class DumpContext : public DumpObject {
|
||||||
// context data does not match the CPU type or does not exist, returns NULL.
|
// context data does not match the CPU type or does not exist, returns NULL.
|
||||||
const MDRawContextAMD64* GetContextAMD64() const;
|
const MDRawContextAMD64* GetContextAMD64() const;
|
||||||
const MDRawContextARM* GetContextARM() const;
|
const MDRawContextARM* GetContextARM() const;
|
||||||
const MDRawContextARM64_Old* GetContextARM64() const;
|
const MDRawContextARM64* GetContextARM64() const;
|
||||||
const MDRawContextMIPS* GetContextMIPS() const;
|
const MDRawContextMIPS* GetContextMIPS() const;
|
||||||
const MDRawContextPPC* GetContextPPC() const;
|
const MDRawContextPPC* GetContextPPC() const;
|
||||||
const MDRawContextPPC64* GetContextPPC64() const;
|
const MDRawContextPPC64* GetContextPPC64() const;
|
||||||
|
@ -85,7 +85,7 @@ class DumpContext : public DumpObject {
|
||||||
void SetContextAMD64(MDRawContextAMD64* amd64);
|
void SetContextAMD64(MDRawContextAMD64* amd64);
|
||||||
void SetContextSPARC(MDRawContextSPARC* ctx_sparc);
|
void SetContextSPARC(MDRawContextSPARC* ctx_sparc);
|
||||||
void SetContextARM(MDRawContextARM* arm);
|
void SetContextARM(MDRawContextARM* arm);
|
||||||
void SetContextARM64(MDRawContextARM64_Old* arm64);
|
void SetContextARM64(MDRawContextARM64* arm64);
|
||||||
void SetContextMIPS(MDRawContextMIPS* ctx_mips);
|
void SetContextMIPS(MDRawContextMIPS* ctx_mips);
|
||||||
|
|
||||||
// Free the CPU-specific context structure.
|
// Free the CPU-specific context structure.
|
||||||
|
@ -103,7 +103,7 @@ class DumpContext : public DumpObject {
|
||||||
// so variables can NOT be named as sparc
|
// so variables can NOT be named as sparc
|
||||||
MDRawContextSPARC* ctx_sparc;
|
MDRawContextSPARC* ctx_sparc;
|
||||||
MDRawContextARM* arm;
|
MDRawContextARM* arm;
|
||||||
MDRawContextARM64_Old* arm64_old;
|
MDRawContextARM64* arm64;
|
||||||
MDRawContextMIPS* ctx_mips;
|
MDRawContextMIPS* ctx_mips;
|
||||||
} context_;
|
} context_;
|
||||||
|
|
||||||
|
|
|
@ -68,7 +68,7 @@ class MicrodumpModules : public BasicCodeModules {
|
||||||
class MicrodumpContext : public DumpContext {
|
class MicrodumpContext : public DumpContext {
|
||||||
public:
|
public:
|
||||||
virtual void SetContextARM(MDRawContextARM* arm);
|
virtual void SetContextARM(MDRawContextARM* arm);
|
||||||
virtual void SetContextARM64(MDRawContextARM64_Old* arm64);
|
virtual void SetContextARM64(MDRawContextARM64* arm64);
|
||||||
virtual void SetContextX86(MDRawContextX86* x86);
|
virtual void SetContextX86(MDRawContextX86* x86);
|
||||||
virtual void SetContextMIPS(MDRawContextMIPS* mips32);
|
virtual void SetContextMIPS(MDRawContextMIPS* mips32);
|
||||||
virtual void SetContextMIPS64(MDRawContextMIPS* mips64);
|
virtual void SetContextMIPS64(MDRawContextMIPS* mips64);
|
||||||
|
|
|
@ -1260,6 +1260,8 @@ class Minidump {
|
||||||
|
|
||||||
bool swap() const { return valid_ ? swap_ : false; }
|
bool swap() const { return valid_ ? swap_ : false; }
|
||||||
|
|
||||||
|
bool is_big_endian() const { return valid_ ? is_big_endian_ : false; }
|
||||||
|
|
||||||
// Print a human-readable representation of the object to stdout.
|
// Print a human-readable representation of the object to stdout.
|
||||||
void Print();
|
void Print();
|
||||||
|
|
||||||
|
@ -1325,6 +1327,9 @@ class Minidump {
|
||||||
// same-endian, this will be false.
|
// same-endian, this will be false.
|
||||||
bool swap_;
|
bool swap_;
|
||||||
|
|
||||||
|
// true if the minidump was produced by a big-endian cpu.
|
||||||
|
bool is_big_endian_;
|
||||||
|
|
||||||
// Validity of the Minidump structure, false immediately after
|
// Validity of the Minidump structure, false immediately after
|
||||||
// construction or after a failed Read(); true following a successful
|
// construction or after a failed Read(); true following a successful
|
||||||
// Read().
|
// Read().
|
||||||
|
|
|
@ -327,7 +327,7 @@ struct StackFrameARM64 : public StackFrame {
|
||||||
// stack. In other frames, the values of nonvolatile registers may be
|
// stack. In other frames, the values of nonvolatile registers may be
|
||||||
// present, given sufficient debugging information. Refer to
|
// present, given sufficient debugging information. Refer to
|
||||||
// context_validity.
|
// context_validity.
|
||||||
MDRawContextARM64_Old context;
|
MDRawContextARM64 context;
|
||||||
|
|
||||||
// For each register in context whose value has been recovered, we set
|
// For each register in context whose value has been recovered, we set
|
||||||
// the corresponding CONTEXT_VALID_ bit in context_validity.
|
// the corresponding CONTEXT_VALID_ bit in context_validity.
|
||||||
|
|
67
src/processor/convert_old_arm64_context.cc
Normal file
67
src/processor/convert_old_arm64_context.cc
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
// Copyright (c) 2018, Google Inc.
|
||||||
|
// All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without
|
||||||
|
// modification, are permitted provided that the following conditions are
|
||||||
|
// met:
|
||||||
|
//
|
||||||
|
// * Redistributions of source code must retain the above copyright
|
||||||
|
// notice, this list of conditions and the following disclaimer.
|
||||||
|
// * Redistributions in binary form must reproduce the above
|
||||||
|
// copyright notice, this list of conditions and the following disclaimer
|
||||||
|
// in the documentation and/or other materials provided with the
|
||||||
|
// distribution.
|
||||||
|
// * Neither the name of Google Inc. nor the names of its
|
||||||
|
// contributors may be used to endorse or promote products derived from
|
||||||
|
// this software without specific prior written permission.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
#include "processor/convert_old_arm64_context.h"
|
||||||
|
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
namespace google_breakpad {
|
||||||
|
|
||||||
|
void ConvertOldARM64Context(const MDRawContextARM64_Old& old,
|
||||||
|
MDRawContextARM64* context) {
|
||||||
|
context->context_flags = MD_CONTEXT_ARM64;
|
||||||
|
if (old.context_flags & MD_CONTEXT_ARM64_INTEGER_OLD) {
|
||||||
|
context->context_flags |=
|
||||||
|
MD_CONTEXT_ARM64_INTEGER | MD_CONTEXT_ARM64_CONTROL;
|
||||||
|
}
|
||||||
|
if (old.context_flags & MD_CONTEXT_ARM64_FLOATING_POINT_OLD) {
|
||||||
|
context->context_flags |= MD_CONTEXT_ARM64_FLOATING_POINT;
|
||||||
|
}
|
||||||
|
|
||||||
|
context->cpsr = old.cpsr;
|
||||||
|
|
||||||
|
static_assert(sizeof(old.iregs) == sizeof(context->iregs),
|
||||||
|
"iregs size mismatch");
|
||||||
|
memcpy(context->iregs, old.iregs, sizeof(context->iregs));
|
||||||
|
|
||||||
|
static_assert(sizeof(old.float_save.regs) == sizeof(context->float_save.regs),
|
||||||
|
"float_save.regs size mismatch");
|
||||||
|
memcpy(context->float_save.regs,
|
||||||
|
old.float_save.regs,
|
||||||
|
sizeof(context->float_save.regs));
|
||||||
|
context->float_save.fpcr = old.float_save.fpcr;
|
||||||
|
context->float_save.fpsr = old.float_save.fpsr;
|
||||||
|
|
||||||
|
memset(context->bcr, 0, sizeof(context->bcr));
|
||||||
|
memset(context->bvr, 0, sizeof(context->bvr));
|
||||||
|
memset(context->wcr, 0, sizeof(context->wcr));
|
||||||
|
memset(context->wvr, 0, sizeof(context->wvr));
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace google_breakpad
|
42
src/processor/convert_old_arm64_context.h
Normal file
42
src/processor/convert_old_arm64_context.h
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
// Copyright (c) 2018, Google Inc.
|
||||||
|
// All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without
|
||||||
|
// modification, are permitted provided that the following conditions are
|
||||||
|
// met:
|
||||||
|
//
|
||||||
|
// * Redistributions of source code must retain the above copyright
|
||||||
|
// notice, this list of conditions and the following disclaimer.
|
||||||
|
// * Redistributions in binary form must reproduce the above
|
||||||
|
// copyright notice, this list of conditions and the following disclaimer
|
||||||
|
// in the documentation and/or other materials provided with the
|
||||||
|
// distribution.
|
||||||
|
// * Neither the name of Google Inc. nor the names of its
|
||||||
|
// contributors may be used to endorse or promote products derived from
|
||||||
|
// this software without specific prior written permission.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
#ifndef PROCESSOR_CONVERT_OLD_ARM64_CONTEXT_H__
|
||||||
|
#define PROCESSOR_CONVERT_OLD_ARM64_CONTEXT_H__
|
||||||
|
|
||||||
|
#include "google_breakpad/common/minidump_cpu_arm64.h"
|
||||||
|
|
||||||
|
namespace google_breakpad {
|
||||||
|
|
||||||
|
void ConvertOldARM64Context(const MDRawContextARM64_Old& old,
|
||||||
|
MDRawContextARM64* context);
|
||||||
|
|
||||||
|
} // namespace google_breakpad
|
||||||
|
|
||||||
|
#endif // PROCESSOR_CONVERT_OLD_ARM64_CONTEXT_H__
|
|
@ -121,13 +121,13 @@ const MDRawContextARM* DumpContext::GetContextARM() const {
|
||||||
return context_.arm;
|
return context_.arm;
|
||||||
}
|
}
|
||||||
|
|
||||||
const MDRawContextARM64_Old* DumpContext::GetContextARM64() const {
|
const MDRawContextARM64* DumpContext::GetContextARM64() const {
|
||||||
if (GetContextCPU() != MD_CONTEXT_ARM64_OLD) {
|
if (GetContextCPU() != MD_CONTEXT_ARM64) {
|
||||||
BPLOG(ERROR) << "DumpContext cannot get arm64 context";
|
BPLOG(ERROR) << "DumpContext cannot get arm64 context";
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return context_.arm64_old;
|
return context_.arm64;
|
||||||
}
|
}
|
||||||
|
|
||||||
const MDRawContextMIPS* DumpContext::GetContextMIPS() const {
|
const MDRawContextMIPS* DumpContext::GetContextMIPS() const {
|
||||||
|
@ -157,7 +157,7 @@ bool DumpContext::GetInstructionPointer(uint64_t* ip) const {
|
||||||
case MD_CONTEXT_ARM:
|
case MD_CONTEXT_ARM:
|
||||||
*ip = GetContextARM()->iregs[MD_CONTEXT_ARM_REG_PC];
|
*ip = GetContextARM()->iregs[MD_CONTEXT_ARM_REG_PC];
|
||||||
break;
|
break;
|
||||||
case MD_CONTEXT_ARM64_OLD:
|
case MD_CONTEXT_ARM64:
|
||||||
*ip = GetContextARM64()->iregs[MD_CONTEXT_ARM64_REG_PC];
|
*ip = GetContextARM64()->iregs[MD_CONTEXT_ARM64_REG_PC];
|
||||||
break;
|
break;
|
||||||
case MD_CONTEXT_PPC:
|
case MD_CONTEXT_PPC:
|
||||||
|
@ -201,7 +201,7 @@ bool DumpContext::GetStackPointer(uint64_t* sp) const {
|
||||||
case MD_CONTEXT_ARM:
|
case MD_CONTEXT_ARM:
|
||||||
*sp = GetContextARM()->iregs[MD_CONTEXT_ARM_REG_SP];
|
*sp = GetContextARM()->iregs[MD_CONTEXT_ARM_REG_SP];
|
||||||
break;
|
break;
|
||||||
case MD_CONTEXT_ARM64_OLD:
|
case MD_CONTEXT_ARM64:
|
||||||
*sp = GetContextARM64()->iregs[MD_CONTEXT_ARM64_REG_SP];
|
*sp = GetContextARM64()->iregs[MD_CONTEXT_ARM64_REG_SP];
|
||||||
break;
|
break;
|
||||||
case MD_CONTEXT_PPC:
|
case MD_CONTEXT_PPC:
|
||||||
|
@ -256,8 +256,8 @@ void DumpContext::SetContextARM(MDRawContextARM* arm) {
|
||||||
context_.arm = arm;
|
context_.arm = arm;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DumpContext::SetContextARM64(MDRawContextARM64_Old* arm64) {
|
void DumpContext::SetContextARM64(MDRawContextARM64* arm64) {
|
||||||
context_.arm64_old = arm64;
|
context_.arm64 = arm64;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DumpContext::SetContextMIPS(MDRawContextMIPS* ctx_mips) {
|
void DumpContext::SetContextMIPS(MDRawContextMIPS* ctx_mips) {
|
||||||
|
@ -290,10 +290,6 @@ void DumpContext::FreeContext() {
|
||||||
delete context_.arm;
|
delete context_.arm;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MD_CONTEXT_ARM64_OLD:
|
|
||||||
delete context_.arm64_old;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case MD_CONTEXT_MIPS:
|
case MD_CONTEXT_MIPS:
|
||||||
case MD_CONTEXT_MIPS64:
|
case MD_CONTEXT_MIPS64:
|
||||||
delete context_.ctx_mips;
|
delete context_.ctx_mips;
|
||||||
|
@ -581,10 +577,10 @@ void DumpContext::Print() {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case MD_CONTEXT_ARM64_OLD: {
|
case MD_CONTEXT_ARM64: {
|
||||||
const MDRawContextARM64_Old* context_arm64 = GetContextARM64();
|
const MDRawContextARM64* context_arm64 = GetContextARM64();
|
||||||
printf("MDRawContextARM64\n");
|
printf("MDRawContextARM64\n");
|
||||||
printf(" context_flags = 0x%" PRIx64 "\n",
|
printf(" context_flags = 0x%x\n",
|
||||||
context_arm64->context_flags);
|
context_arm64->context_flags);
|
||||||
for (unsigned int ireg_index = 0;
|
for (unsigned int ireg_index = 0;
|
||||||
ireg_index < MD_CONTEXT_ARM64_GPR_COUNT;
|
ireg_index < MD_CONTEXT_ARM64_GPR_COUNT;
|
||||||
|
@ -603,6 +599,7 @@ void DumpContext::Print() {
|
||||||
printf(" float_save.regs[%2d] = 0x%" PRIx64 "%" PRIx64 "\n",
|
printf(" float_save.regs[%2d] = 0x%" PRIx64 "%" PRIx64 "\n",
|
||||||
freg_index, fp_value.high, fp_value.low);
|
freg_index, fp_value.high, fp_value.low);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -44,6 +44,7 @@
|
||||||
#include "google_breakpad/common/minidump_cpu_arm.h"
|
#include "google_breakpad/common/minidump_cpu_arm.h"
|
||||||
#include "google_breakpad/processor/code_module.h"
|
#include "google_breakpad/processor/code_module.h"
|
||||||
#include "processor/basic_code_module.h"
|
#include "processor/basic_code_module.h"
|
||||||
|
#include "processor/convert_old_arm64_context.h"
|
||||||
#include "processor/linked_ptr.h"
|
#include "processor/linked_ptr.h"
|
||||||
#include "processor/logging.h"
|
#include "processor/logging.h"
|
||||||
#include "processor/range_map-inl.h"
|
#include "processor/range_map-inl.h"
|
||||||
|
@ -125,8 +126,8 @@ void MicrodumpContext::SetContextARM(MDRawContextARM* arm) {
|
||||||
valid_ = true;
|
valid_ = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MicrodumpContext::SetContextARM64(MDRawContextARM64_Old* arm64) {
|
void MicrodumpContext::SetContextARM64(MDRawContextARM64* arm64) {
|
||||||
DumpContext::SetContextFlags(MD_CONTEXT_ARM64_OLD);
|
DumpContext::SetContextFlags(MD_CONTEXT_ARM64);
|
||||||
DumpContext::SetContextARM64(arm64);
|
DumpContext::SetContextARM64(arm64);
|
||||||
valid_ = true;
|
valid_ = true;
|
||||||
}
|
}
|
||||||
|
@ -311,15 +312,22 @@ Microdump::Microdump(const string& contents)
|
||||||
memcpy(arm, &cpu_state_raw[0], cpu_state_raw.size());
|
memcpy(arm, &cpu_state_raw[0], cpu_state_raw.size());
|
||||||
context_->SetContextARM(arm);
|
context_->SetContextARM(arm);
|
||||||
} else if (strcmp(arch.c_str(), kArm64Architecture) == 0) {
|
} else if (strcmp(arch.c_str(), kArm64Architecture) == 0) {
|
||||||
if (cpu_state_raw.size() != sizeof(MDRawContextARM64_Old)) {
|
if (cpu_state_raw.size() == sizeof(MDRawContextARM64)) {
|
||||||
|
MDRawContextARM64* arm = new MDRawContextARM64();
|
||||||
|
memcpy(arm, &cpu_state_raw[0], cpu_state_raw.size());
|
||||||
|
context_->SetContextARM64(arm);
|
||||||
|
} else if (cpu_state_raw.size() == sizeof(MDRawContextARM64_Old)) {
|
||||||
|
MDRawContextARM64_Old old_arm;
|
||||||
|
memcpy(&old_arm, &cpu_state_raw[0], cpu_state_raw.size());
|
||||||
|
MDRawContextARM64* new_arm = new MDRawContextARM64();
|
||||||
|
ConvertOldARM64Context(old_arm, new_arm);
|
||||||
|
context_->SetContextARM64(new_arm);
|
||||||
|
} else {
|
||||||
std::cerr << "Malformed CPU context. Got " << cpu_state_raw.size()
|
std::cerr << "Malformed CPU context. Got " << cpu_state_raw.size()
|
||||||
<< " bytes instead of " << sizeof(MDRawContextARM64_Old)
|
<< " bytes instead of " << sizeof(MDRawContextARM64)
|
||||||
<< std::endl;
|
<< std::endl;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
MDRawContextARM64_Old* arm = new MDRawContextARM64_Old();
|
|
||||||
memcpy(arm, &cpu_state_raw[0], cpu_state_raw.size());
|
|
||||||
context_->SetContextARM64(arm);
|
|
||||||
} else if (strcmp(arch.c_str(), kX86Architecture) == 0) {
|
} else if (strcmp(arch.c_str(), kX86Architecture) == 0) {
|
||||||
if (cpu_state_raw.size() != sizeof(MDRawContextX86)) {
|
if (cpu_state_raw.size() != sizeof(MDRawContextX86)) {
|
||||||
std::cerr << "Malformed CPU context. Got " << cpu_state_raw.size()
|
std::cerr << "Malformed CPU context. Got " << cpu_state_raw.size()
|
||||||
|
|
|
@ -59,6 +59,7 @@
|
||||||
#include "google_breakpad/processor/dump_context.h"
|
#include "google_breakpad/processor/dump_context.h"
|
||||||
#include "processor/basic_code_module.h"
|
#include "processor/basic_code_module.h"
|
||||||
#include "processor/basic_code_modules.h"
|
#include "processor/basic_code_modules.h"
|
||||||
|
#include "processor/convert_old_arm64_context.h"
|
||||||
#include "processor/logging.h"
|
#include "processor/logging.h"
|
||||||
|
|
||||||
// All intentional fallthroughs in breakpad are in this file, so define
|
// All intentional fallthroughs in breakpad are in this file, so define
|
||||||
|
@ -104,6 +105,8 @@ bool IsContextSizeUnique(uint32_t context_size) {
|
||||||
num_matching_contexts++;
|
num_matching_contexts++;
|
||||||
if (context_size == sizeof(MDRawContextARM))
|
if (context_size == sizeof(MDRawContextARM))
|
||||||
num_matching_contexts++;
|
num_matching_contexts++;
|
||||||
|
if (context_size == sizeof(MDRawContextARM64))
|
||||||
|
num_matching_contexts++;
|
||||||
if (context_size == sizeof(MDRawContextARM64_Old))
|
if (context_size == sizeof(MDRawContextARM64_Old))
|
||||||
num_matching_contexts++;
|
num_matching_contexts++;
|
||||||
if (context_size == sizeof(MDRawContextMIPS))
|
if (context_size == sizeof(MDRawContextMIPS))
|
||||||
|
@ -745,10 +748,8 @@ bool MinidumpContext::Read(uint32_t expected_size) {
|
||||||
for (unsigned int fpr_index = 0;
|
for (unsigned int fpr_index = 0;
|
||||||
fpr_index < MD_FLOATINGSAVEAREA_ARM64_FPR_COUNT;
|
fpr_index < MD_FLOATINGSAVEAREA_ARM64_FPR_COUNT;
|
||||||
++fpr_index) {
|
++fpr_index) {
|
||||||
// While ARM64 is bi-endian, iOS (currently the only platform
|
Normalize128(&context_arm64->float_save.regs[fpr_index],
|
||||||
// for which ARM64 support has been brought up) uses ARM64 exclusively
|
minidump_->is_big_endian());
|
||||||
// in little-endian mode.
|
|
||||||
Normalize128(&context_arm64->float_save.regs[fpr_index], false);
|
|
||||||
Swap(&context_arm64->float_save.regs[fpr_index]);
|
Swap(&context_arm64->float_save.regs[fpr_index]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -762,7 +763,9 @@ bool MinidumpContext::Read(uint32_t expected_size) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
SetContextARM64(context_arm64.release());
|
scoped_ptr<MDRawContextARM64> new_context(new MDRawContextARM64());
|
||||||
|
ConvertOldARM64Context(*context_arm64.get(), new_context.get());
|
||||||
|
SetContextARM64(new_context.release());
|
||||||
} else {
|
} else {
|
||||||
uint32_t context_flags;
|
uint32_t context_flags;
|
||||||
if (!minidump_->ReadBytes(&context_flags, sizeof(context_flags))) {
|
if (!minidump_->ReadBytes(&context_flags, sizeof(context_flags))) {
|
||||||
|
@ -1059,6 +1062,58 @@ bool MinidumpContext::Read(uint32_t expected_size) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case MD_CONTEXT_ARM64: {
|
||||||
|
if (expected_size != sizeof(MDRawContextARM64)) {
|
||||||
|
BPLOG(ERROR) << "MinidumpContext arm64 size mismatch, " <<
|
||||||
|
expected_size << " != " << sizeof(MDRawContextARM64);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
scoped_ptr<MDRawContextARM64> context_arm64(new MDRawContextARM64());
|
||||||
|
|
||||||
|
// Set the context_flags member, which has already been read, and
|
||||||
|
// read the rest of the structure beginning with the first member
|
||||||
|
// after context_flags.
|
||||||
|
context_arm64->context_flags = context_flags;
|
||||||
|
|
||||||
|
size_t flags_size = sizeof(context_arm64->context_flags);
|
||||||
|
uint8_t* context_after_flags =
|
||||||
|
reinterpret_cast<uint8_t*>(context_arm64.get()) + flags_size;
|
||||||
|
if (!minidump_->ReadBytes(context_after_flags,
|
||||||
|
sizeof(*context_arm64) - flags_size)) {
|
||||||
|
BPLOG(ERROR) << "MinidumpContext could not read arm64 context";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Do this after reading the entire MDRawContext structure because
|
||||||
|
// GetSystemInfo may seek minidump to a new position.
|
||||||
|
if (!CheckAgainstSystemInfo(cpu_type)) {
|
||||||
|
BPLOG(ERROR) << "MinidumpContext arm does not match system info";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (minidump_->swap()) {
|
||||||
|
// context_arm64->context_flags was already swapped.
|
||||||
|
for (unsigned int ireg_index = 0;
|
||||||
|
ireg_index < MD_CONTEXT_ARM64_GPR_COUNT;
|
||||||
|
++ireg_index) {
|
||||||
|
Swap(&context_arm64->iregs[ireg_index]);
|
||||||
|
}
|
||||||
|
Swap(&context_arm64->cpsr);
|
||||||
|
Swap(&context_arm64->float_save.fpsr);
|
||||||
|
Swap(&context_arm64->float_save.fpcr);
|
||||||
|
for (unsigned int fpr_index = 0;
|
||||||
|
fpr_index < MD_FLOATINGSAVEAREA_ARM64_FPR_COUNT;
|
||||||
|
++fpr_index) {
|
||||||
|
Normalize128(&context_arm64->float_save.regs[fpr_index],
|
||||||
|
minidump_->is_big_endian());
|
||||||
|
Swap(&context_arm64->float_save.regs[fpr_index]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SetContextARM64(context_arm64.release());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case MD_CONTEXT_MIPS:
|
case MD_CONTEXT_MIPS:
|
||||||
case MD_CONTEXT_MIPS64: {
|
case MD_CONTEXT_MIPS64: {
|
||||||
if (expected_size != sizeof(MDRawContextMIPS)) {
|
if (expected_size != sizeof(MDRawContextMIPS)) {
|
||||||
|
@ -1199,6 +1254,11 @@ bool MinidumpContext::CheckAgainstSystemInfo(uint32_t context_cpu_type) {
|
||||||
return_value = true;
|
return_value = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case MD_CONTEXT_ARM64:
|
||||||
|
if (system_info_cpu_type == MD_CPU_ARCHITECTURE_ARM64)
|
||||||
|
return_value = true;
|
||||||
|
break;
|
||||||
|
|
||||||
case MD_CONTEXT_ARM64_OLD:
|
case MD_CONTEXT_ARM64_OLD:
|
||||||
if (system_info_cpu_type == MD_CPU_ARCHITECTURE_ARM64_OLD)
|
if (system_info_cpu_type == MD_CPU_ARCHITECTURE_ARM64_OLD)
|
||||||
return_value = true;
|
return_value = true;
|
||||||
|
@ -3487,6 +3547,7 @@ string MinidumpSystemInfo::GetCPU() {
|
||||||
cpu = "arm";
|
cpu = "arm";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case MD_CPU_ARCHITECTURE_ARM64:
|
||||||
case MD_CPU_ARCHITECTURE_ARM64_OLD:
|
case MD_CPU_ARCHITECTURE_ARM64_OLD:
|
||||||
cpu = "arm64";
|
cpu = "arm64";
|
||||||
break;
|
break;
|
||||||
|
@ -4994,6 +5055,7 @@ Minidump::Minidump(const string& path, bool hexdump, unsigned int hexdump_width)
|
||||||
path_(path),
|
path_(path),
|
||||||
stream_(NULL),
|
stream_(NULL),
|
||||||
swap_(false),
|
swap_(false),
|
||||||
|
is_big_endian_(false),
|
||||||
valid_(false),
|
valid_(false),
|
||||||
hexdump_(hexdump),
|
hexdump_(hexdump),
|
||||||
hexdump_width_(hexdump_width) {
|
hexdump_width_(hexdump_width) {
|
||||||
|
@ -5006,6 +5068,7 @@ Minidump::Minidump(istream& stream)
|
||||||
path_(),
|
path_(),
|
||||||
stream_(&stream),
|
stream_(&stream),
|
||||||
swap_(false),
|
swap_(false),
|
||||||
|
is_big_endian_(false),
|
||||||
valid_(false),
|
valid_(false),
|
||||||
hexdump_(false),
|
hexdump_(false),
|
||||||
hexdump_width_(0) {
|
hexdump_width_(0) {
|
||||||
|
@ -5086,6 +5149,9 @@ bool Minidump::GetContextCPUFlagsFromSystemInfo(uint32_t *context_cpu_flags) {
|
||||||
case MD_CPU_ARCHITECTURE_ARM:
|
case MD_CPU_ARCHITECTURE_ARM:
|
||||||
*context_cpu_flags = MD_CONTEXT_ARM;
|
*context_cpu_flags = MD_CONTEXT_ARM;
|
||||||
break;
|
break;
|
||||||
|
case MD_CPU_ARCHITECTURE_ARM64:
|
||||||
|
*context_cpu_flags = MD_CONTEXT_ARM64;
|
||||||
|
break;
|
||||||
case MD_CPU_ARCHITECTURE_ARM64_OLD:
|
case MD_CPU_ARCHITECTURE_ARM64_OLD:
|
||||||
*context_cpu_flags = MD_CONTEXT_ARM64_OLD;
|
*context_cpu_flags = MD_CONTEXT_ARM64_OLD;
|
||||||
break;
|
break;
|
||||||
|
@ -5161,6 +5227,13 @@ bool Minidump::Read() {
|
||||||
swap_ = false;
|
swap_ = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(__BIG_ENDIAN__) || \
|
||||||
|
(defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
|
||||||
|
is_big_endian_ = !swap_;
|
||||||
|
#else
|
||||||
|
is_big_endian_ = swap_;
|
||||||
|
#endif
|
||||||
|
|
||||||
BPLOG(INFO) << "Minidump " << (swap_ ? "" : "not ") <<
|
BPLOG(INFO) << "Minidump " << (swap_ ? "" : "not ") <<
|
||||||
"byte-swapping minidump";
|
"byte-swapping minidump";
|
||||||
|
|
||||||
|
|
|
@ -49,6 +49,8 @@
|
||||||
'cfi_frame_info.h',
|
'cfi_frame_info.h',
|
||||||
'contained_range_map-inl.h',
|
'contained_range_map-inl.h',
|
||||||
'contained_range_map.h',
|
'contained_range_map.h',
|
||||||
|
'convert_old_arm64_context.cc',
|
||||||
|
'convert_old_arm64_context.h',
|
||||||
'disassembler_x86.cc',
|
'disassembler_x86.cc',
|
||||||
'disassembler_x86.h',
|
'disassembler_x86.h',
|
||||||
'dump_context.cc',
|
'dump_context.cc',
|
||||||
|
|
|
@ -259,7 +259,7 @@ Stackwalker* Stackwalker::StackwalkerForCPU(
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case MD_CONTEXT_ARM64_OLD:
|
case MD_CONTEXT_ARM64:
|
||||||
cpu_stackwalker = new StackwalkerARM64(system_info,
|
cpu_stackwalker = new StackwalkerARM64(system_info,
|
||||||
context->GetContextARM64(),
|
context->GetContextARM64(),
|
||||||
memory, modules,
|
memory, modules,
|
||||||
|
|
|
@ -48,7 +48,7 @@ namespace google_breakpad {
|
||||||
|
|
||||||
|
|
||||||
StackwalkerARM64::StackwalkerARM64(const SystemInfo* system_info,
|
StackwalkerARM64::StackwalkerARM64(const SystemInfo* system_info,
|
||||||
const MDRawContextARM64_Old* context,
|
const MDRawContextARM64* context,
|
||||||
MemoryRegion* memory,
|
MemoryRegion* memory,
|
||||||
const CodeModules* modules,
|
const CodeModules* modules,
|
||||||
StackFrameSymbolizer* resolver_helper)
|
StackFrameSymbolizer* resolver_helper)
|
||||||
|
|
|
@ -55,7 +55,7 @@ class StackwalkerARM64 : public Stackwalker {
|
||||||
// included in the stack. The other arguments are passed directly through
|
// included in the stack. The other arguments are passed directly through
|
||||||
// to the base Stackwalker constructor.
|
// to the base Stackwalker constructor.
|
||||||
StackwalkerARM64(const SystemInfo* system_info,
|
StackwalkerARM64(const SystemInfo* system_info,
|
||||||
const MDRawContextARM64_Old* context,
|
const MDRawContextARM64* context,
|
||||||
MemoryRegion* memory,
|
MemoryRegion* memory,
|
||||||
const CodeModules* modules,
|
const CodeModules* modules,
|
||||||
StackFrameSymbolizer* frame_symbolizer);
|
StackFrameSymbolizer* frame_symbolizer);
|
||||||
|
@ -89,7 +89,7 @@ class StackwalkerARM64 : public Stackwalker {
|
||||||
|
|
||||||
// Stores the CPU context corresponding to the youngest stack frame, to
|
// Stores the CPU context corresponding to the youngest stack frame, to
|
||||||
// be returned by GetContextFrame.
|
// be returned by GetContextFrame.
|
||||||
const MDRawContextARM64_Old* context_;
|
const MDRawContextARM64* context_;
|
||||||
|
|
||||||
// Validity mask for youngest stack frame. This is always
|
// Validity mask for youngest stack frame. This is always
|
||||||
// CONTEXT_VALID_ALL in real use; it is only changeable for the sake of
|
// CONTEXT_VALID_ALL in real use; it is only changeable for the sake of
|
||||||
|
|
|
@ -122,14 +122,14 @@ class StackwalkerARM64Fixture {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fill RAW_CONTEXT with pseudo-random data, for round-trip checking.
|
// Fill RAW_CONTEXT with pseudo-random data, for round-trip checking.
|
||||||
void BrandContext(MDRawContextARM64_Old *raw_context) {
|
void BrandContext(MDRawContextARM64 *raw_context) {
|
||||||
uint8_t x = 173;
|
uint8_t x = 173;
|
||||||
for (size_t i = 0; i < sizeof(*raw_context); i++)
|
for (size_t i = 0; i < sizeof(*raw_context); i++)
|
||||||
reinterpret_cast<uint8_t *>(raw_context)[i] = (x += 17);
|
reinterpret_cast<uint8_t *>(raw_context)[i] = (x += 17);
|
||||||
}
|
}
|
||||||
|
|
||||||
SystemInfo system_info;
|
SystemInfo system_info;
|
||||||
MDRawContextARM64_Old raw_context;
|
MDRawContextARM64 raw_context;
|
||||||
Section stack_section;
|
Section stack_section;
|
||||||
MockMemoryRegion stack_region;
|
MockMemoryRegion stack_region;
|
||||||
MockCodeModule module1;
|
MockCodeModule module1;
|
||||||
|
@ -688,7 +688,7 @@ struct CFIFixture: public StackwalkerARM64Fixture {
|
||||||
}
|
}
|
||||||
|
|
||||||
// The values we expect to find for the caller's registers.
|
// The values we expect to find for the caller's registers.
|
||||||
MDRawContextARM64_Old expected;
|
MDRawContextARM64 expected;
|
||||||
|
|
||||||
// The validity mask for expected.
|
// The validity mask for expected.
|
||||||
uint64_t expected_validity;
|
uint64_t expected_validity;
|
||||||
|
|
|
@ -480,17 +480,28 @@ ParseThreadRegisters(CrashedProcess::Thread* thread,
|
||||||
static void
|
static void
|
||||||
ParseThreadRegisters(CrashedProcess::Thread* thread,
|
ParseThreadRegisters(CrashedProcess::Thread* thread,
|
||||||
const MinidumpMemoryRange& range) {
|
const MinidumpMemoryRange& range) {
|
||||||
const MDRawContextARM64_Old* rawregs = range.GetData<MDRawContextARM64_Old>(0);
|
#define COPY_REGS(rawregs) \
|
||||||
|
do { \
|
||||||
|
for (int i = 0; i < 31; ++i) \
|
||||||
|
thread->regs.regs[i] = rawregs->iregs[i]; \
|
||||||
|
thread->regs.sp = rawregs->iregs[MD_CONTEXT_ARM64_REG_SP]; \
|
||||||
|
thread->regs.pc = rawregs->iregs[MD_CONTEXT_ARM64_REG_PC]; \
|
||||||
|
thread->regs.pstate = rawregs->cpsr; \
|
||||||
|
\
|
||||||
|
memcpy(thread->fpregs.vregs, rawregs->float_save.regs, 8 * 32); \
|
||||||
|
thread->fpregs.fpsr = rawregs->float_save.fpsr; \
|
||||||
|
thread->fpregs.fpcr = rawregs->float_save.fpcr; \
|
||||||
|
} while (false)
|
||||||
|
|
||||||
for (int i = 0; i < 31; ++i)
|
if (range.length() == sizeof(MDRawContextARM64_Old)) {
|
||||||
thread->regs.regs[i] = rawregs->iregs[i];
|
const MDRawContextARM64_Old* rawregs =
|
||||||
thread->regs.sp = rawregs->iregs[MD_CONTEXT_ARM64_REG_SP];
|
range.GetData<MDRawContextARM64_Old>(0);
|
||||||
thread->regs.pc = rawregs->iregs[MD_CONTEXT_ARM64_REG_PC];
|
COPY_REGS(rawregs);
|
||||||
thread->regs.pstate = rawregs->cpsr;
|
} else {
|
||||||
|
const MDRawContextARM64* rawregs = range.GetData<MDRawContextARM64>(0);
|
||||||
memcpy(thread->fpregs.vregs, rawregs->float_save.regs, 8 * 32);
|
COPY_REGS(rawregs);
|
||||||
thread->fpregs.fpsr = rawregs->float_save.fpsr;
|
}
|
||||||
thread->fpregs.fpcr = rawregs->float_save.fpcr;
|
#undef COPY_REGS
|
||||||
}
|
}
|
||||||
#elif defined(__mips__)
|
#elif defined(__mips__)
|
||||||
static void
|
static void
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
|
|
||||||
/* Begin PBXBuildFile section */
|
/* Begin PBXBuildFile section */
|
||||||
162F64FE161C5ECB00CD68D5 /* arch_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = 162F64FC161C5ECB00CD68D5 /* arch_utilities.cc */; };
|
162F64FE161C5ECB00CD68D5 /* arch_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = 162F64FC161C5ECB00CD68D5 /* arch_utilities.cc */; };
|
||||||
|
4214B800211109A600B769FA /* convert_old_arm64_context.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4214B7FE211109A600B769FA /* convert_old_arm64_context.cc */; };
|
||||||
4247E6402110D5A500482558 /* path_helper.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4247E63F2110D5A500482558 /* path_helper.cc */; };
|
4247E6402110D5A500482558 /* path_helper.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4247E63F2110D5A500482558 /* path_helper.cc */; };
|
||||||
4D2C721B126F9ACC00B43EAF /* source_line_resolver_base.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D2C721A126F9ACC00B43EAF /* source_line_resolver_base.cc */; };
|
4D2C721B126F9ACC00B43EAF /* source_line_resolver_base.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D2C721A126F9ACC00B43EAF /* source_line_resolver_base.cc */; };
|
||||||
4D2C721F126F9ADE00B43EAF /* exploitability.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D2C721E126F9ADE00B43EAF /* exploitability.cc */; };
|
4D2C721F126F9ADE00B43EAF /* exploitability.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D2C721E126F9ADE00B43EAF /* exploitability.cc */; };
|
||||||
|
@ -82,6 +83,8 @@
|
||||||
08FB779EFE84155DC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
08FB779EFE84155DC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||||
162F64FC161C5ECB00CD68D5 /* arch_utilities.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = arch_utilities.cc; path = ../../../common/mac/arch_utilities.cc; sourceTree = "<group>"; };
|
162F64FC161C5ECB00CD68D5 /* arch_utilities.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = arch_utilities.cc; path = ../../../common/mac/arch_utilities.cc; sourceTree = "<group>"; };
|
||||||
162F64FD161C5ECB00CD68D5 /* arch_utilities.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = arch_utilities.h; path = ../../../common/mac/arch_utilities.h; sourceTree = "<group>"; };
|
162F64FD161C5ECB00CD68D5 /* arch_utilities.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = arch_utilities.h; path = ../../../common/mac/arch_utilities.h; sourceTree = "<group>"; };
|
||||||
|
4214B7FE211109A600B769FA /* convert_old_arm64_context.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = convert_old_arm64_context.cc; path = ../../../processor/convert_old_arm64_context.cc; sourceTree = "<group>"; };
|
||||||
|
4214B7FF211109A600B769FA /* convert_old_arm64_context.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = convert_old_arm64_context.h; path = ../../../processor/convert_old_arm64_context.h; sourceTree = "<group>"; };
|
||||||
4247E63E2110D5A500482558 /* path_helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = path_helper.h; path = ../../../common/path_helper.h; sourceTree = "<group>"; };
|
4247E63E2110D5A500482558 /* path_helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = path_helper.h; path = ../../../common/path_helper.h; sourceTree = "<group>"; };
|
||||||
4247E63F2110D5A500482558 /* path_helper.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = path_helper.cc; path = ../../../common/path_helper.cc; sourceTree = "<group>"; };
|
4247E63F2110D5A500482558 /* path_helper.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = path_helper.cc; path = ../../../common/path_helper.cc; sourceTree = "<group>"; };
|
||||||
4D2C721A126F9ACC00B43EAF /* source_line_resolver_base.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = source_line_resolver_base.cc; path = ../../../processor/source_line_resolver_base.cc; sourceTree = SOURCE_ROOT; };
|
4D2C721A126F9ACC00B43EAF /* source_line_resolver_base.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = source_line_resolver_base.cc; path = ../../../processor/source_line_resolver_base.cc; sourceTree = SOURCE_ROOT; };
|
||||||
|
@ -218,6 +221,8 @@
|
||||||
08FB7794FE84155DC02AAC07 /* crash_report */ = {
|
08FB7794FE84155DC02AAC07 /* crash_report */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
4214B7FE211109A600B769FA /* convert_old_arm64_context.cc */,
|
||||||
|
4214B7FF211109A600B769FA /* convert_old_arm64_context.h */,
|
||||||
4247E63F2110D5A500482558 /* path_helper.cc */,
|
4247E63F2110D5A500482558 /* path_helper.cc */,
|
||||||
4247E63E2110D5A500482558 /* path_helper.h */,
|
4247E63E2110D5A500482558 /* path_helper.h */,
|
||||||
8B31025311F0D2D400FCF3E4 /* Breakpad.xcconfig */,
|
8B31025311F0D2D400FCF3E4 /* Breakpad.xcconfig */,
|
||||||
|
@ -525,6 +530,7 @@
|
||||||
4D2C7223126F9AF900B43EAF /* exploitability_win.cc in Sources */,
|
4D2C7223126F9AF900B43EAF /* exploitability_win.cc in Sources */,
|
||||||
4D2C7227126F9B0F00B43EAF /* disassembler_x86.cc in Sources */,
|
4D2C7227126F9B0F00B43EAF /* disassembler_x86.cc in Sources */,
|
||||||
F407DC48185773C10064622B /* exploitability_linux.cc in Sources */,
|
F407DC48185773C10064622B /* exploitability_linux.cc in Sources */,
|
||||||
|
4214B800211109A600B769FA /* convert_old_arm64_context.cc in Sources */,
|
||||||
4D2C722B126F9B5A00B43EAF /* x86_disasm.c in Sources */,
|
4D2C722B126F9B5A00B43EAF /* x86_disasm.c in Sources */,
|
||||||
4D2C722D126F9B6E00B43EAF /* x86_misc.c in Sources */,
|
4D2C722D126F9B6E00B43EAF /* x86_misc.c in Sources */,
|
||||||
4D2C722F126F9B8300B43EAF /* x86_operand_list.c in Sources */,
|
4D2C722F126F9B8300B43EAF /* x86_operand_list.c in Sources */,
|
||||||
|
|
Loading…
Reference in a new issue