├── .gitignore ├── AUTHORS ├── ChangeLog ├── DEPS ├── INSTALL ├── LICENSE ├── Makefile.am ├── Makefile.in ├── NEWS ├── README ├── README.ANDROID ├── aclocal.m4 ├── android ├── common-functions.sh ├── google_breakpad │ └── Android.mk ├── run-checks.sh ├── sample_app │ ├── README │ └── jni │ │ ├── Android.mk │ │ ├── Application.mk │ │ └── test_breakpad.cpp ├── test-driver └── test-shell.sh ├── autotools ├── compile ├── config.guess ├── config.sub ├── depcomp ├── install-sh ├── ltmain.sh ├── missing └── test-driver ├── breakpad-client.pc.in ├── breakpad.pc.in ├── codereview.settings ├── configure ├── configure.ac ├── m4 ├── ax_pthread.m4 ├── libtool.m4 ├── ltoptions.m4 ├── ltsugar.m4 ├── ltversion.m4 └── lt~obsolete.m4 └── src ├── breakpad_googletest_includes.h ├── build ├── all.gyp ├── common.gypi ├── filename_rules.gypi ├── gyp_breakpad └── testing.gypi ├── client ├── apple │ └── Framework │ │ └── BreakpadDefines.h ├── ios │ ├── Breakpad.h │ ├── Breakpad.mm │ ├── Breakpad.xcodeproj │ │ └── project.pbxproj │ ├── BreakpadController.h │ ├── BreakpadController.mm │ ├── Breakpad_Prefix.pch │ └── handler │ │ ├── ios_exception_minidump_generator.h │ │ └── ios_exception_minidump_generator.mm ├── linux │ ├── crash_generation │ │ ├── client_info.h │ │ ├── crash_generation_client.cc │ │ ├── crash_generation_client.h │ │ ├── crash_generation_server.cc │ │ └── crash_generation_server.h │ ├── data │ │ ├── linux-gate-amd.sym │ │ └── linux-gate-intel.sym │ ├── dump_writer_common │ │ ├── mapping_info.h │ │ ├── raw_context_cpu.h │ │ ├── seccomp_unwinder.cc │ │ ├── seccomp_unwinder.h │ │ ├── thread_info.cc │ │ ├── thread_info.h │ │ ├── ucontext_reader.cc │ │ └── ucontext_reader.h │ ├── handler │ │ ├── exception_handler.cc │ │ ├── exception_handler.h │ │ ├── exception_handler_unittest.cc │ │ ├── minidump_descriptor.cc │ │ └── minidump_descriptor.h │ ├── log │ │ ├── log.cc │ │ └── log.h │ ├── microdump_writer │ │ ├── microdump_writer.cc │ │ └── microdump_writer.h │ ├── minidump_writer │ │ ├── cpu_set.h │ │ ├── cpu_set_unittest.cc │ │ ├── directory_reader.h │ │ ├── directory_reader_unittest.cc │ │ ├── line_reader.h │ │ ├── line_reader_unittest.cc │ │ ├── linux_core_dumper.cc │ │ ├── linux_core_dumper.h │ │ ├── linux_core_dumper_unittest.cc │ │ ├── linux_dumper.cc │ │ ├── linux_dumper.h │ │ ├── linux_dumper_unittest_helper.cc │ │ ├── linux_ptrace_dumper.cc │ │ ├── linux_ptrace_dumper.h │ │ ├── linux_ptrace_dumper_unittest.cc │ │ ├── minidump_writer.cc │ │ ├── minidump_writer.h │ │ ├── minidump_writer_unittest.cc │ │ ├── minidump_writer_unittest_utils.cc │ │ ├── minidump_writer_unittest_utils.h │ │ ├── proc_cpuinfo_reader.h │ │ └── proc_cpuinfo_reader_unittest.cc │ └── sender │ │ └── google_crash_report_sender.cc ├── mac │ ├── Breakpad.xcodeproj │ │ └── project.pbxproj │ ├── Framework │ │ ├── Breakpad.h │ │ ├── Breakpad.mm │ │ ├── Breakpad_Prefix.pch │ │ ├── Info.plist │ │ ├── OnDemandServer.h │ │ └── OnDemandServer.mm │ ├── UnitTests-Info.plist │ ├── crash_generation │ │ ├── ConfigFile.h │ │ ├── ConfigFile.mm │ │ ├── Inspector.h │ │ ├── Inspector.mm │ │ ├── InspectorMain.mm │ │ ├── client_info.h │ │ ├── crash_generation_client.cc │ │ ├── crash_generation_client.h │ │ ├── crash_generation_server.cc │ │ └── crash_generation_server.h │ ├── gcov │ │ └── libgcov.a │ ├── handler │ │ ├── breakpad_nlist_64.cc │ │ ├── breakpad_nlist_64.h │ │ ├── dynamic_images.cc │ │ ├── dynamic_images.h │ │ ├── exception_handler.cc │ │ ├── exception_handler.h │ │ ├── mach_vm_compat.h │ │ ├── minidump_generator.cc │ │ ├── minidump_generator.h │ │ ├── minidump_test.xcodeproj │ │ │ └── project.pbxproj │ │ ├── minidump_tests32-Info.plist │ │ ├── minidump_tests64-Info.plist │ │ ├── obj-cTestCases-Info.plist │ │ ├── protected_memory_allocator.cc │ │ ├── protected_memory_allocator.h │ │ ├── testcases │ │ │ ├── DynamicImagesTests.cc │ │ │ ├── DynamicImagesTests.h │ │ │ ├── breakpad_nlist_test.cc │ │ │ ├── breakpad_nlist_test.h │ │ │ ├── dwarftests.h │ │ │ ├── dwarftests.mm │ │ │ └── testdata │ │ │ │ ├── dump_syms_dwarf_data │ │ │ │ └── dump_syms_i386_breakpad.sym │ │ └── ucontext_compat.h │ ├── sender │ │ ├── Breakpad.xib │ │ ├── English.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── Localizable.strings │ │ ├── ReporterIcon.graffle │ │ ├── crash_report_sender-Info.plist │ │ ├── crash_report_sender.h │ │ ├── crash_report_sender.icns │ │ ├── crash_report_sender.m │ │ ├── da.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── Localizable.strings │ │ ├── de.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── Localizable.strings │ │ ├── es.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── Localizable.strings │ │ ├── fr.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── Localizable.strings │ │ ├── goArrow.png │ │ ├── it.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── Localizable.strings │ │ ├── ja.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── Localizable.strings │ │ ├── nl.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── Localizable.strings │ │ ├── no.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── Localizable.strings │ │ ├── sl.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── Localizable.strings │ │ ├── sv.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── Localizable.strings │ │ ├── tr.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── Localizable.strings │ │ ├── uploader.h │ │ └── uploader.mm │ ├── testapp │ │ ├── Controller.h │ │ ├── Controller.m │ │ ├── English.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── MainMenu.xib │ │ ├── Info.plist │ │ ├── TestClass.h │ │ ├── TestClass.mm │ │ ├── bomb.icns │ │ ├── crashInMain │ │ ├── crashduringload │ │ └── main.m │ └── tests │ │ ├── BreakpadFramework_Test.mm │ │ ├── crash_generation_server_test.cc │ │ ├── exception_handler_test.cc │ │ ├── minidump_generator_test.cc │ │ ├── minidump_generator_test_helper.cc │ │ ├── spawn_child_process.h │ │ └── testlogging.h ├── minidump_file_writer-inl.h ├── minidump_file_writer.cc ├── minidump_file_writer.h ├── minidump_file_writer_unittest.cc ├── solaris │ └── handler │ │ ├── Makefile │ │ ├── exception_handler.cc │ │ ├── exception_handler.h │ │ ├── exception_handler_test.cc │ │ ├── minidump_generator.cc │ │ ├── minidump_generator.h │ │ ├── minidump_test.cc │ │ ├── solaris_lwp.cc │ │ └── solaris_lwp.h └── windows │ ├── breakpad_client.gyp │ ├── common │ ├── auto_critical_section.h │ └── ipc_protocol.h │ ├── crash_generation │ ├── ReadMe.txt │ ├── client_info.cc │ ├── client_info.h │ ├── crash_generation.gyp │ ├── crash_generation_client.cc │ ├── crash_generation_client.h │ ├── crash_generation_server.cc │ ├── crash_generation_server.h │ ├── minidump_generator.cc │ └── minidump_generator.h │ ├── handler │ ├── exception_handler.cc │ ├── exception_handler.gyp │ └── exception_handler.h │ ├── sender │ ├── crash_report_sender.cc │ ├── crash_report_sender.gyp │ └── crash_report_sender.h │ ├── tests │ └── crash_generation_app │ │ ├── abstract_class.cc │ │ ├── abstract_class.h │ │ ├── crash_generation_app.cc │ │ ├── crash_generation_app.gyp │ │ ├── crash_generation_app.h │ │ ├── crash_generation_app.ico │ │ ├── crash_generation_app.rc │ │ ├── resource.h │ │ └── small.ico │ └── unittests │ ├── client_tests.gyp │ ├── crash_generation_server_test.cc │ ├── dump_analysis.cc │ ├── dump_analysis.h │ ├── exception_handler_death_test.cc │ ├── exception_handler_nesting_test.cc │ ├── exception_handler_test.cc │ ├── exception_handler_test.h │ ├── minidump_test.cc │ └── testing.gyp ├── common ├── android │ ├── breakpad_getcontext.S │ ├── breakpad_getcontext_unittest.cc │ ├── include │ │ ├── elf.h │ │ ├── link.h │ │ ├── sgidefs.h │ │ ├── stab.h │ │ ├── sys │ │ │ ├── procfs.h │ │ │ ├── signal.h │ │ │ └── user.h │ │ └── ucontext.h │ ├── testing │ │ ├── include │ │ │ └── wchar.h │ │ ├── mkdtemp.h │ │ └── pthread_fixes.h │ └── ucontext_constants.h ├── basictypes.h ├── byte_cursor.h ├── byte_cursor_unittest.cc ├── common.gyp ├── convert_UTF.c ├── convert_UTF.h ├── dwarf │ ├── bytereader-inl.h │ ├── bytereader.cc │ ├── bytereader.h │ ├── bytereader_unittest.cc │ ├── cfi_assembler.cc │ ├── cfi_assembler.h │ ├── dwarf2diehandler.cc │ ├── dwarf2diehandler.h │ ├── dwarf2diehandler_unittest.cc │ ├── dwarf2enums.h │ ├── dwarf2reader.cc │ ├── dwarf2reader.h │ ├── dwarf2reader_cfi_unittest.cc │ ├── dwarf2reader_die_unittest.cc │ ├── dwarf2reader_test_common.h │ ├── functioninfo.cc │ ├── functioninfo.h │ ├── line_state_machine.h │ └── types.h ├── dwarf_cfi_to_module.cc ├── dwarf_cfi_to_module.h ├── dwarf_cfi_to_module_unittest.cc ├── dwarf_cu_to_module.cc ├── dwarf_cu_to_module.h ├── dwarf_cu_to_module_unittest.cc ├── dwarf_line_to_module.cc ├── dwarf_line_to_module.h ├── dwarf_line_to_module_unittest.cc ├── language.cc ├── language.h ├── linux │ ├── crc32.cc │ ├── crc32.h │ ├── dump_symbols.cc │ ├── dump_symbols.h │ ├── dump_symbols_unittest.cc │ ├── eintr_wrapper.h │ ├── elf_core_dump.cc │ ├── elf_core_dump.h │ ├── elf_core_dump_unittest.cc │ ├── elf_gnu_compat.h │ ├── elf_symbols_to_module.cc │ ├── elf_symbols_to_module.h │ ├── elf_symbols_to_module_unittest.cc │ ├── elfutils-inl.h │ ├── elfutils.cc │ ├── elfutils.h │ ├── file_id.cc │ ├── file_id.h │ ├── file_id_unittest.cc │ ├── google_crashdump_uploader.cc │ ├── google_crashdump_uploader.h │ ├── google_crashdump_uploader_test.cc │ ├── guid_creator.cc │ ├── guid_creator.h │ ├── http_upload.cc │ ├── http_upload.h │ ├── ignore_ret.h │ ├── libcurl_wrapper.cc │ ├── libcurl_wrapper.h │ ├── linux_libc_support.cc │ ├── linux_libc_support.h │ ├── linux_libc_support_unittest.cc │ ├── memory_mapped_file.cc │ ├── memory_mapped_file.h │ ├── memory_mapped_file_unittest.cc │ ├── safe_readlink.cc │ ├── safe_readlink.h │ ├── safe_readlink_unittest.cc │ ├── synth_elf.cc │ ├── synth_elf.h │ ├── synth_elf_unittest.cc │ └── tests │ │ ├── auto_testfile.h │ │ ├── crash_generator.cc │ │ └── crash_generator.h ├── mac │ ├── Breakpad.xcconfig │ ├── BreakpadDebug.xcconfig │ ├── BreakpadRelease.xcconfig │ ├── GTMDefines.h │ ├── GTMLogger.h │ ├── GTMLogger.m │ ├── HTTPMultipartUpload.h │ ├── HTTPMultipartUpload.m │ ├── MachIPC.h │ ├── MachIPC.mm │ ├── arch_utilities.cc │ ├── arch_utilities.h │ ├── bootstrap_compat.cc │ ├── bootstrap_compat.h │ ├── byteswap.h │ ├── dump_syms.h │ ├── dump_syms.mm │ ├── file_id.cc │ ├── file_id.h │ ├── launch_reporter.cc │ ├── launch_reporter.h │ ├── macho_id.cc │ ├── macho_id.h │ ├── macho_reader.cc │ ├── macho_reader.h │ ├── macho_reader_unittest.cc │ ├── macho_utilities.cc │ ├── macho_utilities.h │ ├── macho_walker.cc │ ├── macho_walker.h │ ├── scoped_task_suspend-inl.h │ ├── string_utilities.cc │ ├── string_utilities.h │ └── testing │ │ ├── GTMSenTestCase.h │ │ └── GTMSenTestCase.m ├── md5.cc ├── md5.h ├── memory.h ├── memory_range.h ├── memory_range_unittest.cc ├── memory_unittest.cc ├── module.cc ├── module.h ├── module_unittest.cc ├── scoped_ptr.h ├── simple_string_dictionary.cc ├── simple_string_dictionary.h ├── simple_string_dictionary_unittest.cc ├── solaris │ ├── dump_symbols.cc │ ├── dump_symbols.h │ ├── file_id.cc │ ├── file_id.h │ ├── guid_creator.cc │ ├── guid_creator.h │ └── message_output.h ├── stabs_reader.cc ├── stabs_reader.h ├── stabs_reader_unittest.cc ├── stabs_to_module.cc ├── stabs_to_module.h ├── stabs_to_module_unittest.cc ├── string_conversion.cc ├── string_conversion.h ├── symbol_data.h ├── test_assembler.cc ├── test_assembler.h ├── test_assembler_unittest.cc ├── testdata │ └── func-line-pairing.h ├── tests │ ├── auto_tempdir.h │ ├── file_utils.cc │ └── file_utils.h ├── unordered.h ├── using_std_string.h └── windows │ ├── common_windows.gyp │ ├── dia_util.cc │ ├── dia_util.h │ ├── guid_string.cc │ ├── guid_string.h │ ├── http_upload.cc │ ├── http_upload.h │ ├── omap.cc │ ├── omap.h │ ├── omap_internal.h │ ├── omap_unittest.cc │ ├── pdb_source_line_writer.cc │ ├── pdb_source_line_writer.h │ ├── string_utils-inl.h │ └── string_utils.cc ├── config.h.in ├── google_breakpad ├── common │ ├── breakpad_types.h │ ├── minidump_cpu_amd64.h │ ├── minidump_cpu_arm.h │ ├── minidump_cpu_arm64.h │ ├── minidump_cpu_mips.h │ ├── minidump_cpu_ppc.h │ ├── minidump_cpu_ppc64.h │ ├── minidump_cpu_sparc.h │ ├── minidump_cpu_x86.h │ ├── minidump_exception_linux.h │ ├── minidump_exception_mac.h │ ├── minidump_exception_ps3.h │ ├── minidump_exception_solaris.h │ ├── minidump_exception_win32.h │ ├── minidump_format.h │ └── minidump_size.h └── processor │ ├── basic_source_line_resolver.h │ ├── call_stack.h │ ├── code_module.h │ ├── code_modules.h │ ├── dump_context.h │ ├── dump_object.h │ ├── exploitability.h │ ├── fast_source_line_resolver.h │ ├── memory_region.h │ ├── microdump_processor.h │ ├── minidump.h │ ├── minidump_processor.h │ ├── process_result.h │ ├── process_state.h │ ├── source_line_resolver_base.h │ ├── source_line_resolver_interface.h │ ├── stack_frame.h │ ├── stack_frame_cpu.h │ ├── stack_frame_symbolizer.h │ ├── stackwalker.h │ ├── symbol_supplier.h │ └── system_info.h ├── processor ├── address_map-inl.h ├── address_map.h ├── address_map_unittest.cc ├── basic_code_module.h ├── basic_code_modules.cc ├── basic_code_modules.h ├── basic_source_line_resolver.cc ├── basic_source_line_resolver_types.h ├── basic_source_line_resolver_unittest.cc ├── binarystream.cc ├── binarystream.h ├── binarystream_unittest.cc ├── call_stack.cc ├── cfi_frame_info-inl.h ├── cfi_frame_info.cc ├── cfi_frame_info.h ├── cfi_frame_info_unittest.cc ├── contained_range_map-inl.h ├── contained_range_map.h ├── contained_range_map_unittest.cc ├── disassembler_x86.cc ├── disassembler_x86.h ├── disassembler_x86_unittest.cc ├── dump_context.cc ├── dump_object.cc ├── exploitability.cc ├── exploitability_linux.cc ├── exploitability_linux.h ├── exploitability_unittest.cc ├── exploitability_win.cc ├── exploitability_win.h ├── fast_source_line_resolver.cc ├── fast_source_line_resolver_types.h ├── fast_source_line_resolver_unittest.cc ├── linked_ptr.h ├── logging.cc ├── logging.h ├── map_serializers-inl.h ├── map_serializers.h ├── map_serializers_unittest.cc ├── microdump_processor.cc ├── microdump_processor_unittest.cc ├── minidump.cc ├── minidump_dump.cc ├── minidump_dump_test ├── minidump_processor.cc ├── minidump_processor_unittest.cc ├── minidump_stackwalk.cc ├── minidump_stackwalk_machine_readable_test ├── minidump_stackwalk_test ├── minidump_unittest.cc ├── module_comparer.cc ├── module_comparer.h ├── module_factory.h ├── module_serializer.cc ├── module_serializer.h ├── pathname_stripper.cc ├── pathname_stripper.h ├── pathname_stripper_unittest.cc ├── postfix_evaluator-inl.h ├── postfix_evaluator.h ├── postfix_evaluator_unittest.cc ├── process_state.cc ├── processor.gyp ├── processor_tools.gypi ├── proto │ ├── README │ └── process_state.proto ├── range_map-inl.h ├── range_map.h ├── range_map_unittest.cc ├── simple_serializer-inl.h ├── simple_serializer.h ├── simple_symbol_supplier.cc ├── simple_symbol_supplier.h ├── source_line_resolver_base.cc ├── source_line_resolver_base_types.h ├── stack_frame_cpu.cc ├── stack_frame_symbolizer.cc ├── stackwalker.cc ├── stackwalker_address_list.cc ├── stackwalker_address_list.h ├── stackwalker_address_list_unittest.cc ├── stackwalker_amd64.cc ├── stackwalker_amd64.h ├── stackwalker_amd64_unittest.cc ├── stackwalker_arm.cc ├── stackwalker_arm.h ├── stackwalker_arm64.cc ├── stackwalker_arm64.h ├── stackwalker_arm64_unittest.cc ├── stackwalker_arm_unittest.cc ├── stackwalker_mips.cc ├── stackwalker_mips.h ├── stackwalker_mips_unittest.cc ├── stackwalker_ppc.cc ├── stackwalker_ppc.h ├── stackwalker_ppc64.cc ├── stackwalker_ppc64.h ├── stackwalker_selftest.cc ├── stackwalker_selftest_sol.s ├── stackwalker_sparc.cc ├── stackwalker_sparc.h ├── stackwalker_unittest_utils.h ├── stackwalker_x86.cc ├── stackwalker_x86.h ├── stackwalker_x86_unittest.cc ├── static_address_map-inl.h ├── static_address_map.h ├── static_address_map_unittest.cc ├── static_contained_range_map-inl.h ├── static_contained_range_map.h ├── static_contained_range_map_unittest.cc ├── static_map-inl.h ├── static_map.h ├── static_map_iterator-inl.h ├── static_map_iterator.h ├── static_map_unittest.cc ├── static_range_map-inl.h ├── static_range_map.h ├── static_range_map_unittest.cc ├── synth_minidump.cc ├── synth_minidump.h ├── synth_minidump_unittest.cc ├── synth_minidump_unittest_data.h ├── testdata │ ├── ascii_read_av.dmp │ ├── ascii_read_av_block_write.dmp │ ├── ascii_read_av_clobber_write.dmp │ ├── ascii_read_av_conditional.dmp │ ├── ascii_read_av_then_jmp.dmp │ ├── ascii_read_av_xchg_write.dmp │ ├── ascii_write_av.dmp │ ├── ascii_write_av_arg_to_call.dmp │ ├── exec_av_on_stack.dmp │ ├── linux_null_read_av.dmp │ ├── linux_overflow.dmp │ ├── linux_stacksmash.dmp │ ├── linux_test_app.cc │ ├── minidump2.dmp │ ├── minidump2.dump.out │ ├── minidump2.stackwalk.machine_readable.out │ ├── minidump2.stackwalk.out │ ├── module0.out │ ├── module1.out │ ├── module2.out │ ├── module3_bad.out │ ├── module4_bad.out │ ├── null_read_av.dmp │ ├── null_write_av.dmp │ ├── read_av_clobber_write.dmp │ ├── read_av_conditional.dmp │ ├── read_av_non_null.dmp │ ├── stack_exhaustion.dmp │ ├── symbols │ │ ├── kernel32.pdb │ │ │ └── BCE8785C57B44245A669896B6A19B9542 │ │ │ │ └── kernel32.sym │ │ ├── ld-2.13.so │ │ │ └── C32AD7E235EA6112E02A5B9D6219C4850 │ │ │ │ └── ld-2.13.so.sym │ │ ├── libc-2.13.so │ │ │ └── F4F8DFCD5A5FB5A7CE64717E9E6AE3890 │ │ │ │ └── libc-2.13.so.sym │ │ ├── libgcc_s.so.1 │ │ │ └── 18B180F90887D8F8B5C35D185444AF4C0 │ │ │ │ └── libgcc_s.so.1.sym │ │ ├── null_read_av │ │ │ └── 7B7D1968FF0D47AE4366E9C3A7E1B6750 │ │ │ │ └── null_read_av.sym │ │ ├── overflow │ │ │ └── B0E1FC01EF48E39CAF5C881D2DF0C3840 │ │ │ │ └── overflow.sym │ │ └── test_app.pdb │ │ │ └── 5A9832E5287241C1838ED98914E9B7FF1 │ │ │ └── test_app.sym │ ├── test_app.cc │ └── write_av_non_null.dmp ├── tokenize.cc ├── tokenize.h └── windows_frame_info.h ├── third_party ├── curl │ ├── COPYING │ ├── curl.h │ ├── curlbuild.h │ ├── curlrules.h │ ├── curlver.h │ ├── easy.h │ ├── mprintf.h │ ├── multi.h │ ├── stdcheaders.h │ ├── typecheck-gcc.h │ └── types.h ├── libdisasm │ ├── Makefile.am │ ├── TODO │ ├── ia32_implicit.c │ ├── ia32_implicit.h │ ├── ia32_insn.c │ ├── ia32_insn.h │ ├── ia32_invariant.c │ ├── ia32_invariant.h │ ├── ia32_modrm.c │ ├── ia32_modrm.h │ ├── ia32_opcode_tables.c │ ├── ia32_opcode_tables.h │ ├── ia32_operand.c │ ├── ia32_operand.h │ ├── ia32_reg.c │ ├── ia32_reg.h │ ├── ia32_settings.c │ ├── ia32_settings.h │ ├── libdis.h │ ├── libdisasm.gyp │ ├── qword.h │ ├── swig │ │ ├── Makefile │ │ ├── README │ │ ├── libdisasm.i │ │ ├── libdisasm_oop.i │ │ ├── perl │ │ │ ├── Makefile-swig │ │ │ └── Makefile.PL │ │ ├── python │ │ │ └── Makefile-swig │ │ ├── ruby │ │ │ ├── Makefile-swig │ │ │ └── extconf.rb │ │ └── tcl │ │ │ └── Makefile-swig │ ├── x86_disasm.c │ ├── x86_format.c │ ├── x86_imm.c │ ├── x86_imm.h │ ├── x86_insn.c │ ├── x86_misc.c │ ├── x86_operand_list.c │ └── x86_operand_list.h └── linux │ ├── include │ └── gflags │ │ ├── gflags.h │ │ └── gflags_completions.h │ └── lib │ ├── gflags │ └── libgflags.a │ └── glog │ └── libglog.a └── tools ├── linux ├── core2md │ └── core2md.cc ├── dump_syms │ └── dump_syms.cc ├── md2core │ ├── minidump-2-core.cc │ ├── minidump_memory_range.h │ └── minidump_memory_range_unittest.cc ├── symupload │ ├── minidump_upload.cc │ └── sym_upload.cc └── tools_linux.gypi ├── mac ├── crash_report │ ├── crash_report.mm │ ├── crash_report.xcodeproj │ │ └── project.pbxproj │ ├── on_demand_symbol_supplier.h │ └── on_demand_symbol_supplier.mm ├── dump_syms │ ├── dump_syms.xcodeproj │ │ └── project.pbxproj │ ├── dump_syms_tool.mm │ └── macho_dump.cc ├── symupload │ ├── minidump_upload.m │ ├── symupload.m │ └── symupload.xcodeproj │ │ └── project.pbxproj ├── tools_mac.gypi └── upload_system_symbols │ ├── arch_constants.h │ ├── arch_reader.go │ └── upload_system_symbols.go ├── python ├── filter_syms.py └── tests │ └── filter_syms_unittest.py ├── solaris └── dump_syms │ ├── Makefile │ ├── dump_syms.cc │ ├── run_regtest.sh │ └── testdata │ ├── dump_syms_regtest.cc │ ├── dump_syms_regtest.o │ ├── dump_syms_regtest.stabs │ └── dump_syms_regtest.sym ├── tools.gyp └── windows ├── binaries ├── dump_syms.exe └── symupload.exe ├── converter ├── ms_symbol_server_converter.cc ├── ms_symbol_server_converter.gyp ├── ms_symbol_server_converter.h └── ms_symbol_server_converter.vcproj ├── dump_syms ├── dump_syms.cc ├── dump_syms.gyp ├── dump_syms.vcproj ├── dump_syms_unittest.cc ├── run_regtest.sh └── testdata │ ├── dump_syms_regtest.cc │ ├── dump_syms_regtest.pdb │ ├── dump_syms_regtest.sym │ ├── dump_syms_regtest64.pdb │ ├── dump_syms_regtest64.sym │ ├── omap_reorder_bbs.pdb │ ├── omap_reorder_bbs.sym │ ├── omap_reorder_funcs.pdb │ ├── omap_reorder_funcs.sym │ ├── omap_stretched.pdb │ ├── omap_stretched.sym │ ├── omap_stretched_filled.pdb │ └── omap_stretched_filled.sym ├── refresh_binaries.bat └── symupload ├── symupload.cc └── symupload.gyp /.gitignore: -------------------------------------------------------------------------------- 1 | # Copyright 2014 Google Inc. All rights reserved. 2 | # 3 | # Redistribution and use in source and binary forms, with or without 4 | # modification, are permitted provided that the following conditions are 5 | # met: 6 | # 7 | # * Redistributions of source code must retain the above copyright 8 | # notice, this list of conditions and the following disclaimer. 9 | # * Redistributions in binary form must reproduce the above 10 | # copyright notice, this list of conditions and the following disclaimer 11 | # in the documentation and/or other materials provided with the 12 | # distribution. 13 | # * Neither the name of Google Inc. nor the names of its 14 | # contributors may be used to endorse or promote products derived from 15 | # this software without specific prior written permission. 16 | # 17 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18 | # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19 | # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 20 | # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 21 | # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22 | # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23 | # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 | # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 | # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | 29 | # Ignore GYP generated Visual Studio artifacts. 30 | *.filters 31 | *.sdf 32 | *.sln 33 | *.suo 34 | *.vcproj 35 | *.vcxproj 36 | 37 | # Ignore compiled Python files. 38 | *.pyc 39 | 40 | # Ignore directories gclient syncs. 41 | src/testing 42 | src/third_party/glog 43 | src/third_party/lss 44 | src/third_party/protobuf 45 | src/tools/gyp 46 | -------------------------------------------------------------------------------- /AUTHORS: -------------------------------------------------------------------------------- 1 | opensource@google.com 2 | -------------------------------------------------------------------------------- /ChangeLog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/ChangeLog -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2006, Google Inc. 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are 6 | met: 7 | 8 | * Redistributions of source code must retain the above copyright 9 | notice, this list of conditions and the following disclaimer. 10 | * Redistributions in binary form must reproduce the above 11 | copyright notice, this list of conditions and the following disclaimer 12 | in the documentation and/or other materials provided with the 13 | distribution. 14 | * Neither the name of Google Inc. nor the names of its 15 | contributors may be used to endorse or promote products derived from 16 | this software without specific prior written permission. 17 | 18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | -------------------------------------------------------------------- 31 | 32 | Copyright 2001-2004 Unicode, Inc. 33 | 34 | Disclaimer 35 | 36 | This source code is provided as is by Unicode, Inc. No claims are 37 | made as to fitness for any particular purpose. No warranties of any 38 | kind are expressed or implied. The recipient agrees to determine 39 | applicability of information provided. If this file has been 40 | purchased on magnetic or optical media from Unicode, Inc., the 41 | sole remedy for any claim will be exchange of defective media 42 | within 90 days of receipt. 43 | 44 | Limitations on Rights to Redistribute This Code 45 | 46 | Unicode, Inc. hereby grants the right to freely use the information 47 | supplied in this file in the creation of products supporting the 48 | Unicode Standard, and to make copies of this file in any form 49 | for internal or external distribution as long as this notice 50 | remains attached. 51 | -------------------------------------------------------------------------------- /NEWS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/NEWS -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | Breakpad is a set of client and server components which implement a 2 | crash-reporting system. 3 | 4 | 5 | ----- 6 | Getting started in 32-bit mode (from trunk) 7 | Configure: CXXFLAGS=-m32 CFLAGS=-m32 CPPFLAGS=-m32 ./configure 8 | Build: make 9 | Test: make check 10 | Install: make install 11 | 12 | If you need to reconfigure your build be sure to run "make distclean" first. 13 | 14 | 15 | ----- 16 | To request change review: 17 | 0. Get access to a read-write copy of source. 18 | Owners at http://code.google.com/p/google-breakpad/ are able to grant 19 | this access. 20 | 21 | 1. Check out a read-write copy of source using instructions at 22 | http://code.google.com/p/google-breakpad/source/checkout 23 | 24 | 2. Make changes. Build and test your changes. 25 | For core code like processor use methods above. 26 | For linux/mac/windows, there are test targets in each project file. 27 | 28 | 3. Download http://codereview.appspot.com/static/upload.py 29 | 30 | 4. Run upload.py from the 'src' directory: 31 | upload.py --server=breakpad.appspot.com 32 | 33 | You will be prompted for credential and a description. 34 | 35 | 5. At http://breakpad.appspot.com you'll find your issue listed; click on it, 36 | and select Publish+Mail, and enter in the code reviewer and CC 37 | google-breakpad-dev@googlegroups.com 38 | 39 | 6. When applying code review feedback, specify the '-i' option when running 40 | upload.py again and pass the issue number so it updates the existing issue, 41 | rather than creating a new one. 42 | Be sure to rerun upload.py from the same directory as you did for previous 43 | uploads to allow for proper diff calculations. 44 | -------------------------------------------------------------------------------- /android/sample_app/README: -------------------------------------------------------------------------------- 1 | This is a sample Android executable that can be used to test the 2 | Google Breakpad client library on Android. 3 | 4 | Its purpose is simply to crash and generate a minidump under /data/local/tmp. 5 | 6 | Build instructions: 7 | 8 | cd android/sample_app 9 | $NDK/ndk-build 10 | 11 | Where $NDK points to a valid Android NDK installation. 12 | 13 | Usage instructions: 14 | 15 | After buildind the test program, send it to a device, then run it as 16 | the shell UID: 17 | 18 | adb push libs/armeabi/test_google_breakpad /data/local/tmp 19 | adb shell /data/local/tmp/test_google_breakpad 20 | 21 | This will simply crash after dumping the name of the generated minidump 22 | file. 23 | 24 | See jni/test_breakpad.cpp for details. 25 | 26 | Use 'armeabi-v7a' instead of 'armeabi' above to test the ARMv7-A version 27 | of the binary. 28 | 29 | Note: 30 | If you plan to use the library in a regular Android application, store 31 | the minidump files either to your app-specific directory, or to the SDCard 32 | (the latter requiring a specific permission). 33 | -------------------------------------------------------------------------------- /android/sample_app/jni/Android.mk: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2012, Google Inc. 2 | # All rights reserved. 3 | # 4 | # Redistribution and use in source and binary forms, with or without 5 | # modification, are permitted provided that the following conditions are 6 | # met: 7 | # 8 | # * Redistributions of source code must retain the above copyright 9 | # notice, this list of conditions and the following disclaimer. 10 | # * Redistributions in binary form must reproduce the above 11 | # copyright notice, this list of conditions and the following disclaimer 12 | # in the documentation and/or other materials provided with the 13 | # distribution. 14 | # * Neither the name of Google Inc. nor the names of its 15 | # contributors may be used to endorse or promote products derived from 16 | # this software without specific prior written permission. 17 | # 18 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | LOCAL_PATH := $(call my-dir) 31 | 32 | include $(CLEAR_VARS) 33 | LOCAL_MODULE := test_google_breakpad 34 | LOCAL_SRC_FILES := test_breakpad.cpp 35 | LOCAL_STATIC_LIBRARIES += breakpad_client 36 | include $(BUILD_EXECUTABLE) 37 | 38 | # If NDK_MODULE_PATH is defined, import the module, otherwise do a direct 39 | # includes. This allows us to build in all scenarios easily. 40 | ifneq ($(NDK_MODULE_PATH),) 41 | $(call import-module,google_breakpad) 42 | else 43 | include $(LOCAL_PATH)/../../google_breakpad/Android.mk 44 | endif 45 | -------------------------------------------------------------------------------- /android/sample_app/jni/Application.mk: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2012, Google Inc. 2 | # All rights reserved. 3 | # 4 | # Redistribution and use in source and binary forms, with or without 5 | # modification, are permitted provided that the following conditions are 6 | # met: 7 | # 8 | # * Redistributions of source code must retain the above copyright 9 | # notice, this list of conditions and the following disclaimer. 10 | # * Redistributions in binary form must reproduce the above 11 | # copyright notice, this list of conditions and the following disclaimer 12 | # in the documentation and/or other materials provided with the 13 | # distribution. 14 | # * Neither the name of Google Inc. nor the names of its 15 | # contributors may be used to endorse or promote products derived from 16 | # this software without specific prior written permission. 17 | # 18 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | APP_STL := stlport_static 31 | APP_ABI := all 32 | -------------------------------------------------------------------------------- /android/sample_app/jni/test_breakpad.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012, Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | #include 31 | 32 | #include "client/linux/handler/exception_handler.h" 33 | #include "client/linux/handler/minidump_descriptor.h" 34 | 35 | namespace { 36 | 37 | bool DumpCallback(const google_breakpad::MinidumpDescriptor& descriptor, 38 | void* context, 39 | bool succeeded) { 40 | printf("Dump path: %s\n", descriptor.path()); 41 | return succeeded; 42 | } 43 | 44 | void Crash() { 45 | volatile int* a = reinterpret_cast(NULL); 46 | *a = 1; 47 | } 48 | 49 | } // namespace 50 | 51 | int main(int argc, char* argv[]) { 52 | google_breakpad::MinidumpDescriptor descriptor("."); 53 | google_breakpad::ExceptionHandler eh(descriptor, NULL, DumpCallback, 54 | NULL, true, -1); 55 | Crash(); 56 | return 0; 57 | } 58 | -------------------------------------------------------------------------------- /breakpad-client.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=@exec_prefix@ 3 | libdir=@libdir@ 4 | includedir=@includedir@/@PACKAGE_NAME@ 5 | 6 | Name: google-breakpad-client 7 | Description: An open-source multi-platform crash reporting system 8 | Version: @PACKAGE_VERSION@ 9 | Libs: -L${libdir} -lbreakpad_client @PTHREAD_LIBS@ 10 | Cflags: -I${includedir} @PTHREAD_CFLAGS@ 11 | -------------------------------------------------------------------------------- /breakpad.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=@exec_prefix@ 3 | libdir=@libdir@ 4 | includedir=@includedir@/@PACKAGE_NAME@ 5 | 6 | Name: google-breakpad 7 | Description: An open-source multi-platform crash reporting system 8 | Version: @PACKAGE_VERSION@ 9 | Libs: -L${libdir} -lbreakpad @PTHREAD_LIBS@ 10 | Cflags: -I${includedir} @PTHREAD_CFLAGS@ 11 | -------------------------------------------------------------------------------- /codereview.settings: -------------------------------------------------------------------------------- 1 | # This file is used by gcl to get repository specific information. 2 | CODE_REVIEW_SERVER: breakpad.appspot.com 3 | CC_LIST: google-breakpad-dev@googlegroups.com 4 | TRY_ON_UPLOAD: False 5 | VIEW_VC: http://code.google.com/p/google-breakpad/source/detail?r= 6 | -------------------------------------------------------------------------------- /m4/ltversion.m4: -------------------------------------------------------------------------------- 1 | # ltversion.m4 -- version numbers -*- Autoconf -*- 2 | # 3 | # Copyright (C) 2004 Free Software Foundation, Inc. 4 | # Written by Scott James Remnant, 2004 5 | # 6 | # This file is free software; the Free Software Foundation gives 7 | # unlimited permission to copy and/or distribute it, with or without 8 | # modifications, as long as this notice is preserved. 9 | 10 | # Generated from ltversion.in. 11 | 12 | # serial 3017 ltversion.m4 13 | # This file is part of GNU Libtool 14 | 15 | m4_define([LT_PACKAGE_VERSION], [2.2.6b]) 16 | m4_define([LT_PACKAGE_REVISION], [1.3017]) 17 | 18 | AC_DEFUN([LTVERSION_VERSION], 19 | [macro_version='2.2.6b' 20 | macro_revision='1.3017' 21 | _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) 22 | _LT_DECL(, macro_revision, 0) 23 | ]) 24 | -------------------------------------------------------------------------------- /src/build/all.gyp: -------------------------------------------------------------------------------- 1 | # Copyright 2014 Google Inc. All rights reserved. 2 | # 3 | # Redistribution and use in source and binary forms, with or without 4 | # modification, are permitted provided that the following conditions are 5 | # met: 6 | # 7 | # * Redistributions of source code must retain the above copyright 8 | # notice, this list of conditions and the following disclaimer. 9 | # * Redistributions in binary form must reproduce the above 10 | # copyright notice, this list of conditions and the following disclaimer 11 | # in the documentation and/or other materials provided with the 12 | # distribution. 13 | # * Neither the name of Google Inc. nor the names of its 14 | # contributors may be used to endorse or promote products derived from 15 | # this software without specific prior written permission. 16 | # 17 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18 | # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19 | # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 20 | # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 21 | # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22 | # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23 | # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 | # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 | # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | 29 | { 30 | 'targets': [ 31 | { 32 | 'target_name': 'All', 33 | 'type': 'none', 34 | 'dependencies': [ 35 | '../common/common.gyp:*', 36 | '../processor/processor.gyp:*', 37 | '../tools/tools.gyp:*', 38 | ], 39 | }, 40 | ], 41 | } 42 | -------------------------------------------------------------------------------- /src/build/filename_rules.gypi: -------------------------------------------------------------------------------- 1 | # Copyright 2014 Google Inc. All rights reserved. 2 | # 3 | # Redistribution and use in source and binary forms, with or without 4 | # modification, are permitted provided that the following conditions are 5 | # met: 6 | # 7 | # * Redistributions of source code must retain the above copyright 8 | # notice, this list of conditions and the following disclaimer. 9 | # * Redistributions in binary form must reproduce the above 10 | # copyright notice, this list of conditions and the following disclaimer 11 | # in the documentation and/or other materials provided with the 12 | # distribution. 13 | # * Neither the name of Google Inc. nor the names of its 14 | # contributors may be used to endorse or promote products derived from 15 | # this software without specific prior written permission. 16 | # 17 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18 | # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19 | # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 20 | # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 21 | # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22 | # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23 | # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 | # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 | # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | 29 | { 30 | 'target_conditions': [ 31 | ['OS!="win"', { 32 | 'sources/': [ 33 | ['exclude', '(^|/)windows/'], 34 | ], 35 | }], 36 | ['OS!="linux"', { 37 | 'sources/': [ 38 | ['exclude', '(^|/)linux/'], 39 | ], 40 | }], 41 | ['OS!="mac"', { 42 | 'sources/': [ 43 | ['exclude', '(^|/)mac/'], 44 | ], 45 | }], 46 | ['OS!="android"', { 47 | 'sources/': [ 48 | ['exclude', '(^|/)android/'], 49 | ], 50 | }], 51 | ['OS!="solaris"', { 52 | 'sources/': [ 53 | ['exclude', '(^|/)solaris/'], 54 | ], 55 | }], 56 | ], 57 | } 58 | -------------------------------------------------------------------------------- /src/client/ios/Breakpad_Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'CocoaTouchStaticLibrary' target in the 'CocoaTouchStaticLibrary' project. 3 | // 4 | 5 | #ifdef __OBJC__ 6 | #import 7 | #endif 8 | -------------------------------------------------------------------------------- /src/client/linux/crash_generation/client_info.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2010 Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | #ifndef CLIENT_LINUX_CRASH_GENERATION_CLIENT_INFO_H_ 31 | #define CLIENT_LINUX_CRASH_GENERATION_CLIENT_INFO_H_ 32 | 33 | namespace google_breakpad { 34 | 35 | class CrashGenerationServer; 36 | 37 | class ClientInfo { 38 | public: 39 | ClientInfo(pid_t pid, CrashGenerationServer* crash_server) 40 | : crash_server_(crash_server), 41 | pid_(pid) {} 42 | 43 | CrashGenerationServer* crash_server() const { return crash_server_; } 44 | pid_t pid() const { return pid_; } 45 | 46 | private: 47 | CrashGenerationServer* crash_server_; 48 | pid_t pid_; 49 | }; 50 | 51 | } 52 | 53 | #endif // CLIENT_LINUX_CRASH_GENERATION_CLIENT_INFO_H_ 54 | -------------------------------------------------------------------------------- /src/client/linux/data/linux-gate-amd.sym: -------------------------------------------------------------------------------- 1 | MODULE Linux x86 B8CFDE93002D54DA1900A40AA1BD67690 linux-gate.so 2 | PUBLIC 400 0 __kernel_vsyscall 3 | STACK WIN 4 400 100 1 1 0 0 0 0 0 1 4 | -------------------------------------------------------------------------------- /src/client/linux/data/linux-gate-intel.sym: -------------------------------------------------------------------------------- 1 | MODULE Linux x86 4FBDA58B5A1DF5A379E3CF19A235EA090 linux-gate.so 2 | PUBLIC 400 0 __kernel_vsyscall 3 | STACK WIN 4 400 200 3 3 0 0 0 0 0 1 -------------------------------------------------------------------------------- /src/client/linux/dump_writer_common/raw_context_cpu.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014, Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | #ifndef CLIENT_LINUX_DUMP_WRITER_COMMON_RAW_CONTEXT_CPU_H 31 | #define CLIENT_LINUX_DUMP_WRITER_COMMON_RAW_CONTEXT_CPU_H 32 | 33 | #include "google_breakpad/common/minidump_format.h" 34 | 35 | namespace google_breakpad { 36 | 37 | #if defined(__i386__) 38 | typedef MDRawContextX86 RawContextCPU; 39 | #elif defined(__x86_64) 40 | typedef MDRawContextAMD64 RawContextCPU; 41 | #elif defined(__ARM_EABI__) 42 | typedef MDRawContextARM RawContextCPU; 43 | #elif defined(__aarch64__) 44 | typedef MDRawContextARM64 RawContextCPU; 45 | #elif defined(__mips__) 46 | typedef MDRawContextMIPS RawContextCPU; 47 | #else 48 | #error "This code has not been ported to your platform yet." 49 | #endif 50 | 51 | } // namespace google_breakpad 52 | 53 | #endif // CLIENT_LINUX_DUMP_WRITER_COMMON_RAW_CONTEXT_CPU_H 54 | -------------------------------------------------------------------------------- /src/client/linux/log/log.cc: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012 Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | #include "client/linux/log/log.h" 31 | 32 | #if defined(__ANDROID__) 33 | #include 34 | #else 35 | #include "third_party/lss/linux_syscall_support.h" 36 | #endif 37 | 38 | namespace logger { 39 | 40 | int write(const char* buf, size_t nbytes) { 41 | #if defined(__ANDROID__) 42 | return __android_log_write(ANDROID_LOG_WARN, "google-breakpad", buf); 43 | #else 44 | return sys_write(2, buf, nbytes); 45 | #endif 46 | } 47 | 48 | } // namespace logger 49 | -------------------------------------------------------------------------------- /src/client/linux/log/log.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012, Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | #ifndef CLIENT_LINUX_LOG_LOG_H_ 31 | #define CLIENT_LINUX_LOG_LOG_H_ 32 | 33 | #include 34 | 35 | namespace logger { 36 | 37 | int write(const char* buf, size_t nbytes); 38 | 39 | } // namespace logger 40 | 41 | #endif // CLIENT_LINUX_LOG_LOG_H_ 42 | -------------------------------------------------------------------------------- /src/client/linux/minidump_writer/minidump_writer_unittest_utils.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012, Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | // minidump_writer_unittest_utils.h: 31 | // Shared routines used by unittests under client/linux/minidump_writer. 32 | 33 | #ifndef CLIENT_LINUX_MINIDUMP_WRITER_MINIDUMP_WRITER_UNITTEST_UTILS_H_ 34 | #define CLIENT_LINUX_MINIDUMP_WRITER_MINIDUMP_WRITER_UNITTEST_UTILS_H_ 35 | 36 | #include 37 | 38 | #include "common/using_std_string.h" 39 | 40 | namespace google_breakpad { 41 | 42 | // Returns the full path to linux_dumper_unittest_helper. The full path is 43 | // discovered either by using the environment variable "bindir" or by using 44 | // the location of the main module of the currently running process. 45 | string GetHelperBinary(); 46 | 47 | } // namespace google_breakpad 48 | 49 | #endif // CLIENT_LINUX_MINIDUMP_WRITER_MINIDUMP_WRITER_UNITTEST_UTILS_H_ 50 | -------------------------------------------------------------------------------- /src/client/mac/Framework/Breakpad_Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'Breakpad' target in the 3 | // 'Breakpad' project. 4 | // 5 | 6 | #ifdef __OBJC__ 7 | #import 8 | #endif 9 | -------------------------------------------------------------------------------- /src/client/mac/Framework/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleName 10 | ${PRODUCT_NAME} 11 | CFBundleIconFile 12 | 13 | CFBundleIdentifier 14 | com.googlecode.google-breakpad 15 | CFBundleInfoDictionaryVersion 16 | 6.0 17 | CFBundlePackageType 18 | FMWK 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1.0 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/client/mac/UnitTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.yourcompany.${PRODUCT_NAME:identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleSignature 16 | ???? 17 | CFBundleVersion 18 | 1.0 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/client/mac/crash_generation/client_info.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2010 Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | #ifndef CLIENT_MAC_CRASH_GENERATION_CLIENT_INFO_H_ 31 | #define CLIENT_MAC_CRASH_GENERATION_CLIENT_INFO_H_ 32 | 33 | namespace google_breakpad { 34 | 35 | class ClientInfo { 36 | public: 37 | explicit ClientInfo(pid_t pid) : pid_(pid) {} 38 | 39 | pid_t pid() const { return pid_; } 40 | 41 | private: 42 | pid_t pid_; 43 | }; 44 | 45 | } // namespace google_breakpad 46 | 47 | #endif // CLIENT_MAC_CRASH_GENERATION_CLIENT_INFO_H_ 48 | -------------------------------------------------------------------------------- /src/client/mac/gcov/libgcov.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/client/mac/gcov/libgcov.a -------------------------------------------------------------------------------- /src/client/mac/handler/breakpad_nlist_64.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2008, Google Inc. 2 | // All rights reserved 3 | // Redistribution and use in source and binary forms, with or without 4 | // modification, are permitted provided that the following conditions are 5 | // met: 6 | // 7 | // * Redistributions of source code must retain the above copyright 8 | // notice, this list of conditions and the following disclaimer. 9 | // * Redistributions in binary form must reproduce the above 10 | // copyright notice, this list of conditions and the following disclaimer 11 | // in the documentation and/or other materials provided with the 12 | // distribution. 13 | // * Neither the name of Google Inc. nor the names of its 14 | // contributors may be used to endorse or promote products derived from 15 | // this software without specific prior written permission. 16 | // 17 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 20 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 21 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | 29 | // breakpad_nlist.h 30 | // 31 | // This file is meant to provide a header for clients of the modified 32 | // nlist function implemented to work on 64-bit. 33 | 34 | #ifndef CLIENT_MAC_HANDLER_BREAKPAD_NLIST_H__ 35 | 36 | #include 37 | 38 | int breakpad_nlist(const char *name, 39 | struct nlist *list, 40 | const char **symbolNames, 41 | cpu_type_t cpu_type); 42 | int breakpad_nlist(const char *name, 43 | struct nlist_64 *list, 44 | const char **symbolNames, 45 | cpu_type_t cpu_type); 46 | 47 | #endif /* CLIENT_MAC_HANDLER_BREAKPAD_NLIST_H__ */ 48 | -------------------------------------------------------------------------------- /src/client/mac/handler/mach_vm_compat.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2011, Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | #ifndef CLIENT_MAC_GENERATOR_MACH_VM_COMPAT_H_ 31 | #define CLIENT_MAC_GENERATOR_MACH_VM_COMPAT_H_ 32 | 33 | #include 34 | 35 | // On iOS 5 and higher, mach/mach_vm.h is not supported. Use the corresponding 36 | // vm_map functions instead. 37 | #if TARGET_OS_IPHONE 38 | #include 39 | #define mach_vm_address_t vm_address_t 40 | #define mach_vm_deallocate vm_deallocate 41 | #define mach_vm_read vm_read 42 | #define mach_vm_region_recurse vm_region_recurse_64 43 | #define mach_vm_size_t vm_size_t 44 | #else 45 | #include 46 | #endif // TARGET_OS_IPHONE 47 | 48 | #endif // CLIENT_MAC_GENERATOR_MACH_VM_COMPAT_H_ 49 | -------------------------------------------------------------------------------- /src/client/mac/handler/minidump_tests32-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.google.breakpad.minidump_tests32 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleSignature 16 | ???? 17 | CFBundleVersion 18 | 1.0 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/client/mac/handler/minidump_tests64-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.google.breakpad.minidump_tests64 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleSignature 16 | ???? 17 | CFBundleVersion 18 | 1.0 19 | CSResourcesFileMapped 20 | yes 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/client/mac/handler/obj-cTestCases-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.yourcompany.${PRODUCT_NAME:identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleSignature 16 | ???? 17 | CFBundleVersion 18 | 1.0 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/client/mac/handler/testcases/DynamicImagesTests.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2008, Google Inc. 2 | // All rights reserved 3 | // Redistribution and use in source and binary forms, with or without 4 | // modification, are permitted provided that the following conditions are 5 | // met: 6 | // 7 | // * Redistributions of source code must retain the above copyright 8 | // notice, this list of conditions and the following disclaimer. 9 | // * Redistributions in binary form must reproduce the above 10 | // copyright notice, this list of conditions and the following disclaimer 11 | // in the documentation and/or other materials provided with the 12 | // distribution. 13 | // * Neither the name of Google Inc. nor the names of its 14 | // contributors may be used to endorse or promote products derived from 15 | // this software without specific prior written permission. 16 | // 17 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 20 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 21 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | 29 | // 30 | // DynamicImagesTests.h 31 | // minidump_test 32 | // 33 | // Created by Neal Sidhwaney on 4/17/08. 34 | // Copyright 2008 Google Inc. All rights reserved. 35 | // 36 | // 37 | 38 | #ifndef _CLIENT_MAC_HANDLER_TESTCASES_DYNAMICIMAGESTESTS_H__ 39 | #define _CLIENT_MAC_HANDLER_TESTCASES_DYNAMICIMAGESTESTS_H__ 40 | 41 | #include 42 | 43 | class DynamicImagesTests : public TestCase { 44 | public: 45 | explicit DynamicImagesTests(TestInvocation* invocation); 46 | virtual ~DynamicImagesTests(); 47 | 48 | void ReadTaskMemoryTest(); 49 | void ReadLibrariesFromLocalTaskTest(); 50 | }; 51 | 52 | #endif /* _CLIENT_MAC_HANDLER_TESTCASES_DYNAMICIMAGESTESTS_H__ */ 53 | -------------------------------------------------------------------------------- /src/client/mac/handler/testcases/dwarftests.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2008, Google Inc. 2 | // All rights reserved 3 | // Redistribution and use in source and binary forms, with or without 4 | // modification, are permitted provided that the following conditions are 5 | // met: 6 | // 7 | // * Redistributions of source code must retain the above copyright 8 | // notice, this list of conditions and the following disclaimer. 9 | // * Redistributions in binary form must reproduce the above 10 | // copyright notice, this list of conditions and the following disclaimer 11 | // in the documentation and/or other materials provided with the 12 | // distribution. 13 | // * Neither the name of Google Inc. nor the names of its 14 | // contributors may be used to endorse or promote products derived from 15 | // this software without specific prior written permission. 16 | // 17 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 20 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 21 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | 29 | // 30 | // dwarftests.h 31 | // minidump_test 32 | // 33 | // Created by Neal Sidhwaney on 9/24/08. 34 | // Copyright 2008 Google Inc. All rights reserved. 35 | // 36 | 37 | #import 38 | 39 | 40 | @interface dwarftests : SenTestCase { 41 | 42 | } 43 | 44 | - (void) testDWARFSymbolFileGeneration; 45 | 46 | @end 47 | -------------------------------------------------------------------------------- /src/client/mac/handler/testcases/testdata/dump_syms_dwarf_data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/client/mac/handler/testcases/testdata/dump_syms_dwarf_data -------------------------------------------------------------------------------- /src/client/mac/handler/ucontext_compat.h: -------------------------------------------------------------------------------- 1 | // Copyright 2013 Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | #ifndef CLIENT_MAC_HANDLER_UCONTEXT_COMPAT_H_ 31 | #define CLIENT_MAC_HANDLER_UCONTEXT_COMPAT_H_ 32 | 33 | #include 34 | 35 | // The purpose of this file is to work around the fact that ucontext_t's 36 | // uc_mcontext member is an mcontext_t rather than an mcontext64_t on ARM64. 37 | #if defined(__aarch64__) 38 | // doesn't include the below file. 39 | #include 40 | typedef ucontext64_t breakpad_ucontext_t; 41 | #define breakpad_uc_mcontext uc_mcontext64 42 | #else 43 | typedef ucontext_t breakpad_ucontext_t; 44 | #define breakpad_uc_mcontext uc_mcontext 45 | #endif // defined(__aarch64__) 46 | 47 | #endif // CLIENT_MAC_HANDLER_UCONTEXT_COMPAT_H_ 48 | -------------------------------------------------------------------------------- /src/client/mac/sender/English.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/client/mac/sender/English.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /src/client/mac/sender/English.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/client/mac/sender/English.lproj/Localizable.strings -------------------------------------------------------------------------------- /src/client/mac/sender/crash_report_sender-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleDisplayName 8 | ${EXECUTABLE_NAME} 9 | CFBundleExecutable 10 | ${EXECUTABLE_NAME} 11 | CFBundleIconFile 12 | crash_report_sender 13 | CFBundleIdentifier 14 | com.Breakpad.${PRODUCT_NAME:identifier} 15 | CFBundleInfoDictionaryVersion 16 | 6.0 17 | CFBundleName 18 | ${EXECUTABLE_NAME} 19 | CFBundlePackageType 20 | APPL 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1.0 25 | LSHasLocalizedDisplayName 26 | 27 | NSMainNibFile 28 | MainMenu 29 | NSPrincipalClass 30 | NSApplication 31 | 32 | 33 | -------------------------------------------------------------------------------- /src/client/mac/sender/crash_report_sender.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/client/mac/sender/crash_report_sender.icns -------------------------------------------------------------------------------- /src/client/mac/sender/da.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/client/mac/sender/da.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /src/client/mac/sender/da.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/client/mac/sender/da.lproj/Localizable.strings -------------------------------------------------------------------------------- /src/client/mac/sender/de.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/client/mac/sender/de.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /src/client/mac/sender/de.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/client/mac/sender/de.lproj/Localizable.strings -------------------------------------------------------------------------------- /src/client/mac/sender/es.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/client/mac/sender/es.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /src/client/mac/sender/es.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/client/mac/sender/es.lproj/Localizable.strings -------------------------------------------------------------------------------- /src/client/mac/sender/fr.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/client/mac/sender/fr.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /src/client/mac/sender/fr.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/client/mac/sender/fr.lproj/Localizable.strings -------------------------------------------------------------------------------- /src/client/mac/sender/goArrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/client/mac/sender/goArrow.png -------------------------------------------------------------------------------- /src/client/mac/sender/it.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/client/mac/sender/it.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /src/client/mac/sender/it.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/client/mac/sender/it.lproj/Localizable.strings -------------------------------------------------------------------------------- /src/client/mac/sender/ja.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/client/mac/sender/ja.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /src/client/mac/sender/ja.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/client/mac/sender/ja.lproj/Localizable.strings -------------------------------------------------------------------------------- /src/client/mac/sender/nl.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/client/mac/sender/nl.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /src/client/mac/sender/nl.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/client/mac/sender/nl.lproj/Localizable.strings -------------------------------------------------------------------------------- /src/client/mac/sender/no.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/client/mac/sender/no.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /src/client/mac/sender/no.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/client/mac/sender/no.lproj/Localizable.strings -------------------------------------------------------------------------------- /src/client/mac/sender/sl.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/client/mac/sender/sl.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /src/client/mac/sender/sl.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/client/mac/sender/sl.lproj/Localizable.strings -------------------------------------------------------------------------------- /src/client/mac/sender/sv.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/client/mac/sender/sv.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /src/client/mac/sender/sv.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/client/mac/sender/sv.lproj/Localizable.strings -------------------------------------------------------------------------------- /src/client/mac/sender/tr.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/client/mac/sender/tr.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /src/client/mac/sender/tr.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/client/mac/sender/tr.lproj/Localizable.strings -------------------------------------------------------------------------------- /src/client/mac/testapp/English.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/client/mac/testapp/English.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /src/client/mac/testapp/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIconFile 10 | bomb 11 | CFBundleIdentifier 12 | com.Google.BreakpadTest 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | ${PRODUCT_NAME} 17 | CFBundlePackageType 18 | APPL 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1.0 23 | NSMainNibFile 24 | MainMenu 25 | NSPrincipalClass 26 | NSApplication 27 | BreakpadProductDisplay 28 | Breakpad Tester 29 | BreakpadProduct 30 | Breakpad_Tester 31 | BreakpadVersion 32 | 1.2.3.4 33 | BreakpadReportInterval 34 | 10 35 | BreakpadSkipConfirm 36 | NO 37 | BreakpadSendAndExit 38 | YES 39 | BreakpadRequestEmail 40 | YES 41 | BreakpadRequestComments 42 | YES 43 | BreakpadVendor 44 | Foo Bar Corp, Incorporated, LTD, LLC 45 | BreakpadServerParameters 46 | 47 | Param1 48 | Value1 49 | Param2 50 | Value2 51 | 52 | LSUIElement 53 | 1 54 | 55 | 56 | -------------------------------------------------------------------------------- /src/client/mac/testapp/TestClass.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006, Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | #import 31 | 32 | @interface TestClass : NSObject { 33 | } 34 | 35 | - (void)wait; 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /src/client/mac/testapp/bomb.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/client/mac/testapp/bomb.icns -------------------------------------------------------------------------------- /src/client/mac/testapp/crashInMain: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/client/mac/testapp/crashInMain -------------------------------------------------------------------------------- /src/client/mac/testapp/crashduringload: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/client/mac/testapp/crashduringload -------------------------------------------------------------------------------- /src/client/mac/testapp/main.m: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006, Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | #import 31 | 32 | int main(int argc, char *argv[]) { 33 | return NSApplicationMain(argc, (const char **) argv); 34 | } 35 | -------------------------------------------------------------------------------- /src/client/mac/tests/testlogging.h: -------------------------------------------------------------------------------- 1 | // This file exists to override the processor logging for unit tests, 2 | // since it confuses XCode into thinking unit tests have failed. 3 | #include 4 | 5 | namespace google_breakpad { 6 | extern std::ostringstream info_log; 7 | } 8 | 9 | #define BPLOG_INFO_STREAM google_breakpad::info_log 10 | -------------------------------------------------------------------------------- /src/client/windows/handler/exception_handler.gyp: -------------------------------------------------------------------------------- 1 | # Copyright 2010 Google Inc. All rights reserved. 2 | # 3 | # Redistribution and use in source and binary forms, with or without 4 | # modification, are permitted provided that the following conditions are 5 | # met: 6 | # 7 | # * Redistributions of source code must retain the above copyright 8 | # notice, this list of conditions and the following disclaimer. 9 | # * Redistributions in binary form must reproduce the above 10 | # copyright notice, this list of conditions and the following disclaimer 11 | # in the documentation and/or other materials provided with the 12 | # distribution. 13 | # * Neither the name of Google Inc. nor the names of its 14 | # contributors may be used to endorse or promote products derived from 15 | # this software without specific prior written permission. 16 | # 17 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18 | # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19 | # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 20 | # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 21 | # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22 | # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23 | # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 | # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 | # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | 29 | { 30 | 'includes': [ 31 | '../../../build/common.gypi', 32 | ], 33 | 'targets': [ 34 | { 35 | 'target_name': 'exception_handler', 36 | 'type': 'static_library', 37 | 'sources': [ 38 | "exception_handler.cc", 39 | "exception_handler.h", 40 | ], 41 | 'dependencies': [ 42 | '../breakpad_client.gyp:common', 43 | '../crash_generation/crash_generation.gyp:crash_generation_server', 44 | ] 45 | }, 46 | ], 47 | } 48 | -------------------------------------------------------------------------------- /src/client/windows/sender/crash_report_sender.gyp: -------------------------------------------------------------------------------- 1 | # Copyright 2010 Google Inc. All rights reserved. 2 | # 3 | # Redistribution and use in source and binary forms, with or without 4 | # modification, are permitted provided that the following conditions are 5 | # met: 6 | # 7 | # * Redistributions of source code must retain the above copyright 8 | # notice, this list of conditions and the following disclaimer. 9 | # * Redistributions in binary form must reproduce the above 10 | # copyright notice, this list of conditions and the following disclaimer 11 | # in the documentation and/or other materials provided with the 12 | # distribution. 13 | # * Neither the name of Google Inc. nor the names of its 14 | # contributors may be used to endorse or promote products derived from 15 | # this software without specific prior written permission. 16 | # 17 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18 | # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19 | # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 20 | # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 21 | # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22 | # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23 | # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 | # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 | # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | 29 | { 30 | 'includes': [ 31 | '../../../build/common.gypi', 32 | ], 33 | 'targets': [ 34 | { 35 | 'target_name': 'crash_report_sender', 36 | 'type': 'static_library', 37 | 'sources': [ 38 | 'crash_report_sender.cc', 39 | 'crash_report_sender.h', 40 | ], 41 | 'dependencies': [ 42 | '../breakpad_client.gyp:common' 43 | ], 44 | }, 45 | ], 46 | } 47 | -------------------------------------------------------------------------------- /src/client/windows/tests/crash_generation_app/abstract_class.cc: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2008, Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | #include "client/windows/tests/crash_generation_app/abstract_class.h" 31 | 32 | namespace google_breakpad { 33 | 34 | Base::Base(Derived* derived) 35 | : derived_(derived) { 36 | } 37 | 38 | Base::~Base() { 39 | derived_->DoSomething(); 40 | } 41 | 42 | #pragma warning(push) 43 | #pragma warning(disable:4355) 44 | // Disable warning C4355: 'this' : used in base member initializer list. 45 | Derived::Derived() 46 | : Base(this) { // C4355 47 | } 48 | #pragma warning(pop) 49 | 50 | void Derived::DoSomething() { 51 | } 52 | 53 | } // namespace google_breakpad 54 | -------------------------------------------------------------------------------- /src/client/windows/tests/crash_generation_app/abstract_class.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2008, Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | #ifndef CLIENT_WINDOWS_TESTS_CRASH_GENERATION_APP_ABSTRACT_CLASS_H__ 31 | #define CLIENT_WINDOWS_TESTS_CRASH_GENERATION_APP_ABSTRACT_CLASS_H__ 32 | 33 | namespace google_breakpad { 34 | 35 | // Dummy classes to help generate a pure call violation. 36 | 37 | class Derived; 38 | 39 | class Base { 40 | public: 41 | Base(Derived* derived); 42 | virtual ~Base(); 43 | virtual void DoSomething() = 0; 44 | 45 | private: 46 | Derived* derived_; 47 | }; 48 | 49 | class Derived : public Base { 50 | public: 51 | Derived(); 52 | virtual void DoSomething(); 53 | }; 54 | 55 | } // namespace google_breakpad 56 | 57 | #endif // CLIENT_WINDOWS_TESTS_CRASH_GENERATION_APP_CRASH_GENERATION_APP_H__ 58 | -------------------------------------------------------------------------------- /src/client/windows/tests/crash_generation_app/crash_generation_app.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2008, Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | #ifndef CLIENT_WINDOWS_TESTS_CRASH_GENERATION_APP_CRASH_GENERATION_APP_H__ 31 | #define CLIENT_WINDOWS_TESTS_CRASH_GENERATION_APP_CRASH_GENERATION_APP_H__ 32 | 33 | #include "resource.h" 34 | 35 | #endif // CLIENT_WINDOWS_TESTS_CRASH_GENERATION_APP_CRASH_GENERATION_APP_H__ 36 | -------------------------------------------------------------------------------- /src/client/windows/tests/crash_generation_app/crash_generation_app.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/client/windows/tests/crash_generation_app/crash_generation_app.ico -------------------------------------------------------------------------------- /src/client/windows/tests/crash_generation_app/small.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/client/windows/tests/crash_generation_app/small.ico -------------------------------------------------------------------------------- /src/common/android/include/sgidefs.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2013, Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | #ifndef GOOGLE_BREAKPAD_ANDROID_INCLUDE_SGIDEFS_H 31 | #define GOOGLE_BREAKPAD_ANDROID_INCLUDE_SGIDEFS_H 32 | 33 | #ifdef __mips__ 34 | 35 | // Android doesn't contain sgidefs.h, but does have which 36 | // contains what we need. 37 | #include 38 | 39 | #endif // __mips__ 40 | 41 | #endif // GOOGLE_BREAKPAD_ANDROID_INCLUDE_SGIDEFS_H 42 | -------------------------------------------------------------------------------- /src/common/android/include/sys/signal.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012, Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | #ifndef GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_SYS_SIGNAL_H 31 | #define GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_SYS_SIGNAL_H 32 | 33 | #include 34 | 35 | #endif // GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_SYS_SIGNAL_H 36 | -------------------------------------------------------------------------------- /src/common/android/include/ucontext.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012, Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | #ifndef GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_UCONTEXT_H 31 | #define GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_UCONTEXT_H 32 | 33 | #include 34 | 35 | #ifdef __BIONIC_UCONTEXT_H 36 | #include 37 | #else 38 | 39 | #include 40 | 41 | #ifdef __cplusplus 42 | extern "C" { 43 | #endif // __cplusplus 44 | 45 | // Provided by src/android/common/breakpad_getcontext.S 46 | int breakpad_getcontext(ucontext_t* ucp); 47 | 48 | #define getcontext(x) breakpad_getcontext(x) 49 | 50 | #ifdef __cplusplus 51 | } // extern "C" 52 | #endif // __cplusplus 53 | 54 | #endif // __BIONIC_UCONTEXT_H 55 | 56 | #endif // GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_UCONTEXT_H 57 | -------------------------------------------------------------------------------- /src/common/dwarf/types.h: -------------------------------------------------------------------------------- 1 | // Copyright 2008 Google, Inc. All Rights reserved 2 | // 3 | // Redistribution and use in source and binary forms, with or without 4 | // modification, are permitted provided that the following conditions are 5 | // met: 6 | // 7 | // * Redistributions of source code must retain the above copyright 8 | // notice, this list of conditions and the following disclaimer. 9 | // * Redistributions in binary form must reproduce the above 10 | // copyright notice, this list of conditions and the following disclaimer 11 | // in the documentation and/or other materials provided with the 12 | // distribution. 13 | // * Neither the name of Google Inc. nor the names of its 14 | // contributors may be used to endorse or promote products derived from 15 | // this software without specific prior written permission. 16 | // 17 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 20 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 21 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | 29 | 30 | // This file contains some typedefs for basic types 31 | 32 | 33 | #ifndef _COMMON_DWARF_TYPES_H__ 34 | #define _COMMON_DWARF_TYPES_H__ 35 | 36 | #include 37 | 38 | typedef signed char int8; 39 | typedef short int16; 40 | typedef int int32; 41 | typedef long long int64; 42 | 43 | typedef unsigned char uint8; 44 | typedef unsigned short uint16; 45 | typedef unsigned int uint32; 46 | typedef unsigned long long uint64; 47 | 48 | #ifdef __PTRDIFF_TYPE__ 49 | typedef __PTRDIFF_TYPE__ intptr; 50 | typedef unsigned __PTRDIFF_TYPE__ uintptr; 51 | #else 52 | #error "Can't find pointer-sized integral types." 53 | #endif 54 | 55 | #endif // _COMMON_DWARF_TYPES_H__ 56 | -------------------------------------------------------------------------------- /src/common/linux/crc32.h: -------------------------------------------------------------------------------- 1 | // Copyright 2014 Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | #ifndef COMMON_LINUX_CRC32_H_ 31 | #define COMMON_LINUX_CRC32_H_ 32 | 33 | #include 34 | 35 | #include 36 | 37 | namespace google_breakpad { 38 | 39 | // Updates a CRC32 checksum with |len| bytes from |buf|. |initial| holds the 40 | // checksum result from the previous update; for the first call, it should be 0. 41 | uint32_t UpdateCrc32(uint32_t initial, const void* buf, size_t len); 42 | 43 | // Computes a CRC32 checksum using |len| bytes from |buf|. 44 | inline uint32_t ComputeCrc32(const void* buf, size_t len) { 45 | return UpdateCrc32(0, buf, len); 46 | } 47 | inline uint32_t ComputeCrc32(const std::string& str) { 48 | return ComputeCrc32(str.c_str(), str.size()); 49 | } 50 | 51 | } // namespace google_breakpad 52 | 53 | #endif // COMMON_LINUX_CRC32_H_ 54 | -------------------------------------------------------------------------------- /src/common/linux/eintr_wrapper.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2010 Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | #ifndef COMMON_LINUX_EINTR_WRAPPER_H_ 31 | #define COMMON_LINUX_EINTR_WRAPPER_H_ 32 | 33 | #include 34 | 35 | // This provides a wrapper around system calls which may be interrupted by a 36 | // signal and return EINTR. See man 7 signal. 37 | // 38 | 39 | #define HANDLE_EINTR(x) ({ \ 40 | typeof(x) eintr_wrapper_result; \ 41 | do { \ 42 | eintr_wrapper_result = (x); \ 43 | } while (eintr_wrapper_result == -1 && errno == EINTR); \ 44 | eintr_wrapper_result; \ 45 | }) 46 | 47 | #define IGNORE_EINTR(x) ({ \ 48 | typeof(x) eintr_wrapper_result; \ 49 | do { \ 50 | eintr_wrapper_result = (x); \ 51 | if (eintr_wrapper_result == -1 && errno == EINTR) { \ 52 | eintr_wrapper_result = 0; \ 53 | } \ 54 | } while (0); \ 55 | eintr_wrapper_result; \ 56 | }) 57 | 58 | #endif // COMMON_LINUX_EINTR_WRAPPER_H_ 59 | -------------------------------------------------------------------------------- /src/common/linux/elf_gnu_compat.h: -------------------------------------------------------------------------------- 1 | // -*- mode: C++ -*- 2 | 3 | // Copyright (c) 2013, Google Inc. 4 | // All rights reserved. 5 | // 6 | // Redistribution and use in source and binary forms, with or without 7 | // modification, are permitted provided that the following conditions are 8 | // met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above 13 | // copyright notice, this list of conditions and the following disclaimer 14 | // in the documentation and/or other materials provided with the 15 | // distribution. 16 | // * Neither the name of Google Inc. nor the names of its 17 | // contributors may be used to endorse or promote products derived from 18 | // this software without specific prior written permission. 19 | // 20 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 24 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 25 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 26 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | // Original author: Lei Zhang 33 | 34 | // elf_gnu_compat.h: #defines unique to glibc's elf.h. 35 | 36 | #ifndef COMMON_LINUX_ELF_GNU_COMPAT_H_ 37 | #define COMMON_LINUX_ELF_GNU_COMPAT_H_ 38 | 39 | #include 40 | 41 | // A note type on GNU systems corresponding to the .note.gnu.build-id section. 42 | #ifndef NT_GNU_BUILD_ID 43 | #define NT_GNU_BUILD_ID 3 44 | #endif 45 | 46 | #endif // COMMON_LINUX_ELF_GNU_COMPAT_H_ 47 | -------------------------------------------------------------------------------- /src/common/linux/guid_creator.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006, Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | #ifndef COMMON_LINUX_GUID_CREATOR_H__ 31 | #define COMMON_LINUX_GUID_CREATOR_H__ 32 | 33 | #include "google_breakpad/common/minidump_format.h" 34 | 35 | typedef MDGUID GUID; 36 | 37 | // Format string for parsing GUID. 38 | #define kGUIDFormatString "%08x-%04x-%04x-%08x-%08x" 39 | // Length of GUID string. Don't count the ending '\0'. 40 | #define kGUIDStringLength 36 41 | 42 | // Create a guid. 43 | bool CreateGUID(GUID *guid); 44 | 45 | // Get the string from guid. 46 | bool GUIDToString(const GUID *guid, char *buf, int buf_len); 47 | 48 | #endif 49 | -------------------------------------------------------------------------------- /src/common/linux/ignore_ret.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012 Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | #ifndef COMMON_LINUX_IGNORE_RET_H_ 31 | #define COMMON_LINUX_IGNORE_RET_H_ 32 | 33 | // Some compilers are prone to warn about unused return values. In cases where 34 | // either a) the call cannot fail, or b) there is nothing that can be done when 35 | // the call fails, IGNORE_RET() can be used to mark the return code as ignored. 36 | // This avoids spurious compiler warnings. 37 | 38 | #define IGNORE_RET(x) do { if (x); } while (0) 39 | 40 | #endif // COMMON_LINUX_IGNORE_RET_H_ 41 | -------------------------------------------------------------------------------- /src/common/mac/BreakpadDebug.xcconfig: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2010, Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | #include "Breakpad.xcconfig" 31 | 32 | GCC_OPTIMIZATION_LEVEL = 0 33 | -------------------------------------------------------------------------------- /src/common/mac/BreakpadRelease.xcconfig: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2010, Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | #include "Breakpad.xcconfig" 31 | 32 | GCC_OPTIMIZATION_LEVEL = s 33 | GCC_WARN_UNINITIALIZED_AUTOS = YES 34 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) NDEBUG 35 | -------------------------------------------------------------------------------- /src/common/mac/arch_utilities.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012, Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | // arch_utilities.h: Utilities for architecture introspection for Mac platform. 31 | 32 | #ifndef COMMON_MAC_ARCH_UTILITIES_H__ 33 | #define COMMON_MAC_ARCH_UTILITIES_H__ 34 | 35 | #include 36 | 37 | namespace google_breakpad { 38 | 39 | // Custom implementation of |NXGetArchInfoFromName| and 40 | // |NXGetArchInfoFromCpuType| that handle newer CPU on older OSes. 41 | const NXArchInfo* BreakpadGetArchInfoFromName(const char* arch_name); 42 | const NXArchInfo* BreakpadGetArchInfoFromCpuType(cpu_type_t cpu_type, 43 | cpu_subtype_t cpu_subtype); 44 | 45 | } // namespace google_breakpad 46 | 47 | #endif // COMMON_MAC_ARCH_UTILITIES_H__ 48 | -------------------------------------------------------------------------------- /src/common/mac/bootstrap_compat.cc: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012, Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | #include "common/mac/bootstrap_compat.h" 31 | 32 | namespace breakpad { 33 | 34 | #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 35 | kern_return_t BootstrapRegister(mach_port_t bp, 36 | name_t service_name, 37 | mach_port_t sp) { 38 | return bootstrap_register(bp, service_name, sp); 39 | } 40 | #pragma GCC diagnostic warning "-Wdeprecated-declarations" 41 | 42 | } // namesapce breakpad 43 | -------------------------------------------------------------------------------- /src/common/mac/byteswap.h: -------------------------------------------------------------------------------- 1 | // -*- mode: c++ -*- 2 | 3 | // Copyright (c) 2010, Google Inc. 4 | // All rights reserved. 5 | // 6 | // Redistribution and use in source and binary forms, with or without 7 | // modification, are permitted provided that the following conditions are 8 | // met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above 13 | // copyright notice, this list of conditions and the following disclaimer 14 | // in the documentation and/or other materials provided with the 15 | // distribution. 16 | // * Neither the name of Google Inc. nor the names of its 17 | // contributors may be used to endorse or promote products derived from 18 | // this software without specific prior written permission. 19 | // 20 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 24 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 25 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 26 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | // Original author: Jim Blandy 33 | 34 | // byteswap.h: Overloaded functions for conveniently byteswapping values. 35 | 36 | #ifndef COMMON_MAC_BYTESWAP_H_ 37 | #define COMMON_MAC_BYTESWAP_H_ 38 | 39 | #include 40 | 41 | static inline uint16_t ByteSwap(uint16_t v) { return OSSwapInt16(v); } 42 | static inline uint32_t ByteSwap(uint32_t v) { return OSSwapInt32(v); } 43 | static inline uint64_t ByteSwap(uint64_t v) { return OSSwapInt64(v); } 44 | static inline int16_t ByteSwap(int16_t v) { return OSSwapInt16(v); } 45 | static inline int32_t ByteSwap(int32_t v) { return OSSwapInt32(v); } 46 | static inline int64_t ByteSwap(int64_t v) { return OSSwapInt64(v); } 47 | 48 | #endif // COMMON_MAC_BYTESWAP_H_ 49 | -------------------------------------------------------------------------------- /src/common/mac/launch_reporter.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014, Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | #ifndef COMMON_MAC_LAUNCH_REPORTER_H__ 31 | #define COMMON_MAC_LAUNCH_REPORTER_H__ 32 | 33 | namespace google_breakpad { 34 | 35 | // Launch the crash dump sender app. 36 | // |reporter_executable_path| is the path to the sender executable. 37 | // |config_file_path| is the path to the config file. 38 | void LaunchReporter(const char *reporter_executable_path, 39 | const char *config_file_path); 40 | 41 | } // namespace google_breakpad 42 | 43 | #endif // COMMON_MAC_LAUNCH_REPORTER_H__ 44 | -------------------------------------------------------------------------------- /src/common/mac/scoped_task_suspend-inl.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2010 Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | // Inline implementation of ScopedTaskSuspend, which suspends a Mach 31 | // task for the duration of its scope. 32 | 33 | #ifndef GOOGLE_BREAKPAD_COMMON_MAC_SCOPED_TASK_SUSPEND_H_ 34 | #define GOOGLE_BREAKPAD_COMMON_MAC_SCOPED_TASK_SUSPEND_H_ 35 | 36 | #include 37 | 38 | namespace google_breakpad { 39 | 40 | class ScopedTaskSuspend { 41 | public: 42 | explicit ScopedTaskSuspend(mach_port_t target) : target_(target) { 43 | task_suspend(target_); 44 | } 45 | 46 | ~ScopedTaskSuspend() { 47 | task_resume(target_); 48 | } 49 | 50 | private: 51 | mach_port_t target_; 52 | }; 53 | 54 | } // namespace google_breakpad 55 | 56 | #endif // GOOGLE_BREAKPAD_COMMON_MAC_SCOPED_TASK_SUSPEND_H_ 57 | -------------------------------------------------------------------------------- /src/common/mac/string_utilities.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006, Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | // string_utilities.h: Utilities for strings for Mac platform 31 | 32 | #ifndef COMMON_MAC_STRING_UTILITIES_H__ 33 | #define COMMON_MAC_STRING_UTILITIES_H__ 34 | 35 | #include 36 | 37 | #include 38 | 39 | namespace MacStringUtils { 40 | 41 | using std::string; 42 | 43 | // Convert a CoreFoundation string into a std::string 44 | string ConvertToString(CFStringRef str); 45 | 46 | // Return the idx'th decimal integer in str, separated by non-decimal-digits 47 | // E.g., str = 10.4.8, idx = 1 -> 4 48 | unsigned int IntegerValueAtIndex(string &str, unsigned int idx); 49 | 50 | } // namespace MacStringUtils 51 | 52 | #endif // COMMON_MAC_STRING_UTILITIES_H__ 53 | -------------------------------------------------------------------------------- /src/common/md5.h: -------------------------------------------------------------------------------- 1 | // Copyright 2007 Google Inc. All Rights Reserved. 2 | // Author: liuli@google.com (Liu Li) 3 | #ifndef COMMON_MD5_H__ 4 | #define COMMON_MD5_H__ 5 | 6 | #include 7 | 8 | namespace google_breakpad { 9 | 10 | typedef uint32_t u32; 11 | typedef uint8_t u8; 12 | 13 | struct MD5Context { 14 | u32 buf[4]; 15 | u32 bits[2]; 16 | u8 in[64]; 17 | }; 18 | 19 | void MD5Init(struct MD5Context *ctx); 20 | 21 | void MD5Update(struct MD5Context *ctx, unsigned char const *buf, size_t len); 22 | 23 | void MD5Final(unsigned char digest[16], struct MD5Context *ctx); 24 | 25 | } // namespace google_breakpad 26 | 27 | #endif // COMMON_MD5_H__ 28 | -------------------------------------------------------------------------------- /src/common/simple_string_dictionary.cc: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2007, Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | #include "common/simple_string_dictionary.h" 31 | 32 | namespace google_breakpad { 33 | 34 | namespace { 35 | 36 | // In C++98 (ISO 14882), section 9.5.1 says that a union cannot have a member 37 | // with a non-trivial ctor, copy ctor, dtor, or assignment operator. Use this 38 | // property to ensure that Entry remains POD. 39 | union Compile_Assert { 40 | NonAllocatingMap<1, 1, 1>::Entry Compile_Assert__entry_must_be_pod; 41 | }; 42 | 43 | } 44 | 45 | } // namespace google_breakpad 46 | -------------------------------------------------------------------------------- /src/common/solaris/dump_symbols.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2007, Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | // 30 | // dump_symbols.cc: Implements a Solaris stab debugging format dumper. 31 | // 32 | // Author: Alfred Peng 33 | 34 | #ifndef COMMON_SOLARIS_DUMP_SYMBOLS_H__ 35 | #define COMMON_SOLARIS_DUMP_SYMBOLS_H__ 36 | 37 | #include 38 | 39 | namespace google_breakpad { 40 | 41 | class DumpSymbols { 42 | public: 43 | bool WriteSymbolFile(const std::string &obj_file, 44 | int sym_fd); 45 | }; 46 | 47 | } // namespace google_breakpad 48 | 49 | #endif // COMMON_SOLARIS_DUMP_SYMBOLS_H__ 50 | -------------------------------------------------------------------------------- /src/common/solaris/guid_creator.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2007, Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | // Author: Alfred Peng 31 | 32 | #ifndef COMMON_SOLARIS_GUID_CREATOR_H__ 33 | #define COMMON_SOLARIS_GUID_CREATOR_H__ 34 | 35 | #include "google_breakpad/common/minidump_format.h" 36 | 37 | typedef MDGUID GUID; 38 | 39 | // Format string for parsing GUID. 40 | #define kGUIDFormatString "%08x-%04x-%04x-%08x-%08x" 41 | // Length of GUID string. Don't count the ending '\0'. 42 | #define kGUIDStringLength 36 43 | 44 | // Create a guid. 45 | bool CreateGUID(GUID *guid); 46 | 47 | // Get the string from guid. 48 | bool GUIDToString(const GUID *guid, char *buf, int buf_len); 49 | 50 | #endif // COMMON_SOLARIS_GUID_CREATOR_H__ 51 | -------------------------------------------------------------------------------- /src/common/solaris/message_output.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2007, Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | // Author: Alfred Peng 31 | 32 | #ifndef COMMON_SOLARIS_MESSAGE_OUTPUT_H__ 33 | #define COMMON_SOLARIS_MESSAGE_OUTPUT_H__ 34 | 35 | namespace google_breakpad { 36 | 37 | const int MESSAGE_MAX = 1000; 38 | 39 | // Message output macros. 40 | // snprintf doesn't operate heap on Solaris, while printf and fprintf do. 41 | // Use snprintf here to avoid heap allocation. 42 | #define print_message1(std, message) \ 43 | char buffer[MESSAGE_MAX]; \ 44 | int len = snprintf(buffer, MESSAGE_MAX, message); \ 45 | write(std, buffer, len) 46 | 47 | #define print_message2(std, message, para) \ 48 | char buffer[MESSAGE_MAX]; \ 49 | int len = snprintf(buffer, MESSAGE_MAX, message, para); \ 50 | write(std, buffer, len); 51 | 52 | } // namespace google_breakpad 53 | 54 | #endif // COMMON_SOLARIS_MESSAGE_OUTPUT_H__ 55 | -------------------------------------------------------------------------------- /src/common/symbol_data.h: -------------------------------------------------------------------------------- 1 | // -*- mode: c++ -*- 2 | 3 | // Copyright (c) 2013 Google Inc. 4 | // All rights reserved. 5 | // 6 | // Redistribution and use in source and binary forms, with or without 7 | // modification, are permitted provided that the following conditions are 8 | // met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above 13 | // copyright notice, this list of conditions and the following disclaimer 14 | // in the documentation and/or other materials provided with the 15 | // distribution. 16 | // * Neither the name of Google Inc. nor the names of its 17 | // contributors may be used to endorse or promote products derived from 18 | // this software without specific prior written permission. 19 | // 20 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 24 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 25 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 26 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | #ifndef COMMON_SYMBOL_DATA_H_ 33 | #define COMMON_SYMBOL_DATA_H_ 34 | 35 | // Control what data is used from the symbol file. 36 | enum SymbolData { 37 | ALL_SYMBOL_DATA, 38 | NO_CFI, 39 | ONLY_CFI 40 | }; 41 | 42 | #endif // COMMON_SYMBOL_DATA_H_ 43 | -------------------------------------------------------------------------------- /src/config.h.in: -------------------------------------------------------------------------------- 1 | /* src/config.h.in. Generated from configure.ac by autoheader. */ 2 | 3 | /* Define to 1 if you have the header file. */ 4 | #undef HAVE_A_OUT_H 5 | 6 | /* Define to 1 if you have the header file. */ 7 | #undef HAVE_INTTYPES_H 8 | 9 | /* Define to 1 if you have the header file. */ 10 | #undef HAVE_MEMORY_H 11 | 12 | /* Define if you have POSIX threads libraries and header files. */ 13 | #undef HAVE_PTHREAD 14 | 15 | /* Define to 1 if you have the header file. */ 16 | #undef HAVE_STDINT_H 17 | 18 | /* Define to 1 if you have the header file. */ 19 | #undef HAVE_STDLIB_H 20 | 21 | /* Define to 1 if you have the header file. */ 22 | #undef HAVE_STRINGS_H 23 | 24 | /* Define to 1 if you have the header file. */ 25 | #undef HAVE_STRING_H 26 | 27 | /* Define to 1 if you have the header file. */ 28 | #undef HAVE_SYS_STAT_H 29 | 30 | /* Define to 1 if you have the header file. */ 31 | #undef HAVE_SYS_TYPES_H 32 | 33 | /* Define to 1 if you have the header file. */ 34 | #undef HAVE_UNISTD_H 35 | 36 | /* Name of package */ 37 | #undef PACKAGE 38 | 39 | /* Define to the address where bug reports for this package should be sent. */ 40 | #undef PACKAGE_BUGREPORT 41 | 42 | /* Define to the full name of this package. */ 43 | #undef PACKAGE_NAME 44 | 45 | /* Define to the full name and version of this package. */ 46 | #undef PACKAGE_STRING 47 | 48 | /* Define to the one symbol short name of this package. */ 49 | #undef PACKAGE_TARNAME 50 | 51 | /* Define to the home page for this package. */ 52 | #undef PACKAGE_URL 53 | 54 | /* Define to the version of this package. */ 55 | #undef PACKAGE_VERSION 56 | 57 | /* Define to necessary symbol if this constant uses a non-standard name on 58 | your system. */ 59 | #undef PTHREAD_CREATE_JOINABLE 60 | 61 | /* Define to 1 if you have the ANSI C header files. */ 62 | #undef STDC_HEADERS 63 | 64 | /* Version number of package */ 65 | #undef VERSION 66 | 67 | /* Enable large inode numbers on Mac OS X 10.5. */ 68 | #ifndef _DARWIN_USE_64_BIT_INODE 69 | # define _DARWIN_USE_64_BIT_INODE 1 70 | #endif 71 | 72 | /* Number of bits in a file offset, on hosts where this is settable. */ 73 | #undef _FILE_OFFSET_BITS 74 | 75 | /* Define for large files, on AIX-style hosts. */ 76 | #undef _LARGE_FILES 77 | -------------------------------------------------------------------------------- /src/google_breakpad/processor/dump_object.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014 Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | // dump_object.h: A base class for all mini/micro dump object. 31 | 32 | #ifndef GOOGLE_BREAKPAD_PROCESSOR_DUMP_OBJECT_H__ 33 | #define GOOGLE_BREAKPAD_PROCESSOR_DUMP_OBJECT_H__ 34 | 35 | namespace google_breakpad { 36 | 37 | // DumpObject is the base of various mini/micro dump's objects. 38 | class DumpObject { 39 | public: 40 | DumpObject(); 41 | 42 | bool valid() const { return valid_; } 43 | 44 | protected: 45 | // DumpObjects are not valid when created. When a subclass populates its own 46 | // fields, it can set valid_ to true. Accessors and mutators may wish to 47 | // consider or alter the valid_ state as they interact with objects. 48 | bool valid_; 49 | }; 50 | 51 | } // namespace google_breakpad 52 | 53 | #endif // GOOGLE_BREAKPAD_PROCESSOR_DUMP_OBJECT_H__ 54 | -------------------------------------------------------------------------------- /src/processor/call_stack.cc: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006, Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | // call_stack.cc: A call stack comprised of stack frames. 31 | // 32 | // See call_stack.h for documentation. 33 | // 34 | // Author: Mark Mentovai 35 | 36 | #include "google_breakpad/processor/call_stack.h" 37 | #include "google_breakpad/processor/stack_frame.h" 38 | 39 | namespace google_breakpad { 40 | 41 | CallStack::~CallStack() { 42 | Clear(); 43 | } 44 | 45 | void CallStack::Clear() { 46 | for (vector::const_iterator iterator = frames_.begin(); 47 | iterator != frames_.end(); 48 | ++iterator) { 49 | delete *iterator; 50 | } 51 | } 52 | 53 | } // namespace google_breakpad 54 | -------------------------------------------------------------------------------- /src/processor/dump_object.cc: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2010 Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | // dump_object.cc: A base class for all mini/micro dump object. 31 | 32 | #include "google_breakpad/processor/dump_object.h" 33 | 34 | namespace google_breakpad { 35 | 36 | DumpObject::DumpObject() : valid_(false) { 37 | } 38 | 39 | } // namespace google_breakpad 40 | -------------------------------------------------------------------------------- /src/processor/microdump_processor_unittest.cc: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014, Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | // Unit test for MicrodumpProcessor. 31 | 32 | #include "breakpad_googletest_includes.h" 33 | 34 | namespace { 35 | 36 | class MicrodumpProcessorTest : public ::testing::Test { 37 | }; 38 | 39 | // TODO(mmandlis): Add MicrodumpProcessor tests. See crbug.com/410294 40 | 41 | } // namespace 42 | 43 | int main(int argc, char *argv[]) { 44 | ::testing::InitGoogleTest(&argc, argv); 45 | return RUN_ALL_TESTS(); 46 | } 47 | -------------------------------------------------------------------------------- /src/processor/minidump_dump_test: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Copyright (c) 2006, Google Inc. 4 | # All rights reserved. 5 | # 6 | # Redistribution and use in source and binary forms, with or without 7 | # modification, are permitted provided that the following conditions are 8 | # met: 9 | # 10 | # * Redistributions of source code must retain the above copyright 11 | # notice, this list of conditions and the following disclaimer. 12 | # * Redistributions in binary form must reproduce the above 13 | # copyright notice, this list of conditions and the following disclaimer 14 | # in the documentation and/or other materials provided with the 15 | # distribution. 16 | # * Neither the name of Google Inc. nor the names of its 17 | # contributors may be used to endorse or promote products derived from 18 | # this software without specific prior written permission. 19 | # 20 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 | # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 | # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23 | # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 24 | # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 25 | # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 26 | # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27 | # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28 | # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | testdata_dir=$srcdir/src/processor/testdata 33 | ./src/processor/minidump_dump $testdata_dir/minidump2.dmp | \ 34 | tr -d '\015' | \ 35 | diff -u $testdata_dir/minidump2.dump.out - 36 | exit $? 37 | -------------------------------------------------------------------------------- /src/processor/minidump_stackwalk_machine_readable_test: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Copyright (c) 2007, Google Inc. 4 | # All rights reserved. 5 | # 6 | # Redistribution and use in source and binary forms, with or without 7 | # modification, are permitted provided that the following conditions are 8 | # met: 9 | # 10 | # * Redistributions of source code must retain the above copyright 11 | # notice, this list of conditions and the following disclaimer. 12 | # * Redistributions in binary form must reproduce the above 13 | # copyright notice, this list of conditions and the following disclaimer 14 | # in the documentation and/or other materials provided with the 15 | # distribution. 16 | # * Neither the name of Google Inc. nor the names of its 17 | # contributors may be used to endorse or promote products derived from 18 | # this software without specific prior written permission. 19 | # 20 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 | # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 | # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23 | # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 24 | # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 25 | # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 26 | # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27 | # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28 | # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | testdata_dir=$srcdir/src/processor/testdata 33 | ./src/processor/minidump_stackwalk -m $testdata_dir/minidump2.dmp \ 34 | $testdata_dir/symbols | \ 35 | tr -d '\015' | \ 36 | diff -u $testdata_dir/minidump2.stackwalk.machine_readable.out - 37 | exit $? 38 | -------------------------------------------------------------------------------- /src/processor/minidump_stackwalk_test: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Copyright (c) 2006, Google Inc. 4 | # All rights reserved. 5 | # 6 | # Redistribution and use in source and binary forms, with or without 7 | # modification, are permitted provided that the following conditions are 8 | # met: 9 | # 10 | # * Redistributions of source code must retain the above copyright 11 | # notice, this list of conditions and the following disclaimer. 12 | # * Redistributions in binary form must reproduce the above 13 | # copyright notice, this list of conditions and the following disclaimer 14 | # in the documentation and/or other materials provided with the 15 | # distribution. 16 | # * Neither the name of Google Inc. nor the names of its 17 | # contributors may be used to endorse or promote products derived from 18 | # this software without specific prior written permission. 19 | # 20 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 | # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 | # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23 | # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 24 | # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 25 | # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 26 | # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27 | # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28 | # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | testdata_dir=$srcdir/src/processor/testdata 33 | ./src/processor/minidump_stackwalk $testdata_dir/minidump2.dmp \ 34 | $testdata_dir/symbols | \ 35 | tr -d '\015' | \ 36 | diff -u $testdata_dir/minidump2.stackwalk.out - 37 | exit $? 38 | -------------------------------------------------------------------------------- /src/processor/pathname_stripper.cc: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006, Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | // pathname_stripper.cc: Manipulates pathnames into their component parts. 31 | // 32 | // See pathname_stripper.h for documentation. 33 | // 34 | // Author: Mark Mentovai 35 | 36 | #include "processor/pathname_stripper.h" 37 | 38 | namespace google_breakpad { 39 | 40 | // static 41 | string PathnameStripper::File(const string &path) { 42 | string::size_type slash = path.rfind('/'); 43 | string::size_type backslash = path.rfind('\\'); 44 | 45 | string::size_type file_start = 0; 46 | if (slash != string::npos && 47 | (backslash == string::npos || slash > backslash)) { 48 | file_start = slash + 1; 49 | } else if (backslash != string::npos) { 50 | file_start = backslash + 1; 51 | } 52 | 53 | return path.substr(file_start); 54 | } 55 | 56 | } // namespace google_breakpad 57 | -------------------------------------------------------------------------------- /src/processor/pathname_stripper.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006, Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | // pathname_stripper.h: Manipulates pathnames into their component parts. 31 | // 32 | // Author: Mark Mentovai 33 | 34 | #ifndef PROCESSOR_PATHNAME_STRIPPER_H__ 35 | #define PROCESSOR_PATHNAME_STRIPPER_H__ 36 | 37 | #include 38 | 39 | #include "common/using_std_string.h" 40 | 41 | namespace google_breakpad { 42 | 43 | class PathnameStripper { 44 | public: 45 | // Given path, a pathname with components separated by slashes (/) or 46 | // backslashes (\), returns the trailing component, without any separator. 47 | // If path ends in a separator character, returns an empty string. 48 | static string File(const string &path); 49 | }; 50 | 51 | } // namespace google_breakpad 52 | 53 | #endif // PROCESSOR_PATHNAME_STRIPPER_H__ 54 | -------------------------------------------------------------------------------- /src/processor/processor_tools.gypi: -------------------------------------------------------------------------------- 1 | # Copyright 2014 Google Inc. All rights reserved. 2 | # 3 | # Redistribution and use in source and binary forms, with or without 4 | # modification, are permitted provided that the following conditions are 5 | # met: 6 | # 7 | # * Redistributions of source code must retain the above copyright 8 | # notice, this list of conditions and the following disclaimer. 9 | # * Redistributions in binary form must reproduce the above 10 | # copyright notice, this list of conditions and the following disclaimer 11 | # in the documentation and/or other materials provided with the 12 | # distribution. 13 | # * Neither the name of Google Inc. nor the names of its 14 | # contributors may be used to endorse or promote products derived from 15 | # this software without specific prior written permission. 16 | # 17 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18 | # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19 | # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 20 | # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 21 | # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22 | # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23 | # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 | # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 | # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | 29 | { 30 | 'target_defaults': { 31 | 'include_dirs': [ 32 | '..', 33 | ], 34 | }, 35 | 'targets': [ 36 | { 37 | 'target_name': 'minidump_dump', 38 | 'type': 'executable', 39 | 'sources': [ 40 | 'minidump_dump.cc', 41 | ], 42 | 'dependencies': [ 43 | 'processor', 44 | ], 45 | }, 46 | { 47 | 'target_name': 'minidump_stackwalk', 48 | 'type': 'executable', 49 | 'sources': [ 50 | 'minidump_stackwalk.cc', 51 | ], 52 | 'dependencies': [ 53 | 'processor', 54 | ], 55 | }, 56 | ], 57 | } 58 | -------------------------------------------------------------------------------- /src/processor/proto/README: -------------------------------------------------------------------------------- 1 | If you wish to use these protobufs, you must generate their source files 2 | using protoc from the protobuf project (http://code.google.com/p/protobuf/). 3 | 4 | ----- 5 | Troubleshooting for Protobuf: 6 | 7 | Install: 8 | If you are getting permission errors install, make sure you are not trying to 9 | install from an NFS. 10 | 11 | 12 | Running protoc: 13 | protoc: error while loading shared libraries: libprotobuf.so.0: cannot open 14 | shared object file: No such file or directory 15 | 16 | The issue is that Ubuntu 8.04 doesn't include /usr/local/lib in 17 | library paths. 18 | 19 | To fix it for your current terminal session, just type in 20 | export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib 21 | -------------------------------------------------------------------------------- /src/processor/testdata/ascii_read_av.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/processor/testdata/ascii_read_av.dmp -------------------------------------------------------------------------------- /src/processor/testdata/ascii_read_av_block_write.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/processor/testdata/ascii_read_av_block_write.dmp -------------------------------------------------------------------------------- /src/processor/testdata/ascii_read_av_clobber_write.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/processor/testdata/ascii_read_av_clobber_write.dmp -------------------------------------------------------------------------------- /src/processor/testdata/ascii_read_av_conditional.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/processor/testdata/ascii_read_av_conditional.dmp -------------------------------------------------------------------------------- /src/processor/testdata/ascii_read_av_then_jmp.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/processor/testdata/ascii_read_av_then_jmp.dmp -------------------------------------------------------------------------------- /src/processor/testdata/ascii_read_av_xchg_write.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/processor/testdata/ascii_read_av_xchg_write.dmp -------------------------------------------------------------------------------- /src/processor/testdata/ascii_write_av.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/processor/testdata/ascii_write_av.dmp -------------------------------------------------------------------------------- /src/processor/testdata/ascii_write_av_arg_to_call.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/processor/testdata/ascii_write_av_arg_to_call.dmp -------------------------------------------------------------------------------- /src/processor/testdata/exec_av_on_stack.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/processor/testdata/exec_av_on_stack.dmp -------------------------------------------------------------------------------- /src/processor/testdata/linux_null_read_av.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/processor/testdata/linux_null_read_av.dmp -------------------------------------------------------------------------------- /src/processor/testdata/linux_overflow.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/processor/testdata/linux_overflow.dmp -------------------------------------------------------------------------------- /src/processor/testdata/linux_stacksmash.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/processor/testdata/linux_stacksmash.dmp -------------------------------------------------------------------------------- /src/processor/testdata/minidump2.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/processor/testdata/minidump2.dmp -------------------------------------------------------------------------------- /src/processor/testdata/minidump2.stackwalk.machine_readable.out: -------------------------------------------------------------------------------- 1 | OS|Windows NT|5.1.2600 Service Pack 2 2 | CPU|x86|GenuineIntel family 6 model 13 stepping 8|1 3 | Crash|EXCEPTION_ACCESS_VIOLATION_WRITE|0x45|0 4 | Module|test_app.exe||test_app.pdb|5A9832E5287241C1838ED98914E9B7FF1|0x00400000|0x0042cfff|1 5 | Module|dbghelp.dll|5.1.2600.2180|dbghelp.pdb|39559573E21B46F28E286923BE9E6A761|0x59a60000|0x59b00fff|0 6 | Module|imm32.dll|5.1.2600.2180|imm32.pdb|2C17A49C251B4C8EB9E2AD13D7D9EA162|0x76390000|0x763acfff|0 7 | Module|psapi.dll|5.1.2600.2180|psapi.pdb|A5C3A1F9689F43D8AD228A09293889702|0x76bf0000|0x76bfafff|0 8 | Module|ole32.dll|5.1.2600.2726|ole32.pdb|683B65B246F4418796D2EE6D4C55EB112|0x774e0000|0x7761cfff|0 9 | Module|version.dll|5.1.2600.2180|version.pdb|180A90C40384463E82DDC45B2C8AB76E2|0x77c00000|0x77c07fff|0 10 | Module|msvcrt.dll|7.0.2600.2180|msvcrt.pdb|A678F3C30DED426B839032B996987E381|0x77c10000|0x77c67fff|0 11 | Module|user32.dll|5.1.2600.2622|user32.pdb|EE2B714D83A34C9D88027621272F83262|0x77d40000|0x77dcffff|0 12 | Module|advapi32.dll|5.1.2600.2180|advapi32.pdb|455D6C5F184D45BBB5C5F30F829751142|0x77dd0000|0x77e6afff|0 13 | Module|rpcrt4.dll|5.1.2600.2180|rpcrt4.pdb|BEA45A721DA141DAA3BA86B3A20311532|0x77e70000|0x77f00fff|0 14 | Module|gdi32.dll|5.1.2600.2818|gdi32.pdb|C0EA66BE00A64BD7AEF79E443A91869C2|0x77f10000|0x77f56fff|0 15 | Module|kernel32.dll|5.1.2600.2945|kernel32.pdb|BCE8785C57B44245A669896B6A19B9542|0x7c800000|0x7c8f3fff|0 16 | Module|ntdll.dll|5.1.2600.2180|ntdll.pdb|36515FB5D04345E491F672FA2E2878C02|0x7c900000|0x7c9affff|0 17 | 18 | 0|0|test_app.exe|`anonymous namespace'::CrashFunction|c:\test_app.cc|58|0x3 19 | 0|1|test_app.exe|main|c:\test_app.cc|65|0x5 20 | 0|2|test_app.exe|__tmainCRTStartup|f:\sp\vctools\crt_bld\self_x86\crt\src\crt0.c|327|0x12 21 | 0|3|kernel32.dll|BaseProcessStart|||0x23 22 | -------------------------------------------------------------------------------- /src/processor/testdata/minidump2.stackwalk.out: -------------------------------------------------------------------------------- 1 | Operating system: Windows NT 2 | 5.1.2600 Service Pack 2 3 | CPU: x86 4 | GenuineIntel family 6 model 13 stepping 8 5 | 1 CPU 6 | 7 | Crash reason: EXCEPTION_ACCESS_VIOLATION_WRITE 8 | Crash address: 0x45 9 | 10 | Thread 0 (crashed) 11 | 0 test_app.exe!`anonymous namespace'::CrashFunction [test_app.cc : 58 + 0x3] 12 | eip = 0x0040429e esp = 0x0012fe84 ebp = 0x0012fe88 ebx = 0x7c80abc1 13 | esi = 0x00000002 edi = 0x00000a28 eax = 0x00000045 ecx = 0x0012fe94 14 | edx = 0x0042bc58 efl = 0x00010246 15 | Found by: given as instruction pointer in context 16 | 1 test_app.exe!main [test_app.cc : 65 + 0x5] 17 | eip = 0x00404200 esp = 0x0012fe90 ebp = 0x0012ff70 18 | Found by: call frame info 19 | 2 test_app.exe!__tmainCRTStartup [crt0.c : 327 + 0x12] 20 | eip = 0x004053ec esp = 0x0012ff78 ebp = 0x0012ffc0 21 | Found by: call frame info 22 | 3 kernel32.dll!BaseProcessStart + 0x23 23 | eip = 0x7c816fd7 esp = 0x0012ffc8 ebp = 0x0012fff0 24 | Found by: call frame info 25 | 26 | Loaded modules: 27 | 0x00400000 - 0x0042cfff test_app.exe ??? (main) 28 | 0x59a60000 - 0x59b00fff dbghelp.dll 5.1.2600.2180 29 | 0x76390000 - 0x763acfff imm32.dll 5.1.2600.2180 30 | 0x76bf0000 - 0x76bfafff psapi.dll 5.1.2600.2180 31 | 0x774e0000 - 0x7761cfff ole32.dll 5.1.2600.2726 32 | 0x77c00000 - 0x77c07fff version.dll 5.1.2600.2180 33 | 0x77c10000 - 0x77c67fff msvcrt.dll 7.0.2600.2180 34 | 0x77d40000 - 0x77dcffff user32.dll 5.1.2600.2622 35 | 0x77dd0000 - 0x77e6afff advapi32.dll 5.1.2600.2180 36 | 0x77e70000 - 0x77f00fff rpcrt4.dll 5.1.2600.2180 37 | 0x77f10000 - 0x77f56fff gdi32.dll 5.1.2600.2818 38 | 0x7c800000 - 0x7c8f3fff kernel32.dll 5.1.2600.2945 39 | 0x7c900000 - 0x7c9affff ntdll.dll 5.1.2600.2180 40 | -------------------------------------------------------------------------------- /src/processor/testdata/module1.out: -------------------------------------------------------------------------------- 1 | MODULE windows x86 111111111111111111111111111111111 module1.pdb 2 | INFO CODE_ID FFFFFFFF module1.exe 3 | FILE 1 file1_1.cc 4 | FILE 2 file1_2.cc 5 | FILE 3 file1_3.cc 6 | FUNC 1000 c 0 Function1_1 7 | 1000 4 44 1 8 | 1004 4 45 1 9 | 1008 4 46 1 10 | FUNC 1100 8 4 Function1_2 11 | 1100 4 65 2 12 | 1104 4 66 2 13 | FUNC 1200 100 8 Function1_3 14 | FUNC 1300 100 c Function1_4 15 | FUNC 2000 0 0 Test_Zero_Size_Function_Is_Ignored 16 | 2000 4 88 2 17 | PUBLIC 2800 0 PublicSymbol 18 | FUNC 3000 7000 42 LargeFunction 19 | 3000 7000 4098359 3 20 | STACK WIN 4 1000 c 1 0 0 0 0 0 1 $eip 4 + ^ = $esp $ebp 8 + = $ebp $ebp ^ = 21 | STACK WIN 4 1100 8 1 0 0 0 0 0 1 $eip 4 + ^ = $esp $ebp 8 + = $ebp $ebp ^ = 22 | STACK WIN 4 1100 100 1 0 0 0 0 0 1 $eip 4 + ^ = $esp $ebp 8 + = $ebp $ebp ^ = 23 | STACK WIN 4 1300 100 1 0 0 0 0 0 1 $eip 4 + ^ = $esp $ebp 8 + = $ebp $ebp ^ = 24 | STACK CFI INIT 3d40 af .cfa: $esp 4 + .ra: .cfa 4 - ^ 25 | STACK CFI 3d41 .cfa: $esp 8 + 26 | STACK CFI 3d43 .cfa: $ebp 8 + $ebp: .cfa 8 - ^ 27 | STACK CFI 3d54 $ebx: .cfa 20 - ^ 28 | STACK CFI 3d5a $esi: .cfa 16 - ^ 29 | STACK CFI 3d84 $edi: .cfa 12 - ^ 30 | -------------------------------------------------------------------------------- /src/processor/testdata/module2.out: -------------------------------------------------------------------------------- 1 | MODULE windows x86 222222222 module2.pdb 2 | FILE 1 file2_1.cc 3 | FILE 2 file2_2.cc 4 | FILE 3 file2_3.cc 5 | FUNC 2000 c 4 Function2_1 6 | 1000 4 54 1 7 | 1004 4 55 1 8 | 1008 4 56 1 9 | PUBLIC 2160 0 Public2_1 10 | FUNC 2170 14 4 Function2_2 11 | 2170 6 10 2 12 | 2176 4 12 2 13 | 217a 6 13 2 14 | 2180 4 21 2 15 | PUBLIC 21a0 0 Public2_2 16 | STACK WIN 4 2000 c 1 0 0 0 0 0 1 $eip 4 + ^ = $esp $ebp 8 + = $ebp $ebp ^ = 17 | STACK WIN 4 2170 14 1 0 0 0 0 0 1 $eip 4 + ^ = $esp $ebp 8 + = $ebp $ebp ^ = 18 | STACK CFI INIT 3df0 af .cfa: $esp 4 + .ra: .cfa 4 - ^ 19 | STACK CFI 3df1 .cfa: $esp 8 + 20 | STACK CFI 3df3 .cfa: $ebp 8 + $ebp: .cfa 8 - ^ 21 | STACK CFI 3e04 $ebx: .cfa 20 - ^ 22 | STACK CFI 3e0a $esi: .cfa 16 - ^ 23 | STACK CFI 3e34 $edi: .cfa 12 - ^ 24 | -------------------------------------------------------------------------------- /src/processor/testdata/module3_bad.out: -------------------------------------------------------------------------------- 1 | MODULE windows x86 333333333333333333333333333333333 module3.pdb 2 | FILE 1 file1.cc 3 | FUNC 1000 4 | -------------------------------------------------------------------------------- /src/processor/testdata/module4_bad.out: -------------------------------------------------------------------------------- 1 | MODULE windows x86 444444444444444444444444444444444 module4.pdb 2 | FILE 1 file4_1.cc 3 | FILE 2 file4_2.cc 4 | 1000 4 44 1 5 | 1004 4 45 1 6 | -------------------------------------------------------------------------------- /src/processor/testdata/null_read_av.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/processor/testdata/null_read_av.dmp -------------------------------------------------------------------------------- /src/processor/testdata/null_write_av.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/processor/testdata/null_write_av.dmp -------------------------------------------------------------------------------- /src/processor/testdata/read_av_clobber_write.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/processor/testdata/read_av_clobber_write.dmp -------------------------------------------------------------------------------- /src/processor/testdata/read_av_conditional.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/processor/testdata/read_av_conditional.dmp -------------------------------------------------------------------------------- /src/processor/testdata/read_av_non_null.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/processor/testdata/read_av_non_null.dmp -------------------------------------------------------------------------------- /src/processor/testdata/stack_exhaustion.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/processor/testdata/stack_exhaustion.dmp -------------------------------------------------------------------------------- /src/processor/testdata/write_av_non_null.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/processor/testdata/write_av_non_null.dmp -------------------------------------------------------------------------------- /src/third_party/curl/COPYING: -------------------------------------------------------------------------------- 1 | COPYRIGHT AND PERMISSION NOTICE 2 | 3 | Copyright (c) 1996 - 2011, Daniel Stenberg, . 4 | 5 | All rights reserved. 6 | 7 | Permission to use, copy, modify, and distribute this software for any purpose 8 | with or without fee is hereby granted, provided that the above copyright 9 | notice and this permission notice appear in all copies. 10 | 11 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 12 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 13 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN 14 | NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, 15 | DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 16 | OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 17 | OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | Except as contained in this notice, the name of a copyright holder shall not 20 | be used in advertising or otherwise to promote the sale, use or other dealings 21 | in this Software without prior written authorization of the copyright holder. 22 | 23 | -------------------------------------------------------------------------------- /src/third_party/curl/stdcheaders.h: -------------------------------------------------------------------------------- 1 | #ifndef __STDC_HEADERS_H 2 | #define __STDC_HEADERS_H 3 | /*************************************************************************** 4 | * _ _ ____ _ 5 | * Project ___| | | | _ \| | 6 | * / __| | | | |_) | | 7 | * | (__| |_| | _ <| |___ 8 | * \___|\___/|_| \_\_____| 9 | * 10 | * Copyright (C) 1998 - 2009, Daniel Stenberg, , et al. 11 | * 12 | * This software is licensed as described in the file COPYING, which 13 | * you should have received as part of this distribution. The terms 14 | * are also available at http://curl.haxx.se/docs/copyright.html. 15 | * 16 | * You may opt to use, copy, modify, merge, publish, distribute and/or sell 17 | * copies of the Software, and permit persons to whom the Software is 18 | * furnished to do so, under the terms of the COPYING file. 19 | * 20 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY 21 | * KIND, either express or implied. 22 | * 23 | * $Id: stdcheaders.h,v 1.9 2009-05-18 12:25:45 yangtse Exp $ 24 | ***************************************************************************/ 25 | 26 | #include 27 | 28 | size_t fread (void *, size_t, size_t, FILE *); 29 | size_t fwrite (const void *, size_t, size_t, FILE *); 30 | 31 | int strcasecmp(const char *, const char *); 32 | int strncasecmp(const char *, const char *, size_t); 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /src/third_party/curl/types.h: -------------------------------------------------------------------------------- 1 | /* not used */ 2 | -------------------------------------------------------------------------------- /src/third_party/libdisasm/Makefile.am: -------------------------------------------------------------------------------- 1 | include_HEADERS = libdis.h 2 | lib_LTLIBRARIES = libdisasm.la 3 | libdisasm_la_SOURCES = \ 4 | ia32_implicit.c \ 5 | ia32_implicit.h \ 6 | ia32_insn.c \ 7 | ia32_insn.h \ 8 | ia32_invariant.c \ 9 | ia32_invariant.h \ 10 | ia32_modrm.c \ 11 | ia32_modrm.h \ 12 | ia32_opcode_tables.c \ 13 | ia32_opcode_tables.h \ 14 | ia32_operand.c \ 15 | ia32_operand.h \ 16 | ia32_reg.c \ 17 | ia32_reg.h \ 18 | ia32_settings.c \ 19 | ia32_settings.h \ 20 | libdis.h \ 21 | qword.h \ 22 | x86_disasm.c \ 23 | x86_format.c \ 24 | x86_imm.c \ 25 | x86_imm.h \ 26 | x86_insn.c \ 27 | x86_misc.c \ 28 | x86_operand_list.c \ 29 | x86_operand_list.h 30 | 31 | # Cheat to get non-autoconf swig into tarball, 32 | # even if it doesn't build by default. 33 | EXTRA_DIST = \ 34 | swig/Makefile \ 35 | swig/libdisasm.i \ 36 | swig/libdisasm_oop.i \ 37 | swig/python/Makefile-swig \ 38 | swig/perl/Makefile-swig \ 39 | swig/perl/Makefile.PL \ 40 | swig/ruby/Makefile-swig \ 41 | swig/ruby/extconf.rb \ 42 | swig/tcl/Makefile-swig \ 43 | swig/README 44 | -------------------------------------------------------------------------------- /src/third_party/libdisasm/TODO: -------------------------------------------------------------------------------- 1 | x86_format.c 2 | ------------ 3 | intel: jmpf -> jmp, callf -> call 4 | att: jmpf -> ljmp, callf -> lcall 5 | 6 | opcode table 7 | ------------ 8 | finish typing instructions 9 | fix flag clear/set/toggle types 10 | 11 | ix64 stuff 12 | ---------- 13 | document output file formats in web page 14 | features doc: register aliases, implicit operands, stack mods, 15 | ring0 flags, eflags, cpu model/isa 16 | 17 | ia32_handle_* implementation 18 | 19 | fix operand 0F C2 20 | CMPPS 21 | 22 | * sysenter, sysexit as CALL types -- preceded by MSR writes 23 | * SYSENTER/SYSEXIT stack : overwrites SS, ESP 24 | * stos, cmps, scas, movs, ins, outs, lods -> OP_PTR 25 | * OP_SIZE in implicit operands 26 | * use OP_SIZE to choose reg sizes! 27 | 28 | DONE?? : 29 | implicit operands: provide action ? 30 | e.g. add/inc for stach, write, etc 31 | replace table numbers in opcodes.dat with 32 | #defines for table names 33 | 34 | replace 0 with INSN_INVALID [or maybe FF for imnvalid and 00 for Not Applicable */ 35 | no wait that is only for prefix tables -- n/p 36 | 37 | if ( prefx) only use if insn != invalid 38 | 39 | these should cover all the wacky disasm exceptions 40 | 41 | for the rep one we can chet, match only a 0x90 42 | 43 | todo: privilege | ring 44 | -------------------------------------------------------------------------------- /src/third_party/libdisasm/ia32_implicit.h: -------------------------------------------------------------------------------- 1 | #ifndef IA32_IMPLICIT_H 2 | #define IA32_IMPLICIT_H 3 | 4 | #include "libdis.h" 5 | 6 | /* OK, this is a hack to deal with prefixes having implicit operands... 7 | * thought I had removed all the old hackishness ;( */ 8 | 9 | #define IDX_IMPLICIT_REP 41 /* change this if the table changes! */ 10 | 11 | unsigned int ia32_insn_implicit_ops( x86_insn_t *insn, unsigned int impl_idx ); 12 | 13 | #endif 14 | -------------------------------------------------------------------------------- /src/third_party/libdisasm/ia32_invariant.h: -------------------------------------------------------------------------------- 1 | #ifndef IA32_INVARIANT_H 2 | #define IA32_INVARIANT_H 3 | 4 | #include "libdis.h" 5 | 6 | size_t ia32_disasm_invariant( unsigned char *buf, size_t buf_len, 7 | x86_invariant_t *inv); 8 | 9 | size_t ia32_disasm_size( unsigned char *buf, size_t buf_len ); 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /src/third_party/libdisasm/ia32_modrm.h: -------------------------------------------------------------------------------- 1 | #ifndef IA32_MODRM_H 2 | #define IA32_MODRM_H 3 | 4 | #include "libdis.h" 5 | #include "ia32_insn.h" 6 | 7 | size_t ia32_modrm_decode( unsigned char *buf, unsigned int buf_len, 8 | x86_op_t *op, x86_insn_t *insn, 9 | size_t gen_regs ); 10 | 11 | void ia32_reg_decode( unsigned char byte, x86_op_t *op, size_t gen_regs ); 12 | 13 | #endif 14 | -------------------------------------------------------------------------------- /src/third_party/libdisasm/ia32_opcode_tables.h: -------------------------------------------------------------------------------- 1 | #define idx_Main 0 2 | #define idx_66 1 3 | #define idx_F2 2 4 | #define idx_F3 3 5 | #define idx_0F 4 6 | #define idx_660F 5 7 | #define idx_F20F 6 8 | #define idx_F30F 7 9 | #define idx_0F00 8 10 | #define idx_0F01 9 11 | #define idx_0F0111 10 12 | #define idx_0F12 11 13 | #define idx_0F16 12 14 | #define idx_0F18 13 15 | #define idx_0F71 14 16 | #define idx_660F71 15 17 | #define idx_0F72 16 18 | #define idx_660F72 17 19 | #define idx_0F73 18 20 | #define idx_660F73 19 21 | #define idx_0FAE 20 22 | #define idx_0FBA 21 23 | #define idx_0FC7 22 24 | #define idx_0FB9 23 25 | #define idx_C6 24 26 | #define idx_C7 25 27 | #define idx_80 26 28 | #define idx_81 27 29 | #define idx_82 28 30 | #define idx_83 29 31 | #define idx_C0 30 32 | #define idx_C1 31 33 | #define idx_D0 32 34 | #define idx_D1 33 35 | #define idx_D2 34 36 | #define idx_D3 35 37 | #define idx_F6 36 38 | #define idx_F7 37 39 | #define idx_FE 38 40 | #define idx_FF 39 41 | #define idx_D8 40 42 | #define idx_D8C0 41 43 | #define idx_D9 42 44 | #define idx_D9C0 43 45 | #define idx_DA 44 46 | #define idx_DAC0 45 47 | #define idx_DB 46 48 | #define idx_DBC0 47 49 | #define idx_DC 48 50 | #define idx_DCC0 49 51 | #define idx_DD 50 52 | #define idx_DDC0 51 53 | #define idx_DE 52 54 | #define idx_DEC0 53 55 | #define idx_DF 54 56 | #define idx_DFC0 55 57 | #define idx_0F0F 56 58 | -------------------------------------------------------------------------------- /src/third_party/libdisasm/ia32_operand.h: -------------------------------------------------------------------------------- 1 | #ifndef IA32_OPERAND_H 2 | #define IA32_OPERAND_H 3 | 4 | #include "libdis.h" 5 | #include "ia32_insn.h" 6 | 7 | size_t ia32_decode_operand( unsigned char *buf, size_t buf_len, 8 | x86_insn_t *insn, unsigned int raw_op, 9 | unsigned int raw_flags, unsigned int prefixes, 10 | unsigned char modrm ); 11 | #endif 12 | -------------------------------------------------------------------------------- /src/third_party/libdisasm/ia32_reg.h: -------------------------------------------------------------------------------- 1 | #ifndef IA32_REG_H 2 | #define IA32_REG_H 3 | 4 | #include /* for size_t */ 5 | #include "libdis.h" /* for x86_reg_t */ 6 | 7 | /* NOTE these are used in opcode tables for hard-coded registers */ 8 | #define REG_DWORD_OFFSET 1 /* 0 + 1 */ 9 | #define REG_ECX_INDEX 2 /* 0 + 1 + 1 */ 10 | #define REG_ESP_INDEX 5 /* 0 + 4 + 1 */ 11 | #define REG_EBP_INDEX 6 /* 0 + 5 + 1 */ 12 | #define REG_ESI_INDEX 7 /* 0 + 6 + 1 */ 13 | #define REG_EDI_INDEX 8 /* 0 + 7 + 1 */ 14 | #define REG_WORD_OFFSET 9 /* 1 * 8 + 1 */ 15 | #define REG_BYTE_OFFSET 17 /* 2 * 8 + 1 */ 16 | #define REG_MMX_OFFSET 25 /* 3 * 8 + 1 */ 17 | #define REG_SIMD_OFFSET 33 /* 4 * 8 + 1 */ 18 | #define REG_DEBUG_OFFSET 41 /* 5 * 8 + 1 */ 19 | #define REG_CTRL_OFFSET 49 /* 6 * 8 + 1 */ 20 | #define REG_TEST_OFFSET 57 /* 7 * 8 + 1 */ 21 | #define REG_SEG_OFFSET 65 /* 8 * 8 + 1 */ 22 | #define REG_LDTR_INDEX 71 /* 8 * 8 + 1 + 1 */ 23 | #define REG_GDTR_INDEX 72 /* 8 * 8 + 2 + 1 */ 24 | #define REG_FPU_OFFSET 73 /* 9 * 8 + 1 */ 25 | #define REG_FLAGS_INDEX 81 /* 10 * 8 + 1 */ 26 | #define REG_FPCTRL_INDEX 82 /* 10 * 8 + 1 + 1 */ 27 | #define REG_FPSTATUS_INDEX 83 /* 10 * 8 + 2 + 1 */ 28 | #define REG_FPTAG_INDEX 84 /* 10 * 8 + 3 + 1 */ 29 | #define REG_EIP_INDEX 85 /* 10 * 8 + 4 + 1 */ 30 | #define REG_IP_INDEX 86 /* 10 * 8 + 5 + 1 */ 31 | #define REG_IDTR_INDEX 87 /* 10 * 8 + 6 + 1 */ 32 | #define REG_MXCSG_INDEX 88 /* 10 * 8 + 7 + 1 */ 33 | #define REG_TR_INDEX 89 /* 10 * 8 + 8 + 1 */ 34 | #define REG_CSMSR_INDEX 90 /* 10 * 8 + 9 + 1 */ 35 | #define REG_ESPMSR_INDEX 91 /* 10 * 8 + 10 + 1 */ 36 | #define REG_EIPMSR_INDEX 92 /* 10 * 8 + 11 + 1 */ 37 | 38 | void ia32_handle_register( x86_reg_t *reg, size_t id ); 39 | size_t ia32_true_register_id( size_t id ); 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /src/third_party/libdisasm/ia32_settings.c: -------------------------------------------------------------------------------- 1 | #include "libdis.h" 2 | #include "ia32_settings.h" 3 | #include "ia32_reg.h" 4 | #include "ia32_insn.h" 5 | 6 | ia32_settings_t ia32_settings = { 7 | 1, 0xF4, 8 | MAX_INSTRUCTION_SIZE, 9 | 4, 4, 8, 4, 8, 10 | REG_ESP_INDEX, REG_EBP_INDEX, REG_EIP_INDEX, REG_FLAGS_INDEX, 11 | REG_DWORD_OFFSET, REG_SEG_OFFSET, REG_FPU_OFFSET, 12 | opt_none 13 | }; 14 | -------------------------------------------------------------------------------- /src/third_party/libdisasm/ia32_settings.h: -------------------------------------------------------------------------------- 1 | #ifndef IA32_SETTINGS_H 2 | #define IA32_SETTINGS_H 3 | 4 | #include "libdis.h" 5 | 6 | typedef struct { 7 | /* options */ 8 | unsigned char endian, /* 0 = big, 1 = little */ 9 | wc_byte, /* wildcard byte */ 10 | max_insn, /* max insn size */ 11 | sz_addr, /* default address size */ 12 | sz_oper, /* default operand size */ 13 | sz_byte, /* # bits in byte */ 14 | sz_word, /* # bytes in machine word */ 15 | sz_dword; /* # bytes in machine dword */ 16 | unsigned int id_sp_reg, /* id of stack pointer */ 17 | id_fp_reg, /* id of frame pointer */ 18 | id_ip_reg, /* id of instruction pointer */ 19 | id_flag_reg, /* id of flags register */ 20 | offset_gen_regs, /* start of general regs */ 21 | offset_seg_regs, /* start of segment regs */ 22 | offset_fpu_regs; /* start of floating point regs */ 23 | /* user-controlled settings */ 24 | enum x86_options options; 25 | } ia32_settings_t; 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /src/third_party/libdisasm/libdisasm.gyp: -------------------------------------------------------------------------------- 1 | # Copyright 2014 Google Inc. All rights reserved. 2 | # 3 | # Redistribution and use in source and binary forms, with or without 4 | # modification, are permitted provided that the following conditions are 5 | # met: 6 | # 7 | # * Redistributions of source code must retain the above copyright 8 | # notice, this list of conditions and the following disclaimer. 9 | # * Redistributions in binary form must reproduce the above 10 | # copyright notice, this list of conditions and the following disclaimer 11 | # in the documentation and/or other materials provided with the 12 | # distribution. 13 | # * Neither the name of Google Inc. nor the names of its 14 | # contributors may be used to endorse or promote products derived from 15 | # this software without specific prior written permission. 16 | # 17 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18 | # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19 | # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 20 | # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 21 | # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22 | # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23 | # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 | # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 | # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | 29 | { 30 | 'targets': [ 31 | { 32 | 'target_name': 'libdisasm', 33 | 'type': 'static_library', 34 | 'sources': [ 35 | 'ia32_implicit.c', 36 | 'ia32_implicit.h', 37 | 'ia32_insn.c', 38 | 'ia32_insn.h', 39 | 'ia32_invariant.c', 40 | 'ia32_invariant.h', 41 | 'ia32_modrm.c', 42 | 'ia32_modrm.h', 43 | 'ia32_opcode_tables.c', 44 | 'ia32_opcode_tables.h', 45 | 'ia32_operand.c', 46 | 'ia32_operand.h', 47 | 'ia32_reg.c', 48 | 'ia32_reg.h', 49 | 'ia32_settings.c', 50 | 'ia32_settings.h', 51 | 'libdis.h', 52 | 'qword.h', 53 | 'x86_disasm.c', 54 | 'x86_format.c', 55 | 'x86_imm.c', 56 | 'x86_imm.h', 57 | 'x86_insn.c', 58 | 'x86_misc.c', 59 | 'x86_operand_list.c', 60 | 'x86_operand_list.h', 61 | ], 62 | }, 63 | ], 64 | } 65 | -------------------------------------------------------------------------------- /src/third_party/libdisasm/qword.h: -------------------------------------------------------------------------------- 1 | #ifndef LIBDISASM_QWORD_H 2 | #define LIBDISASM_QWORD_H 3 | 4 | #include 5 | 6 | /* platform independent data types */ 7 | 8 | #ifdef _MSC_VER 9 | typedef __int64 qword_t; 10 | #else 11 | typedef int64_t qword_t; 12 | #endif 13 | 14 | #endif 15 | -------------------------------------------------------------------------------- /src/third_party/libdisasm/swig/Makefile: -------------------------------------------------------------------------------- 1 | # change these values if you need to 2 | SWIG = swig # apt-get install swig ! 3 | GCC = gcc 4 | 5 | CC_FLAGS = -c -fPIC 6 | LD_FLAGS = -shared -L../.. -ldisasm 7 | 8 | BASE_NAME = x86disasm 9 | 10 | export INTERFACE_FILE BASE_NAME SWIG GCC CC_FLAGS LD_FLAGS 11 | 12 | #==================================================== 13 | # TARGETS 14 | 15 | all: swig 16 | dummy: swig swig-python swig-ruby swig-perl swig-tcl install uninstall clean 17 | 18 | swig: swig-python swig-perl 19 | # swig-rub swig-tcl 20 | 21 | swig-python: 22 | cd python && make -f Makefile-swig 23 | 24 | swig-ruby: 25 | cd ruby && make -f Makefile-swig 26 | 27 | swig-perl: 28 | cd perl && make -f Makefile-swig 29 | 30 | swig-tcl: 31 | cd tcl && make -f Makefile-swig 32 | 33 | # ================================================================== 34 | install: install-python install-perl 35 | # install-ruby install-tcl 36 | 37 | install-python: 38 | cd python && sudo make -f Makefile-swig install 39 | 40 | install-ruby: 41 | cd ruby && sudo make -f Makefile-swig install 42 | 43 | install-perl: 44 | cd perl && sudo make -f Makefile-swig install 45 | 46 | install-tcl: 47 | cd tcl && sudo make -f Makefile-swig install 48 | 49 | # ================================================================== 50 | uninstall: uninstall-python 51 | #uninstall-ruby uninstall-perl uninstall-tcl 52 | 53 | uninstall-python: 54 | cd python && sudo make -f Makefile-swig uninstall 55 | 56 | uninstall-ruby: 57 | cd ruby && sudo make -f Makefile-swig uninstall 58 | 59 | uninstall-perl: 60 | cd perl && sudo make -f Makefile-swig uninstall 61 | 62 | uninstall-tcl: 63 | cd tcl && sudo make -f Makefile-swig uninstall 64 | 65 | # ================================================================== 66 | clean: 67 | cd python && make -f Makefile-swig clean 68 | cd ruby && make -f Makefile-swig clean 69 | cd perl && make -f Makefile-swig clean 70 | cd tcl && make -f Makefile-swig clean 71 | -------------------------------------------------------------------------------- /src/third_party/libdisasm/swig/perl/Makefile-swig: -------------------------------------------------------------------------------- 1 | ifndef BASE_NAME 2 | BASE_NAME = x86disasm 3 | endif 4 | 5 | ifndef SWIG 6 | SWIG = swig # apt-get install swig ! 7 | endif 8 | 9 | ifndef GCC 10 | GCC = gcc 11 | endif 12 | 13 | ifndef CC_FLAGS 14 | CC_FLAGS = -c -fPIC 15 | endif 16 | 17 | ifndef LD_FLAGS 18 | LD_FLAGS = -shared -L.. -ldisasm 19 | endif 20 | 21 | INTERFACE_FILE = libdisasm_oop.i 22 | 23 | SWIG_INTERFACE = ../$(INTERFACE_FILE) 24 | 25 | # PERL rules 26 | PERL_MOD = blib/arch/auto/$(BASE_NAME)/$(BASE_NAME).so 27 | PERL_SHADOW = $(BASE_NAME)_wrap.c 28 | PERL_SWIG = $(BASE_NAME).pl 29 | PERL_OBJ = $(BASE_NAME)_wrap.o 30 | PERL_INC = `perl -e 'use Config; print $$Config{archlib};'`/CORE 31 | PERL_CC_FLAGS = `perl -e 'use Config; print $$Config{ccflags};'` 32 | 33 | #==================================================== 34 | # TARGETS 35 | 36 | all: swig-perl 37 | 38 | dummy: swig-perl install uninstall clean 39 | 40 | swig-perl: $(PERL_MOD) 41 | 42 | $(PERL_MOD): $(PERL_OBJ) 43 | perl Makefile.PL 44 | make 45 | #$(GCC) $(LD_FLAGS) $(PERL_OBJ) -o $@ 46 | 47 | $(PERL_OBJ): $(PERL_SHADOW) 48 | $(GCC) $(CC_FLAGS) $(PERL_CC_FLAGS) -I$(PERL_INC) -o $@ $< 49 | 50 | $(PERL_SHADOW): $(SWIG_INTERFACE) 51 | swig -perl -shadow -o $(PERL_SHADOW) -outdir . $< 52 | 53 | # ================================================================== 54 | install: $(PERL_MOD) 55 | make install 56 | 57 | # ================================================================== 58 | uninstall: 59 | 60 | # ================================================================== 61 | clean: 62 | rm $(PERL_MOD) $(PERL_OBJ) 63 | rm $(PERL_SHADOW) 64 | rm -rf Makefile blib pm_to_blib 65 | 66 | -------------------------------------------------------------------------------- /src/third_party/libdisasm/swig/perl/Makefile.PL: -------------------------------------------------------------------------------- 1 | use ExtUtils::MakeMaker; 2 | 3 | WriteMakefile( 4 | 'NAME' => 'x86disasm', 5 | 'LIBS' => ['-ldisasm'], 6 | 'OBJECT' => 'x86disasm_wrap.o' 7 | ); 8 | -------------------------------------------------------------------------------- /src/third_party/libdisasm/swig/python/Makefile-swig: -------------------------------------------------------------------------------- 1 | ifndef BASE_NAME 2 | BASE_NAME = x86disasm 3 | endif 4 | 5 | ifndef SWIG 6 | SWIG = swig # apt-get install swig ! 7 | endif 8 | 9 | ifndef GCC 10 | GCC = gcc 11 | endif 12 | 13 | ifndef CC_FLAGS 14 | CC_FLAGS = -c -fPIC 15 | endif 16 | 17 | ifndef LD_FLAGS 18 | LD_FLAGS = -shared -L.. -ldisasm 19 | endif 20 | 21 | INTERFACE_FILE = libdisasm_oop.i 22 | 23 | SWIG_INTERFACE = ../$(INTERFACE_FILE) 24 | 25 | # PYTHON rules 26 | PYTHON_MOD = $(BASE_NAME)-python.so 27 | PYTHON_SHADOW = $(BASE_NAME)_wrap.c 28 | PYTHON_SWIG = $(BASE_NAME).py 29 | PYTHON_OBJ = $(BASE_NAME)_wrap.o 30 | PYTHON_INC = `/bin/echo -e 'import sys\nprint sys.prefix + "/include/python" + sys.version[:3]' | python` 31 | PYTHON_LIB = `/bin/echo -e 'import sys\nprint sys.prefix + "/lib/python" + sys.version[:3]' | python` 32 | PYTHON_DEST = $(PYTHON_LIB)/lib-dynload/_$(BASE_NAME).so 33 | 34 | #==================================================== 35 | # TARGETS 36 | 37 | all: swig-python 38 | 39 | dummy: swig-python install uninstall clean 40 | 41 | swig-python: $(PYTHON_MOD) 42 | 43 | $(PYTHON_MOD): $(PYTHON_OBJ) 44 | $(GCC) $(LD_FLAGS) $(PYTHON_OBJ) -o $@ 45 | 46 | $(PYTHON_OBJ): $(PYTHON_SHADOW) 47 | $(GCC) $(CC_FLAGS) -I$(PYTHON_INC) -I.. -o $@ $< 48 | 49 | $(PYTHON_SHADOW): $(SWIG_INTERFACE) 50 | swig -python -shadow -o $(PYTHON_SHADOW) -outdir . $< 51 | 52 | # ================================================================== 53 | install: $(PYTHON_MOD) 54 | sudo cp $(PYTHON_MOD) $(PYTHON_DEST) 55 | sudo cp $(PYTHON_SWIG) $(PYTHON_LIB) 56 | 57 | # ================================================================== 58 | uninstall: 59 | 60 | # ================================================================== 61 | clean: 62 | rm $(PYTHON_MOD) $(PYTHON_SWIG) $(PYTHON_OBJ) 63 | rm $(PYTHON_SHADOW) 64 | 65 | -------------------------------------------------------------------------------- /src/third_party/libdisasm/swig/ruby/Makefile-swig: -------------------------------------------------------------------------------- 1 | ifndef BASE_NAME 2 | BASE_NAME = x86disasm 3 | endif 4 | 5 | ifndef SWIG 6 | SWIG = swig # apt-get install swig ! 7 | endif 8 | 9 | ifndef GCC 10 | GCC = gcc 11 | endif 12 | 13 | ifndef CC_FLAGS 14 | CC_FLAGS = -c -fPIC 15 | endif 16 | 17 | ifndef LD_FLAGS 18 | LD_FLAGS = -shared -L../.. -ldisasm 19 | endif 20 | 21 | LIBDISASM_DIR = ../.. 22 | 23 | INTERFACE_FILE = libdisasm_oop.i 24 | 25 | SWIG_INTERFACE = ../$(INTERFACE_FILE) 26 | 27 | # RUBY rules 28 | RUBY_MAKEFILE = Makefile 29 | RUBY_MOD = $(BASE_NAME).so 30 | RUBY_SHADOW = $(BASE_NAME)_wrap.c 31 | #RUBY_SWIG = $(BASE_NAME).rb 32 | RUBY_OBJ = $(BASE_NAME)_wrap.o 33 | RUBY_INC = `ruby -e 'puts $$:.join("\n")' | tail -2 | head -1` 34 | #RUBY_LIB = 35 | #RUBY_DEST = 36 | 37 | #==================================================== 38 | # TARGETS 39 | 40 | all: swig-ruby 41 | 42 | dummy: swig-ruby install uninstall clean 43 | 44 | swig-ruby: $(RUBY_MOD) 45 | 46 | $(RUBY_MOD): $(RUBY_MAKEFILE) 47 | make 48 | 49 | $(RUBY_MAKEFILE): $(RUBY_OBJ) 50 | ruby extconf.rb 51 | 52 | $(RUBY_OBJ):$(RUBY_SHADOW) 53 | $(GCC) $(CC_FLAGS) -I$(RUBY_INC) -I.. -o $@ $< 54 | 55 | $(RUBY_SHADOW): $(SWIG_INTERFACE) 56 | swig -ruby -o $(RUBY_SHADOW) -outdir . $< 57 | 58 | # ================================================================== 59 | install: $(RUBY_MOD) 60 | make install 61 | 62 | # ================================================================== 63 | uninstall: 64 | 65 | # ================================================================== 66 | clean: 67 | make clean || true 68 | rm $(RUBY_SHADOW) $(RUBY_MAKEFILE) $(RUBY_MOD) $(RUBY_OBJ) 69 | -------------------------------------------------------------------------------- /src/third_party/libdisasm/swig/ruby/extconf.rb: -------------------------------------------------------------------------------- 1 | require 'mkmf' 2 | find_library('disasm', 'x86_init', "/usr/local/lib", "../..") 3 | create_makefile('x86disasm') 4 | 5 | -------------------------------------------------------------------------------- /src/third_party/libdisasm/swig/tcl/Makefile-swig: -------------------------------------------------------------------------------- 1 | ifndef BASE_NAME 2 | BASE_NAME = x86disasm 3 | endif 4 | 5 | ifndef SWIG 6 | SWIG = swig # apt-get install swig ! 7 | endif 8 | 9 | ifndef GCC 10 | GCC = gcc 11 | endif 12 | 13 | ifndef CC_FLAGS 14 | CC_FLAGS = -c -fPIC 15 | endif 16 | 17 | ifndef LD_FLAGS 18 | LD_FLAGS = -shared -L../.. -ldisasm 19 | endif 20 | 21 | INTERFACE_FILE = libdisasm.i 22 | 23 | SWIG_INTERFACE = ../$(INTERFACE_FILE) 24 | 25 | # TCL rules 26 | TCL_VERSION = 8.3 27 | TCL_MOD = $(BASE_NAME)-tcl.so 28 | TCL_SHADOW = $(BASE_NAME)_wrap.c 29 | TCL_OBJ = $(BASE_NAME)_wrap.o 30 | TCL_INC = /usr/include/tcl$(TCL_VERSION) 31 | TCL_LIB = /usr/lib/tcl$(TCL_VERSION) 32 | TCL_DEST = $(TCL_LIB)/$(BASE_NAME).so 33 | 34 | #==================================================== 35 | # TARGETS 36 | 37 | all: swig-tcl 38 | 39 | dummy: swig-tcl install uninstall clean 40 | 41 | swig-tcl: $(TCL_MOD) 42 | 43 | $(TCL_MOD): $(TCL_OBJ) 44 | $(GCC) $(LD_FLAGS) $(TCL_OBJ) -o $@ 45 | 46 | $(TCL_OBJ): $(TCL_SHADOW) 47 | $(GCC) $(CC_FLAGS) -I$(TCL_INC) -I.. -o $@ $< 48 | 49 | $(TCL_SHADOW): $(SWIG_INTERFACE) 50 | swig -tcl -o $(TCL_SHADOW) -outdir . $< 51 | 52 | # ================================================================== 53 | install: $(TCL_MOD) 54 | sudo cp $(TCL_MOD) $(TCL_DEST) 55 | 56 | # ================================================================== 57 | uninstall: 58 | 59 | # ================================================================== 60 | clean: 61 | rm $(TCL_MOD) $(TCL_SWIG) $(TCL_OBJ) 62 | rm $(TCL_SHADOW) 63 | 64 | -------------------------------------------------------------------------------- /src/third_party/libdisasm/x86_imm.c: -------------------------------------------------------------------------------- 1 | #include "qword.h" 2 | #include "x86_imm.h" 3 | 4 | #include 5 | 6 | unsigned int x86_imm_signsized( unsigned char * buf, size_t buf_len, 7 | void *dest, unsigned int size ) { 8 | signed char *cp = (signed char *) dest; 9 | signed short *sp = (signed short *) dest; 10 | int32_t *lp = (int32_t *) dest; 11 | qword_t *qp = (qword_t *) dest; 12 | 13 | if ( size > buf_len ) { 14 | return 0; 15 | } 16 | 17 | /* Copy 'size' bytes from *buf to *op 18 | * return number of bytes copied */ 19 | switch (size) { 20 | case 1: /* BYTE */ 21 | *cp = *((signed char *) buf); 22 | break; 23 | case 2: /* WORD */ 24 | *sp = *((signed short *) buf); 25 | break; 26 | case 6: 27 | case 8: /* QWORD */ 28 | *qp = *((qword_t *) buf); 29 | break; 30 | case 4: /* DWORD */ 31 | default: 32 | *lp = *((int32_t *) buf); 33 | break; 34 | } 35 | return (size); 36 | } 37 | 38 | unsigned int x86_imm_sized( unsigned char * buf, size_t buf_len, void *dest, 39 | unsigned int size ) { 40 | unsigned char *cp = (unsigned char *) dest; 41 | unsigned short *sp = (unsigned short *) dest; 42 | uint32_t *lp = (uint32_t *) dest; 43 | qword_t *qp = (qword_t *) dest; 44 | 45 | if ( size > buf_len ) { 46 | return 0; 47 | } 48 | 49 | /* Copy 'size' bytes from *buf to *op 50 | * return number of bytes copied */ 51 | switch (size) { 52 | case 1: /* BYTE */ 53 | *cp = *((unsigned char *) buf); 54 | break; 55 | case 2: /* WORD */ 56 | *sp = *((unsigned short *) buf); 57 | break; 58 | case 6: 59 | case 8: /* QWORD */ 60 | *qp = *((qword_t *) buf); 61 | break; 62 | case 4: /* DWORD */ 63 | default: 64 | *lp = *((uint32_t *) buf); 65 | break; 66 | } 67 | 68 | return (size); 69 | } 70 | 71 | -------------------------------------------------------------------------------- /src/third_party/libdisasm/x86_imm.h: -------------------------------------------------------------------------------- 1 | #ifndef x86_IMM_H 2 | #define x86_IMM_H 3 | 4 | #include "./qword.h" 5 | #include 6 | 7 | #ifdef WIN32 8 | #include 9 | #endif 10 | 11 | /* these are in the global x86 namespace but are not a part of the 12 | * official API */ 13 | unsigned int x86_imm_sized( unsigned char *buf, size_t buf_len, void *dest, 14 | unsigned int size ); 15 | 16 | unsigned int x86_imm_signsized( unsigned char *buf, size_t buf_len, void *dest, 17 | unsigned int size ); 18 | #endif 19 | -------------------------------------------------------------------------------- /src/third_party/libdisasm/x86_misc.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | #include "libdis.h" 6 | #include "ia32_insn.h" 7 | #include "ia32_reg.h" /* for ia32_reg wrapper */ 8 | #include "ia32_settings.h" 9 | extern ia32_settings_t ia32_settings; 10 | 11 | #ifdef _MSC_VER 12 | #define snprintf _snprintf 13 | #define inline __inline 14 | #endif 15 | 16 | 17 | /* =========================================================== INIT/TERM */ 18 | static DISASM_REPORTER __x86_reporter_func = NULL; 19 | static void * __x86_reporter_arg = NULL; 20 | 21 | int x86_init( enum x86_options options, DISASM_REPORTER reporter, void * arg ) 22 | { 23 | ia32_settings.options = options; 24 | __x86_reporter_func = reporter; 25 | __x86_reporter_arg = arg; 26 | 27 | return 1; 28 | } 29 | 30 | void x86_set_reporter( DISASM_REPORTER reporter, void * arg ) { 31 | __x86_reporter_func = reporter; 32 | __x86_reporter_arg = arg; 33 | } 34 | 35 | void x86_set_options( enum x86_options options ){ 36 | ia32_settings.options = options; 37 | } 38 | 39 | enum x86_options x86_get_options( void ) { 40 | return ia32_settings.options; 41 | } 42 | 43 | int x86_cleanup( void ) 44 | { 45 | return 1; 46 | } 47 | 48 | /* =========================================================== ERRORS */ 49 | void x86_report_error( enum x86_report_codes code, void *data ) { 50 | if ( __x86_reporter_func ) { 51 | (*__x86_reporter_func)(code, data, __x86_reporter_arg); 52 | } 53 | } 54 | 55 | 56 | /* =========================================================== MISC */ 57 | unsigned int x86_endian(void) { return ia32_settings.endian; } 58 | unsigned int x86_addr_size(void) { return ia32_settings.sz_addr; } 59 | unsigned int x86_op_size(void) { return ia32_settings.sz_oper; } 60 | unsigned int x86_word_size(void) { return ia32_settings.sz_word; } 61 | unsigned int x86_max_insn_size(void) { return ia32_settings.max_insn; } 62 | unsigned int x86_sp_reg(void) { return ia32_settings.id_sp_reg; } 63 | unsigned int x86_fp_reg(void) { return ia32_settings.id_fp_reg; } 64 | unsigned int x86_ip_reg(void) { return ia32_settings.id_ip_reg; } 65 | unsigned int x86_flag_reg(void) { return ia32_settings.id_flag_reg; } 66 | 67 | /* wrapper function to hide the IA32 register fn */ 68 | void x86_reg_from_id( unsigned int id, x86_reg_t * reg ) { 69 | ia32_handle_register( reg, id ); 70 | return; 71 | } 72 | -------------------------------------------------------------------------------- /src/third_party/libdisasm/x86_operand_list.h: -------------------------------------------------------------------------------- 1 | #ifndef X86_OPERAND_LIST_H 2 | #define X86_OPERAND_LIST_H 3 | #include "libdis.h" 4 | 5 | 6 | x86_op_t * x86_operand_new( x86_insn_t *insn ); 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /src/third_party/linux/lib/gflags/libgflags.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/third_party/linux/lib/gflags/libgflags.a -------------------------------------------------------------------------------- /src/third_party/linux/lib/glog/libglog.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/third_party/linux/lib/glog/libglog.a -------------------------------------------------------------------------------- /src/tools/solaris/dump_syms/Makefile: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2007, Google Inc. 2 | # All rights reserved. 3 | # 4 | # Redistribution and use in source and binary forms, with or without 5 | # modification, are permitted provided that the following conditions are 6 | # met: 7 | # 8 | # * Redistributions of source code must retain the above copyright 9 | # notice, this list of conditions and the following disclaimer. 10 | # * Redistributions in binary form must reproduce the above 11 | # copyright notice, this list of conditions and the following disclaimer 12 | # in the documentation and/or other materials provided with the 13 | # distribution. 14 | # * Neither the name of Google Inc. nor the names of its 15 | # contributors may be used to endorse or promote products derived from 16 | # this software without specific prior written permission. 17 | # 18 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | # Author: Alfred Peng 31 | 32 | CXX=CC 33 | CC=cc 34 | 35 | CXXFLAGS=-g -xs -xdebugformat=stabs -I../../.. -I../../../common/solaris -lelf -ldemangle -D_REENTRANT 36 | 37 | .PHONY:all clean 38 | 39 | BIN=dump_syms 40 | 41 | all:$(BIN) 42 | 43 | DUMP_OBJ=dump_symbols.o guid_creator.o dump_syms.o file_id.o md5.o 44 | 45 | dump_syms:$(DUMP_OBJ) 46 | $(CXX) $(CXXFLAGS) -o $@ $^ 47 | 48 | dump_symbols.o:../../../common/solaris/dump_symbols.cc 49 | $(CXX) $(CXXFLAGS) -c $^ 50 | 51 | guid_creator.o:../../../common/solaris/guid_creator.cc 52 | $(CXX) $(CXXFLAGS) -c $^ 53 | 54 | file_id.o:../../../common/solaris/file_id.cc 55 | $(CXX) $(CXXFLAGS) -c $^ 56 | 57 | md5.o:../../../common/md5.cc 58 | $(CXX) $(CXXFLAGS) -c $^ 59 | 60 | test:all 61 | ./run_regtest.sh 62 | 63 | clean: 64 | rm -f $(BIN) $(DUMP_OBJ) 65 | -------------------------------------------------------------------------------- /src/tools/solaris/dump_syms/dump_syms.cc: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2007, Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | // Author: Alfred Peng 31 | 32 | #include 33 | #include 34 | 35 | #include "common/solaris/dump_symbols.h" 36 | 37 | using namespace google_breakpad; 38 | 39 | int main(int argc, char **argv) { 40 | if (argc != 2) { 41 | fprintf(stderr, "Usage: %s \n", argv[0]); 42 | return 1; 43 | } 44 | 45 | const char *binary = argv[1]; 46 | 47 | DumpSymbols dumper; 48 | if (!dumper.WriteSymbolFile(binary, fileno(stdout))) { 49 | fprintf(stderr, "Failed to write symbol file.\n"); 50 | return 1; 51 | } 52 | 53 | return 0; 54 | } 55 | -------------------------------------------------------------------------------- /src/tools/solaris/dump_syms/run_regtest.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Copyright (c) 2007, Google Inc. 4 | # All rights reserved. 5 | # 6 | # Redistribution and use in source and binary forms, with or without 7 | # modification, are permitted provided that the following conditions are 8 | # met: 9 | # 10 | # * Redistributions of source code must retain the above copyright 11 | # notice, this list of conditions and the following disclaimer. 12 | # * Redistributions in binary form must reproduce the above 13 | # copyright notice, this list of conditions and the following disclaimer 14 | # in the documentation and/or other materials provided with the 15 | # distribution. 16 | # * Neither the name of Google Inc. nor the names of its 17 | # contributors may be used to endorse or promote products derived from 18 | # this software without specific prior written permission. 19 | # 20 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 | # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 | # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23 | # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 24 | # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 25 | # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 26 | # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27 | # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28 | # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | ./dump_syms testdata/dump_syms_regtest.o > testdata/dump_syms_regtest.new 33 | status=$? 34 | 35 | if [ $status -ne 0 ] ; then 36 | echo "FAIL, dump_syms failed" 37 | exit $status 38 | fi 39 | 40 | diff -u testdata/dump_syms_regtest.new testdata/dump_syms_regtest.sym > \ 41 | testdata/dump_syms_regtest.diff 42 | status=$? 43 | 44 | if [ $status -eq 0 ] ; then 45 | rm testdata/dump_syms_regtest.diff testdata/dump_syms_regtest.new 46 | echo "PASS" 47 | else 48 | echo "FAIL, see testdata/dump_syms_regtest.[new|diff]" 49 | fi 50 | 51 | exit $status 52 | -------------------------------------------------------------------------------- /src/tools/solaris/dump_syms/testdata/dump_syms_regtest.cc: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2007, Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | // ./dump_syms dump_syms_regtest.pdb > dump_syms_regtest.sym 31 | 32 | namespace google_breakpad { 33 | 34 | class C { 35 | public: 36 | C() : member_(1) {} 37 | virtual ~C() {} 38 | 39 | void set_member(int value) { member_ = value; } 40 | int member() const { return member_; } 41 | 42 | void f() { member_ = g(); } 43 | virtual int g() { return 2; } 44 | static char* h(const C &that) { return 0; } 45 | 46 | private: 47 | int member_; 48 | }; 49 | 50 | static int i() { 51 | return 3; 52 | } 53 | 54 | } // namespace google_breakpad 55 | 56 | int main(int argc, char **argv) { 57 | google_breakpad::C object; 58 | object.set_member(google_breakpad::i()); 59 | object.f(); 60 | int value = object.g(); 61 | char *nothing = object.h(object); 62 | 63 | return 0; 64 | } 65 | -------------------------------------------------------------------------------- /src/tools/solaris/dump_syms/testdata/dump_syms_regtest.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/tools/solaris/dump_syms/testdata/dump_syms_regtest.o -------------------------------------------------------------------------------- /src/tools/solaris/dump_syms/testdata/dump_syms_regtest.sym: -------------------------------------------------------------------------------- 1 | MODULE solaris x86 3DC8191474338D8587339B5FB3E2C62A0 dump_syms_regtest.o 2 | FILE 0 dump_syms_regtest.cc 3 | FUNC 0 156 0 main 4 | 12 18 57 0 5 | 1e 12 58 0 6 | 36 24 59 0 7 | 42 12 60 0 8 | 57 21 61 0 9 | 6c 21 63 0 10 | 9c 48 64 0 11 | FUNC 0 16 0 int google_breakpad::i() 12 | 6 6 51 0 13 | 10 10 52 0 14 | FUNC 0 37 0 google_breakpad::C::C() 15 | 25 37 36 0 16 | FUNC 0 3 0 google_breakpad::C::~C() 17 | 3 3 37 0 18 | FUNC 0 12 0 void google_breakpad::C::set_member(int) 19 | 3 3 39 0 20 | c 9 39 0 21 | FUNC 0 29 0 void google_breakpad::C::f() 22 | 3 3 42 0 23 | 1d 26 42 0 24 | FUNC 0 16 0 int google_breakpad::C::g() 25 | 6 6 43 0 26 | 10 10 43 0 27 | FUNC 0 16 0 char*google_breakpad::C::h(const google_breakpad::C&) 28 | 6 6 44 0 29 | 10 10 44 0 30 | FUNC 0 15 0 google_breakpad::C::~C #Nvariant 1() 31 | f 15 37 0 32 | FUNC 0 0 0 __SLIP.DELETER__A 33 | FUNC 0 0 0 void operator delete(void*) 34 | -------------------------------------------------------------------------------- /src/tools/tools.gyp: -------------------------------------------------------------------------------- 1 | # Copyright 2014 Google Inc. All rights reserved. 2 | # 3 | # Redistribution and use in source and binary forms, with or without 4 | # modification, are permitted provided that the following conditions are 5 | # met: 6 | # 7 | # * Redistributions of source code must retain the above copyright 8 | # notice, this list of conditions and the following disclaimer. 9 | # * Redistributions in binary form must reproduce the above 10 | # copyright notice, this list of conditions and the following disclaimer 11 | # in the documentation and/or other materials provided with the 12 | # distribution. 13 | # * Neither the name of Google Inc. nor the names of its 14 | # contributors may be used to endorse or promote products derived from 15 | # this software without specific prior written permission. 16 | # 17 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18 | # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19 | # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 20 | # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 21 | # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22 | # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23 | # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 | # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 | # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | 29 | { 30 | 'conditions': [ 31 | ['OS=="mac"', { 32 | 'includes': ['mac/tools_mac.gypi'], 33 | }], 34 | ['OS=="linux"', { 35 | 'includes': ['linux/tools_linux.gypi'], 36 | }], 37 | ], 38 | } 39 | -------------------------------------------------------------------------------- /src/tools/windows/binaries/dump_syms.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/tools/windows/binaries/dump_syms.exe -------------------------------------------------------------------------------- /src/tools/windows/binaries/symupload.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/tools/windows/binaries/symupload.exe -------------------------------------------------------------------------------- /src/tools/windows/converter/ms_symbol_server_converter.gyp: -------------------------------------------------------------------------------- 1 | # Copyright 2013 Google Inc. All rights reserved. 2 | # 3 | # Redistribution and use in source and binary forms, with or without 4 | # modification, are permitted provided that the following conditions are 5 | # met: 6 | # 7 | # * Redistributions of source code must retain the above copyright 8 | # notice, this list of conditions and the following disclaimer. 9 | # * Redistributions in binary form must reproduce the above 10 | # copyright notice, this list of conditions and the following disclaimer 11 | # in the documentation and/or other materials provided with the 12 | # distribution. 13 | # * Neither the name of Google Inc. nor the names of its 14 | # contributors may be used to endorse or promote products derived from 15 | # this software without specific prior written permission. 16 | # 17 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18 | # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19 | # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 20 | # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 21 | # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22 | # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23 | # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 | # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 | # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | 29 | { 30 | 'includes': [ 31 | '../../../build/common.gypi', 32 | ], 33 | 'targets': [ 34 | { 35 | 'target_name': 'ms_symbol_server_converter', 36 | 'type': 'static_library', 37 | 'msvs_guid': '1463C4CD-23FC-4DE9-BFDE-283338200157', 38 | 'sources': [ 39 | 'ms_symbol_server_converter.cc', 40 | ], 41 | 'dependencies': [ 42 | '../../../common/windows/common_windows.gyp:common_windows_lib', 43 | ], 44 | }, 45 | ], 46 | } 47 | -------------------------------------------------------------------------------- /src/tools/windows/dump_syms/run_regtest.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Copyright (c) 2006, Google Inc. 4 | # All rights reserved. 5 | # 6 | # Redistribution and use in source and binary forms, with or without 7 | # modification, are permitted provided that the following conditions are 8 | # met: 9 | # 10 | # * Redistributions of source code must retain the above copyright 11 | # notice, this list of conditions and the following disclaimer. 12 | # * Redistributions in binary form must reproduce the above 13 | # copyright notice, this list of conditions and the following disclaimer 14 | # in the documentation and/or other materials provided with the 15 | # distribution. 16 | # * Neither the name of Google Inc. nor the names of its 17 | # contributors may be used to endorse or promote products derived from 18 | # this software without specific prior written permission. 19 | # 20 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 | # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 | # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23 | # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 24 | # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 25 | # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 26 | # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27 | # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28 | # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | Release/dump_syms.exe testdata/dump_syms_regtest.pdb | \ 33 | tr -d '\015' > \ 34 | testdata/dump_syms_regtest.new 35 | status=$? 36 | 37 | if [ $status -ne 0 ] ; then 38 | echo "FAIL, dump_syms.exe failed" 39 | exit $status 40 | fi 41 | 42 | diff -u testdata/dump_syms_regtest.new testdata/dump_syms_regtest.sym > \ 43 | testdata/dump_syms_regtest.diff 44 | status=$? 45 | 46 | if [ $status -eq 0 ] ; then 47 | rm testdata/dump_syms_regtest.diff testdata/dump_syms_regtest.new 48 | echo "PASS" 49 | else 50 | echo "FAIL, see testdata/dump_syms_regtest.[new|diff]" 51 | fi 52 | 53 | exit $status 54 | -------------------------------------------------------------------------------- /src/tools/windows/dump_syms/testdata/dump_syms_regtest.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/tools/windows/dump_syms/testdata/dump_syms_regtest.pdb -------------------------------------------------------------------------------- /src/tools/windows/dump_syms/testdata/dump_syms_regtest64.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/tools/windows/dump_syms/testdata/dump_syms_regtest64.pdb -------------------------------------------------------------------------------- /src/tools/windows/dump_syms/testdata/omap_reorder_bbs.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/tools/windows/dump_syms/testdata/omap_reorder_bbs.pdb -------------------------------------------------------------------------------- /src/tools/windows/dump_syms/testdata/omap_reorder_funcs.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/tools/windows/dump_syms/testdata/omap_reorder_funcs.pdb -------------------------------------------------------------------------------- /src/tools/windows/dump_syms/testdata/omap_stretched.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/tools/windows/dump_syms/testdata/omap_stretched.pdb -------------------------------------------------------------------------------- /src/tools/windows/dump_syms/testdata/omap_stretched_filled.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/svn2github/google-breakpad/f4cff6af6cad23be5393a17b760a46ef3342926b/src/tools/windows/dump_syms/testdata/omap_stretched_filled.pdb -------------------------------------------------------------------------------- /src/tools/windows/refresh_binaries.bat: -------------------------------------------------------------------------------- 1 | REM This batch file is meant to facilitate regenerating prebuilt binaries for 2 | REM the Windows tools. 3 | REM You MUST run it from a Visual Studio xxxx Command Prompt. To do this, 4 | REM navigate to: 5 | REM 6 | REM Start->Programs->Microsoft Visual Studio XXXX->Tools-> 7 | REM Visual Studio Command Prompt 8 | REM 9 | REM Then run this batch file. It performs an SVN update, edits the 10 | REM README.binaries file to contain 11 | REM the revision number, and builds the tools. You must run 'svn commit' to 12 | REM commit the pending edits to the repository. 13 | 14 | pushd %~dp0\..\..\ 15 | call svn update --accept postpone 16 | cd tools\windows 17 | devenv symupload\symupload.vcproj /rebuild Release 18 | copy symupload\Release\symupload.exe binaries\ 19 | REM switch back to top level so that 'svn info' displays useful information. 20 | cd ..\..\ 21 | echo This checkin of the binaries was created by refresh_binaries.bat. > %TEMP%\checkin.txt 22 | echo Date: %DATE% %TIME% >> %TEMP%\checkin.txt 23 | echo Repository information (output of 'svn info') follows: >> %TEMP%\checkin.txt 24 | call svn info >> %TEMP%\checkin.txt 25 | echo Done! 26 | echo type 'svn commit -F %%TEMP%%\checkin.txt' to commit. 27 | popd 28 | -------------------------------------------------------------------------------- /src/tools/windows/symupload/symupload.gyp: -------------------------------------------------------------------------------- 1 | # Copyright 2013 Google Inc. All rights reserved. 2 | # 3 | # Redistribution and use in source and binary forms, with or without 4 | # modification, are permitted provided that the following conditions are 5 | # met: 6 | # 7 | # * Redistributions of source code must retain the above copyright 8 | # notice, this list of conditions and the following disclaimer. 9 | # * Redistributions in binary form must reproduce the above 10 | # copyright notice, this list of conditions and the following disclaimer 11 | # in the documentation and/or other materials provided with the 12 | # distribution. 13 | # * Neither the name of Google Inc. nor the names of its 14 | # contributors may be used to endorse or promote products derived from 15 | # this software without specific prior written permission. 16 | # 17 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18 | # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19 | # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 20 | # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 21 | # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22 | # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23 | # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 | # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 | # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | 29 | { 30 | 'includes': [ 31 | '../../../build/common.gypi', 32 | ], 33 | 'targets': [ 34 | { 35 | 'target_name': 'symupload', 36 | 'type': 'executable', 37 | 'sources': [ 38 | 'symupload.cc', 39 | ], 40 | 'dependencies': [ 41 | '../../../common/windows/common_windows.gyp:common_windows_lib', 42 | ], 43 | }, 44 | ], 45 | } 46 | --------------------------------------------------------------------------------