breakpad/src/processor
Mark Brand 57d1743662 Fixup non-canonical fault addresses for amd64.
This uses DisassemblerObjdump to add a processing step in
MinidumpProcessor to compute the true faulting address from register
state and disassembly of the fault instruction when the fault address
is suspicious (-1).

Bug: 901847
Change-Id: Ia1f77d542c4055c82ce2504db8c84a9e52001866
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3932957
Reviewed-by: Ivan Penkov <ivanpe@chromium.org>
2022-10-12 17:32:28 +00:00
..
proto Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
testdata Fixup non-canonical fault addresses for amd64. 2022-10-12 17:32:28 +00:00
address_map-inl.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
address_map.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
address_map_unittest.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
basic_code_module.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
basic_code_modules.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
basic_code_modules.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
basic_source_line_resolver.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
basic_source_line_resolver_types.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
basic_source_line_resolver_unittest.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
call_stack.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
cfi_frame_info-inl.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
cfi_frame_info.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
cfi_frame_info.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
cfi_frame_info_unittest.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
contained_range_map-inl.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
contained_range_map.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
contained_range_map_unittest.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
convert_old_arm64_context.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
convert_old_arm64_context.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
disassembler_objdump.cc Add DisassemblerObjdump. 2022-10-12 17:19:44 +00:00
disassembler_objdump.h Add DisassemblerObjdump. 2022-10-12 17:19:44 +00:00
disassembler_objdump_unittest.cc Add DisassemblerObjdump. 2022-10-12 17:19:44 +00:00
disassembler_x86.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
disassembler_x86.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
disassembler_x86_unittest.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
dump_context.cc Added riscv and riscv64 support for Linux 2022-09-09 08:44:46 +00:00
dump_object.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
exploitability.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
exploitability_linux.cc Add DisassemblerObjdump. 2022-10-12 17:19:44 +00:00
exploitability_linux.h Add DisassemblerObjdump. 2022-10-12 17:19:44 +00:00
exploitability_unittest.cc Add DisassemblerObjdump. 2022-10-12 17:19:44 +00:00
exploitability_win.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
exploitability_win.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
fast_source_line_resolver.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
fast_source_line_resolver_types.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
fast_source_line_resolver_unittest.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
linked_ptr.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
logging.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
logging.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
map_serializers-inl.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
map_serializers.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
map_serializers_unittest.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
microdump.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
microdump_processor.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
microdump_processor_unittest.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
microdump_stackwalk.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
microdump_stackwalk_machine_readable_test Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
microdump_stackwalk_test Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
microdump_stackwalk_test_vars Microdumps: support aarch64 and lib mapping from APK 2014-12-02 15:31:25 +00:00
minidump.cc Added riscv and riscv64 support for Linux 2022-09-09 08:44:46 +00:00
minidump_dump.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
minidump_dump_test Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
minidump_processor.cc Fixup non-canonical fault addresses for amd64. 2022-10-12 17:32:28 +00:00
minidump_processor_unittest.cc Fixup non-canonical fault addresses for amd64. 2022-10-12 17:32:28 +00:00
minidump_stackwalk.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
minidump_stackwalk_machine_readable_test Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
minidump_stackwalk_test Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
minidump_unittest.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
module_comparer.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
module_comparer.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
module_factory.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
module_serializer.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
module_serializer.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
pathname_stripper.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
pathname_stripper.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
pathname_stripper_unittest.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
postfix_evaluator-inl.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
postfix_evaluator.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
postfix_evaluator_unittest.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
proc_maps_linux.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
proc_maps_linux_unittest.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
process_state.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
processor.gyp Add DisassemblerObjdump. 2022-10-12 17:19:44 +00:00
processor_tools.gypi Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
range_map-inl.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
range_map.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
range_map_truncate_lower_unittest.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
range_map_truncate_upper_unittest.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
range_map_unittest.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
simple_serializer-inl.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
simple_serializer.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
simple_symbol_supplier.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
simple_symbol_supplier.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
source_line_resolver_base.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
source_line_resolver_base_types.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
stack_frame_cpu.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
stack_frame_symbolizer.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
stackwalk_common.cc Added riscv and riscv64 support for Linux 2022-09-09 08:44:46 +00:00
stackwalk_common.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
stackwalker.cc Added riscv and riscv64 support for Linux 2022-09-09 08:44:46 +00:00
stackwalker_address_list.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
stackwalker_address_list.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
stackwalker_address_list_unittest.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
stackwalker_amd64.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
stackwalker_amd64.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
stackwalker_amd64_unittest.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
stackwalker_arm.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
stackwalker_arm.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
stackwalker_arm64.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
stackwalker_arm64.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
stackwalker_arm64_unittest.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
stackwalker_arm_unittest.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
stackwalker_mips.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
stackwalker_mips.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
stackwalker_mips64_unittest.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
stackwalker_mips_unittest.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
stackwalker_ppc.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
stackwalker_ppc.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
stackwalker_ppc64.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
stackwalker_ppc64.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
stackwalker_riscv.cc Added riscv and riscv64 support for Linux 2022-09-09 08:44:46 +00:00
stackwalker_riscv.h Added riscv and riscv64 support for Linux 2022-09-09 08:44:46 +00:00
stackwalker_riscv64.cc Added riscv and riscv64 support for Linux 2022-09-09 08:44:46 +00:00
stackwalker_riscv64.h Added riscv and riscv64 support for Linux 2022-09-09 08:44:46 +00:00
stackwalker_riscv64_unittest.cc Added riscv and riscv64 support for Linux 2022-09-09 08:44:46 +00:00
stackwalker_riscv_unittest.cc Added riscv and riscv64 support for Linux 2022-09-09 08:44:46 +00:00
stackwalker_selftest.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
stackwalker_selftest_sol.s Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
stackwalker_sparc.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
stackwalker_sparc.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
stackwalker_unittest_utils.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
stackwalker_x86.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
stackwalker_x86.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
stackwalker_x86_unittest.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
static_address_map-inl.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
static_address_map.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
static_address_map_unittest.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
static_contained_range_map-inl.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
static_contained_range_map.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
static_contained_range_map_unittest.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
static_map-inl.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
static_map.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
static_map_iterator-inl.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
static_map_iterator.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
static_map_unittest.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
static_range_map-inl.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
static_range_map.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
static_range_map_unittest.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
symbolic_constants_win.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
symbolic_constants_win.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
synth_minidump.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
synth_minidump.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
synth_minidump_unittest.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
synth_minidump_unittest_data.h Use stdint types everywhere 2013-03-06 14:04:42 +00:00
tokenize.cc Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
tokenize.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00
windows_frame_info.h Update copyright boilerplate, 2022 edition (Breakpad) 2022-09-07 16:59:53 +00:00