├── .gitignore ├── .idea ├── codeStyles │ └── Project.xml ├── dbnavigator.xml ├── inspectionProfiles │ └── Project_Default.xml ├── markdown-navigator.xml ├── markdown-navigator │ └── profiles_settings.xml ├── misc.xml ├── modules.xml ├── runConfigurations.xml └── vcs.xml ├── LICENSE ├── README.md ├── android-crash-core ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── cn │ │ └── yan │ │ └── full │ │ └── crash │ │ └── core │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ └── res │ │ └── values │ │ └── strings.xml │ └── test │ └── java │ └── cn │ └── yan │ └── full │ └── crash │ └── core │ └── ExampleUnitTest.java ├── base-crash-core ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── cn │ │ └── yan │ │ └── base │ │ └── crash │ │ └── core │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── cn │ │ │ └── yan │ │ │ └── base │ │ │ └── crash │ │ │ └── core │ │ │ ├── CrashDump.java │ │ │ ├── CrashUpload.java │ │ │ ├── DebugLog.java │ │ │ ├── DeviceAppState.java │ │ │ └── NetState.java │ └── res │ │ └── values │ │ └── strings.xml │ └── test │ └── java │ └── cn │ └── yan │ └── base │ └── crash │ └── core │ └── ExampleUnitTest.java ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── java-crash-core ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── cn │ │ └── yan │ │ └── java │ │ └── crash │ │ └── core │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── cn │ │ │ └── yan │ │ │ └── java │ │ │ └── crash │ │ │ └── core │ │ │ └── JavaCrashHandler.java │ └── res │ │ └── values │ │ └── strings.xml │ └── test │ └── java │ └── cn │ └── yan │ └── java │ └── crash │ └── core │ └── ExampleUnitTest.java ├── native-crash-core ├── .gitignore ├── build.gradle ├── proguard-rules.pro ├── src │ ├── androidTest │ │ └── java │ │ │ └── cn │ │ │ └── yan │ │ │ └── crash │ │ │ └── core │ │ │ └── ExampleInstrumentedTest.java │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── cn │ │ │ │ └── yan │ │ │ │ └── crash │ │ │ │ └── core │ │ │ │ ├── NativeCrash.java │ │ │ │ └── NativeHandler.java │ │ ├── jni │ │ │ ├── Android.mk │ │ │ ├── Application.mk │ │ │ ├── NativeHandler.cpp │ │ │ ├── cn_yan_crash_core_NativeHandler.h │ │ │ ├── logcat.h │ │ │ └── third-breakpad │ │ │ │ ├── .gitignore │ │ │ │ ├── .travis.yml │ │ │ │ ├── AUTHORS │ │ │ │ ├── ChangeLog │ │ │ │ ├── DEPS │ │ │ │ ├── INSTALL │ │ │ │ ├── LICENSE │ │ │ │ ├── Makefile.am │ │ │ │ ├── Makefile.in │ │ │ │ ├── NEWS │ │ │ │ ├── README.ANDROID │ │ │ │ ├── README.md │ │ │ │ ├── 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 │ │ │ │ ├── appveyor.yml │ │ │ │ ├── autotools │ │ │ │ ├── ar-lib │ │ │ │ ├── compile │ │ │ │ ├── config.guess │ │ │ │ ├── config.sub │ │ │ │ ├── depcomp │ │ │ │ ├── install-sh │ │ │ │ ├── ltmain.sh │ │ │ │ ├── missing │ │ │ │ ├── root-test-driver │ │ │ │ └── test-driver │ │ │ │ ├── breakpad-client.pc.in │ │ │ │ ├── breakpad.pc.in │ │ │ │ ├── codereview.settings │ │ │ │ ├── configure │ │ │ │ ├── configure.ac │ │ │ │ ├── default.xml │ │ │ │ ├── docs │ │ │ │ ├── OWNERS │ │ │ │ ├── breakpad.png │ │ │ │ ├── breakpad.svg │ │ │ │ ├── client_design.md │ │ │ │ ├── contributing_to_breakpad.md │ │ │ │ ├── exception_handling.md │ │ │ │ ├── getting_started_with_breakpad.md │ │ │ │ ├── linux_starter_guide.md │ │ │ │ ├── linux_system_calls.md │ │ │ │ ├── mac_breakpad_starter_guide.md │ │ │ │ ├── mozilla_brown_bag_talk.md │ │ │ │ ├── processor_design.md │ │ │ │ ├── stack_walking.md │ │ │ │ ├── symbol_files.md │ │ │ │ └── windows_client_integration.md │ │ │ │ ├── m4 │ │ │ │ ├── ax_append_compile_flags.m4 │ │ │ │ ├── ax_append_flag.m4 │ │ │ │ ├── ax_check_compile_flag.m4 │ │ │ │ ├── ax_check_define.m4 │ │ │ │ ├── ax_cxx_compile_stdcxx.m4 │ │ │ │ ├── ax_pthread.m4 │ │ │ │ ├── ax_require_defined.m4 │ │ │ │ ├── libtool.m4 │ │ │ │ ├── ltoptions.m4 │ │ │ │ ├── ltsugar.m4 │ │ │ │ ├── ltversion.m4 │ │ │ │ └── lt~obsolete.m4 │ │ │ │ ├── scripts │ │ │ │ ├── travis-build.sh │ │ │ │ └── travis-checkout.sh │ │ │ │ └── src │ │ │ │ ├── breakpad_googletest_includes.h │ │ │ │ ├── client │ │ │ │ ├── apple │ │ │ │ │ └── Framework │ │ │ │ │ │ └── BreakpadDefines.h │ │ │ │ ├── ios │ │ │ │ │ ├── Breakpad.h │ │ │ │ │ ├── Breakpad.mm │ │ │ │ │ ├── Breakpad.xcodeproj │ │ │ │ │ │ └── project.pbxproj │ │ │ │ │ ├── BreakpadController.h │ │ │ │ │ ├── BreakpadController.mm │ │ │ │ │ ├── Breakpad_Prefix.pch │ │ │ │ │ ├── exception_handler_no_mach.cc │ │ │ │ │ ├── exception_handler_no_mach.h │ │ │ │ │ └── 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 │ │ │ │ │ │ ├── thread_info.cc │ │ │ │ │ │ ├── thread_info.h │ │ │ │ │ │ ├── ucontext_reader.cc │ │ │ │ │ │ └── ucontext_reader.h │ │ │ │ │ ├── handler │ │ │ │ │ │ ├── exception_handler.cc │ │ │ │ │ │ ├── exception_handler.h │ │ │ │ │ │ ├── exception_handler_unittest.cc │ │ │ │ │ │ ├── microdump_extra_info.h │ │ │ │ │ │ ├── minidump_descriptor.cc │ │ │ │ │ │ └── minidump_descriptor.h │ │ │ │ │ ├── log │ │ │ │ │ │ ├── log.cc │ │ │ │ │ │ └── log.h │ │ │ │ │ ├── microdump_writer │ │ │ │ │ │ ├── microdump_writer.cc │ │ │ │ │ │ ├── microdump_writer.h │ │ │ │ │ │ └── microdump_writer_unittest.cc │ │ │ │ │ ├── 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 │ │ │ │ │ ├── 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 │ │ │ │ │ │ ├── asm-mips │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── asm.h │ │ │ │ │ │ │ ├── fpregdef.h │ │ │ │ │ │ │ └── regdef.h │ │ │ │ │ │ ├── elf.h │ │ │ │ │ │ ├── link.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 │ │ │ │ │ ├── elf_reader.cc │ │ │ │ │ ├── elf_reader.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 │ │ │ │ ├── dwarf_range_list_handler.cc │ │ │ │ ├── dwarf_range_list_handler.h │ │ │ │ ├── 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 │ │ │ │ │ ├── symbol_upload.cc │ │ │ │ │ ├── symbol_upload.h │ │ │ │ │ ├── synth_elf.cc │ │ │ │ │ ├── synth_elf.h │ │ │ │ │ ├── synth_elf_unittest.cc │ │ │ │ │ └── tests │ │ │ │ │ │ ├── auto_testfile.h │ │ │ │ │ │ ├── crash_generator.cc │ │ │ │ │ │ └── crash_generator.h │ │ │ │ ├── long_string_dictionary.cc │ │ │ │ ├── long_string_dictionary.h │ │ │ │ ├── long_string_dictionary_unittest.cc │ │ │ │ ├── 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.cc │ │ │ │ │ ├── dump_syms.h │ │ │ │ │ ├── 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 │ │ │ │ │ ├── super_fat_arch.h │ │ │ │ │ └── testing │ │ │ │ │ │ ├── GTMSenTestCase.h │ │ │ │ │ │ └── GTMSenTestCase.m │ │ │ │ ├── md5.cc │ │ │ │ ├── md5.h │ │ │ │ ├── memory_allocator.h │ │ │ │ ├── memory_allocator_unittest.cc │ │ │ │ ├── memory_range.h │ │ │ │ ├── memory_range_unittest.cc │ │ │ │ ├── minidump_type_helper.h │ │ │ │ ├── module.cc │ │ │ │ ├── module.h │ │ │ │ ├── module_unittest.cc │ │ │ │ ├── path_helper.cc │ │ │ │ ├── path_helper.h │ │ │ │ ├── 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 │ │ │ │ ├── stdio_wrapper.h │ │ │ │ ├── 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.h │ │ │ │ │ ├── microdump_processor.h │ │ │ │ │ ├── minidump.h │ │ │ │ │ ├── minidump_processor.h │ │ │ │ │ ├── proc_maps_linux.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 │ │ │ │ ├── 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 │ │ │ │ ├── convert_old_arm64_context.cc │ │ │ │ ├── convert_old_arm64_context.h │ │ │ │ ├── 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.cc │ │ │ │ ├── microdump_processor.cc │ │ │ │ ├── microdump_processor_unittest.cc │ │ │ │ ├── microdump_stackwalk.cc │ │ │ │ ├── microdump_stackwalk_machine_readable_test │ │ │ │ ├── microdump_stackwalk_test │ │ │ │ ├── microdump_stackwalk_test_vars │ │ │ │ ├── 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 │ │ │ │ ├── proc_maps_linux.cc │ │ │ │ ├── proc_maps_linux_unittest.cc │ │ │ │ ├── process_state.cc │ │ │ │ ├── processor.gyp │ │ │ │ ├── processor_tools.gypi │ │ │ │ ├── proto │ │ │ │ │ ├── README │ │ │ │ │ └── process_state.proto │ │ │ │ ├── range_map-inl.h │ │ │ │ ├── range_map.h │ │ │ │ ├── range_map_shrink_down_unittest.cc │ │ │ │ ├── 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 │ │ │ │ ├── stackwalk_common.cc │ │ │ │ ├── stackwalk_common.h │ │ │ │ ├── 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_mips64_unittest.cc │ │ │ │ ├── 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 │ │ │ │ ├── symbolic_constants_win.cc │ │ │ │ ├── symbolic_constants_win.h │ │ │ │ ├── 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_divide_by_zero.dmp │ │ │ │ │ ├── linux_executable_heap.dmp │ │ │ │ │ ├── linux_executable_stack.dmp │ │ │ │ │ ├── linux_inside_module_exe_region1.dmp │ │ │ │ │ ├── linux_inside_module_exe_region2.dmp │ │ │ │ │ ├── linux_jmp_to_0.dmp │ │ │ │ │ ├── linux_jmp_to_module_not_exe_region.dmp │ │ │ │ │ ├── linux_null_dereference.dmp │ │ │ │ │ ├── linux_null_read_av.dmp │ │ │ │ │ ├── linux_outside_module.dmp │ │ │ │ │ ├── linux_overflow.dmp │ │ │ │ │ ├── linux_raise_sigabrt.dmp │ │ │ │ │ ├── linux_stack_pointer_in_module.dmp │ │ │ │ │ ├── linux_stack_pointer_in_stack.dmp │ │ │ │ │ ├── linux_stack_pointer_in_stack_alt_name.dmp │ │ │ │ │ ├── linux_stacksmash.dmp │ │ │ │ │ ├── linux_test_app.cc │ │ │ │ │ ├── linux_write_to_nonwritable_module.dmp │ │ │ │ │ ├── linux_write_to_nonwritable_region_math.dmp │ │ │ │ │ ├── linux_write_to_outside_module.dmp │ │ │ │ │ ├── linux_write_to_outside_module_via_math.dmp │ │ │ │ │ ├── linux_write_to_under_4k.dmp │ │ │ │ │ ├── microdump-arm.dmp │ │ │ │ │ ├── microdump-arm64.dmp │ │ │ │ │ ├── microdump-mips32.dmp │ │ │ │ │ ├── microdump-mips64.dmp │ │ │ │ │ ├── microdump-multiple.dmp │ │ │ │ │ ├── microdump-withcrashreason.dmp │ │ │ │ │ ├── microdump-x86.dmp │ │ │ │ │ ├── microdump.stackwalk-arm.out │ │ │ │ │ ├── microdump.stackwalk-arm64.out │ │ │ │ │ ├── microdump.stackwalk.machine_readable-arm.out │ │ │ │ │ ├── microdump.stackwalk.machine_readable-arm64.out │ │ │ │ │ ├── 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 │ │ │ │ │ │ ├── microdump │ │ │ │ │ │ │ ├── breakpad_unittests │ │ │ │ │ │ │ │ ├── D6D1FEC9A15DE7F38A236898871A2E770 │ │ │ │ │ │ │ │ │ └── breakpad_unittests.sym │ │ │ │ │ │ │ │ └── DA7778FB66018A4E9B4110ED06E730D00 │ │ │ │ │ │ │ │ │ └── breakpad_unittests.sym │ │ │ │ │ │ │ └── crash_example │ │ │ │ │ │ │ │ ├── 6E72E2F1A5F59AB3D51356FDFE394D490 │ │ │ │ │ │ │ │ └── crash_example.sym │ │ │ │ │ │ │ │ └── 8F36148CC4647A8116CAF2A25F591F570 │ │ │ │ │ │ │ │ └── crash_example.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 │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── Makefile.am │ │ │ │ │ ├── README.breakpad │ │ │ │ │ ├── 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_completions.h │ │ │ │ ├── mac_headers │ │ │ │ │ ├── README │ │ │ │ │ ├── architecture │ │ │ │ │ │ └── byte_order.h │ │ │ │ │ ├── i386 │ │ │ │ │ │ └── _types.h │ │ │ │ │ ├── mach-o │ │ │ │ │ │ ├── arch.h │ │ │ │ │ │ ├── fat.h │ │ │ │ │ │ ├── loader.h │ │ │ │ │ │ └── nlist.h │ │ │ │ │ └── mach │ │ │ │ │ │ ├── boolean.h │ │ │ │ │ │ ├── i386 │ │ │ │ │ │ ├── boolean.h │ │ │ │ │ │ ├── vm_param.h │ │ │ │ │ │ └── vm_types.h │ │ │ │ │ │ ├── machine.h │ │ │ │ │ │ ├── machine │ │ │ │ │ │ ├── boolean.h │ │ │ │ │ │ ├── thread_state.h │ │ │ │ │ │ ├── thread_status.h │ │ │ │ │ │ └── vm_types.h │ │ │ │ │ │ ├── thread_status.h │ │ │ │ │ │ └── vm_prot.h │ │ │ │ └── musl │ │ │ │ │ ├── COPYRIGHT │ │ │ │ │ ├── README │ │ │ │ │ ├── README.breakpad │ │ │ │ │ ├── VERSION │ │ │ │ │ └── include │ │ │ │ │ └── elf.h │ │ │ │ └── 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.cc │ │ │ │ │ └── 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 │ │ │ │ ├── deps-to-manifest.py │ │ │ │ ├── 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.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 │ │ │ │ ├── dump_syms │ │ │ │ ├── dump_syms.cc │ │ │ │ ├── dump_syms.gyp │ │ │ │ ├── dump_syms_unittest.cc │ │ │ │ ├── run_regtest.sh │ │ │ │ └── testdata │ │ │ │ │ ├── dump_syms_regtest.cc │ │ │ │ │ ├── dump_syms_regtest.pdb │ │ │ │ │ ├── dump_syms_regtest.sym │ │ │ │ │ ├── dump_syms_regtest64.exe │ │ │ │ │ ├── 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 │ │ │ │ └── tools_windows.gyp │ │ └── res │ │ │ └── values │ │ │ └── strings.xml │ └── test │ │ └── java │ │ └── cn │ │ └── yan │ │ └── crash │ │ └── core │ │ └── ExampleUnitTest.java └── tools │ ├── dump_syms │ └── microdump_stackwalk ├── settings.gradle └── test-demo-app ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src ├── androidTest └── java │ └── cn │ └── yan │ └── android │ └── crash │ └── ExampleInstrumentedTest.kt ├── main ├── AndroidManifest.xml ├── java │ └── cn │ │ └── yan │ │ └── android │ │ └── crash │ │ ├── DemoActivity.kt │ │ └── DemoApplication.kt └── res │ ├── drawable-v24 │ └── ic_launcher_foreground.xml │ ├── drawable │ └── ic_launcher_background.xml │ ├── layout │ └── activity_demo.xml │ ├── mipmap-anydpi-v26 │ ├── ic_launcher.xml │ └── ic_launcher_round.xml │ ├── mipmap-hdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-mdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-xhdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-xxhdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-xxxhdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ └── values │ ├── colors.xml │ ├── strings.xml │ └── styles.xml └── test └── java └── cn └── yan └── android └── crash └── ExampleUnitTest.kt /.gitignore: -------------------------------------------------------------------------------- 1 | # Built application files 2 | *.apk 3 | *.ap_ 4 | 5 | # Files for the ART/Dalvik VM 6 | *.dex 7 | 8 | # Java class files 9 | *.class 10 | 11 | # Generated files 12 | bin/ 13 | gen/ 14 | out/ 15 | 16 | # Gradle files 17 | .gradle/ 18 | build/ 19 | 20 | # Local configuration file (sdk path, etc) 21 | local.properties 22 | 23 | # Proguard folder generated by Eclipse 24 | proguard/ 25 | 26 | # Log Files 27 | *.log 28 | 29 | # Android Studio Navigation editor temp files 30 | .navigation/ 31 | 32 | # Android Studio captures folder 33 | captures/ 34 | 35 | # IntelliJ 36 | *.iml 37 | .idea/workspace.xml 38 | .idea/tasks.xml 39 | .idea/gradle.xml 40 | .idea/assetWizardSettings.xml 41 | .idea/dictionaries 42 | .idea/libraries 43 | .idea/caches 44 | 45 | # Keystore files 46 | # Uncomment the following line if you do not want to check your keystore files in. 47 | #*.jks 48 | 49 | # External native build folder generated in Android Studio 2.2 and later 50 | .externalNativeBuild 51 | 52 | # Google Services (e.g. APIs or Firebase) 53 | google-services.json 54 | 55 | # Freeline 56 | freeline.py 57 | freeline/ 58 | freeline_project_description.json 59 | 60 | # fastlane 61 | fastlane/report.xml 62 | fastlane/Preview.html 63 | fastlane/screenshots 64 | fastlane/test_output 65 | fastlane/readme.md 66 | -------------------------------------------------------------------------------- /.idea/codeStyles/Project.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 15 | 16 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /.idea/inspectionProfiles/Project_Default.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 36 | -------------------------------------------------------------------------------- /.idea/markdown-navigator/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 27 | 28 | 29 | 30 | 31 | 32 | 34 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 yanbo 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # android-crash 2 | 一个 Android 平台支持捕获 Native(C/C++) 层和 Java 层崩溃异常的迷你库。 3 | 4 | # 业余努力开发中...... 5 | 后续计划支持 js、mapping自动化、obj so 自动化。 6 | 7 | # 模块介绍 8 | 9 | |模块名|说明| 10 | |----|----| 11 | |base-crash-core|设备信息获取、崩溃目录管理、崩溃通用上传处理。| 12 | |native-crash-core|`C/C++` Native 层崩溃捕获处理,可单独使用。| 13 | |java-crash-core|`java/kotlin` JVM 语言崩溃捕获处理,可单独使用。| 14 | |android-crash-core|`C/C++` Native、`java/kotlin` JVM 语言崩溃统一处理。| 15 | 16 | |test-demo-app| 测试 App,用来演示相关功能接入。| 17 | -------------------------------------------------------------------------------- /android-crash-core/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /android-crash-core/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | compileSdkVersion 27 5 | 6 | 7 | 8 | defaultConfig { 9 | minSdkVersion 14 10 | targetSdkVersion 27 11 | versionCode 1 12 | versionName "1.0" 13 | 14 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 15 | 16 | } 17 | 18 | buildTypes { 19 | release { 20 | minifyEnabled false 21 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 22 | } 23 | } 24 | 25 | } 26 | 27 | dependencies { 28 | implementation fileTree(dir: 'libs', include: ['*.jar']) 29 | 30 | implementation 'com.android.support:appcompat-v7:27.1.1' 31 | testImplementation 'junit:junit:4.12' 32 | androidTestImplementation 'com.android.support.test:runner:1.0.2' 33 | androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' 34 | } 35 | -------------------------------------------------------------------------------- /android-crash-core/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /android-crash-core/src/androidTest/java/cn/yan/full/crash/core/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package cn.yan.full.crash.core; 2 | 3 | import android.content.Context; 4 | import android.support.test.InstrumentationRegistry; 5 | import android.support.test.runner.AndroidJUnit4; 6 | 7 | import org.junit.Test; 8 | import org.junit.runner.RunWith; 9 | 10 | import static org.junit.Assert.*; 11 | 12 | /** 13 | * Instrumented test, which will execute on an Android device. 14 | * 15 | * @see Testing documentation 16 | */ 17 | @RunWith(AndroidJUnit4.class) 18 | public class ExampleInstrumentedTest { 19 | @Test 20 | public void useAppContext() { 21 | // Context of the app under test. 22 | Context appContext = InstrumentationRegistry.getTargetContext(); 23 | 24 | assertEquals("cn.yan.full.crash.core.test", appContext.getPackageName()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /android-crash-core/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | -------------------------------------------------------------------------------- /android-crash-core/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | full-crash-core 3 | 4 | -------------------------------------------------------------------------------- /android-crash-core/src/test/java/cn/yan/full/crash/core/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package cn.yan.full.crash.core; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /base-crash-core/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /base-crash-core/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | compileSdkVersion 27 5 | 6 | 7 | 8 | defaultConfig { 9 | minSdkVersion 14 10 | targetSdkVersion 27 11 | versionCode 1 12 | versionName "1.0" 13 | 14 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 15 | 16 | } 17 | 18 | buildTypes { 19 | release { 20 | minifyEnabled false 21 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 22 | } 23 | } 24 | 25 | } 26 | 27 | dependencies { 28 | implementation fileTree(dir: 'libs', include: ['*.jar']) 29 | 30 | implementation 'com.android.support:appcompat-v7:27.1.1' 31 | testImplementation 'junit:junit:4.12' 32 | androidTestImplementation 'com.android.support.test:runner:1.0.2' 33 | androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' 34 | } 35 | -------------------------------------------------------------------------------- /base-crash-core/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /base-crash-core/src/androidTest/java/cn/yan/base/crash/core/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package cn.yan.base.crash.core; 2 | 3 | import android.content.Context; 4 | import android.support.test.InstrumentationRegistry; 5 | import android.support.test.runner.AndroidJUnit4; 6 | 7 | import org.junit.Test; 8 | import org.junit.runner.RunWith; 9 | 10 | import static org.junit.Assert.*; 11 | 12 | /** 13 | * Instrumented test, which will execute on an Android device. 14 | * 15 | * @see Testing documentation 16 | */ 17 | @RunWith(AndroidJUnit4.class) 18 | public class ExampleInstrumentedTest { 19 | @Test 20 | public void useAppContext() { 21 | // Context of the app under test. 22 | Context appContext = InstrumentationRegistry.getTargetContext(); 23 | 24 | assertEquals("cn.yan.base.crash.core.test", appContext.getPackageName()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /base-crash-core/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /base-crash-core/src/main/java/cn/yan/base/crash/core/CrashDump.java: -------------------------------------------------------------------------------- 1 | package cn.yan.base.crash.core; 2 | 3 | import android.content.Context; 4 | import android.support.annotation.NonNull; 5 | import android.support.annotation.Nullable; 6 | import android.support.annotation.StringDef; 7 | import java.lang.annotation.Retention; 8 | import java.io.File; 9 | import static java.lang.annotation.RetentionPolicy.SOURCE; 10 | 11 | final public class CrashDump { 12 | @Retention(SOURCE) 13 | @StringDef({DIR_NATIVE, DIR_JVM}) 14 | public @interface CrashType {} 15 | 16 | public static final String DIR_NATIVE = "native"; 17 | public static final String DIR_JVM = "jvm"; 18 | 19 | private static final String DIR_CRASH = ".crash"; 20 | 21 | @Nullable 22 | public static File getAssignedDir(@NonNull Context context, @CrashType String type) { 23 | File file = context.getExternalCacheDir(); 24 | if (file != null && file.exists()) { 25 | String typeDir = file.getPath() + File.separator + DIR_CRASH + File.separator + type; 26 | file = new File(typeDir); 27 | if (!file.exists()) { 28 | file.mkdirs(); 29 | } 30 | } 31 | return file; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /base-crash-core/src/main/java/cn/yan/base/crash/core/CrashUpload.java: -------------------------------------------------------------------------------- 1 | package cn.yan.base.crash.core; 2 | 3 | import android.app.IntentService; 4 | import android.content.Context; 5 | import android.content.Intent; 6 | import android.support.annotation.NonNull; 7 | import android.support.annotation.Nullable; 8 | import android.util.Log; 9 | 10 | final public class CrashUpload { 11 | public static void start(@NonNull Context context) { 12 | Intent intent = new Intent(context, WorkService.class); 13 | intent.setPackage(context.getPackageName()); 14 | context.startService(intent); 15 | } 16 | 17 | public static final class WorkService extends IntentService { 18 | private static final String TAG = "CrashUpload$WorkService"; 19 | 20 | public WorkService() { 21 | super(TAG); 22 | } 23 | 24 | @Override 25 | protected void onHandleIntent(@Nullable Intent intent) { 26 | //TODO ... 27 | Log.i(TAG, "WorkService------------onHandleIntent."); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /base-crash-core/src/main/java/cn/yan/base/crash/core/DebugLog.java: -------------------------------------------------------------------------------- 1 | package cn.yan.base.crash.core; 2 | 3 | import android.util.Log; 4 | 5 | public class DebugLog { 6 | private static final boolean DEBUG = BuildConfig.DEBUG; 7 | private static final String TAG = "androidCrash"; 8 | 9 | private DebugLog() {} 10 | 11 | public static void d(String desc) { 12 | if (DEBUG) { 13 | Log.d(TAG, desc); 14 | } 15 | } 16 | 17 | public static void d(String desc, Throwable tr) { 18 | if (DEBUG) { 19 | Log.d(TAG, desc, tr); 20 | } 21 | } 22 | 23 | public static void v(String desc) { 24 | if (DEBUG) { 25 | Log.v(TAG, desc); 26 | } 27 | } 28 | public static void v(String desc, Throwable tr) { 29 | if (DEBUG) { 30 | Log.v(TAG, desc, tr); 31 | } 32 | } 33 | 34 | public static void w(String desc) { 35 | if (DEBUG) { 36 | Log.w(TAG, desc); 37 | } 38 | } 39 | 40 | public static void w(String desc, Throwable tr) { 41 | if (DEBUG) { 42 | Log.w(TAG, desc, tr); 43 | } 44 | } 45 | 46 | public static void i(String desc) { 47 | if (DEBUG) { 48 | Log.i(TAG, desc); 49 | } 50 | } 51 | 52 | public static void i(String desc, Throwable tr) { 53 | if (DEBUG) { 54 | Log.i(TAG, desc, tr); 55 | } 56 | } 57 | 58 | public static void e(String desc) { 59 | if (DEBUG) { 60 | Log.e(TAG, desc); 61 | } 62 | } 63 | 64 | public static void e(String desc, Throwable tr) { 65 | if (DEBUG) { 66 | Log.e(TAG, desc, tr); 67 | } 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /base-crash-core/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | base-crash-core 3 | 4 | -------------------------------------------------------------------------------- /base-crash-core/src/test/java/cn/yan/base/crash/core/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package cn.yan.base.crash.core; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | ext.kotlin_version = '1.2.61' 5 | ext.kotlin_version = '1.2.50' 6 | repositories { maven { url './repo' } 7 | maven {url 'http://maven.aliyun.com/nexus/content/groups/public/'} 8 | google() 9 | jcenter() 10 | } 11 | dependencies { 12 | classpath 'com.android.tools.build:gradle:3.1.4' 13 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 14 | 15 | // NOTE: Do not place your application dependencies here; they belong 16 | // in the individual module build.gradle files 17 | classpath 'cn.yan.crash.gradle:crash-gradle-plugin:1.0.0' 18 | } 19 | } 20 | 21 | allprojects { 22 | repositories { 23 | maven {url 'http://maven.aliyun.com/nexus/content/groups/public/'} 24 | google() 25 | jcenter() 26 | } 27 | } 28 | 29 | task clean(type: Delete) { 30 | delete rootProject.buildDir 31 | } 32 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | # IDE (e.g. Android Studio) users: 3 | # Gradle settings configured through the IDE *will override* 4 | # any settings specified in this file. 5 | # For more details on how to configure your build environment visit 6 | # http://www.gradle.org/docs/current/userguide/build_environment.html 7 | # Specifies the JVM arguments used for the daemon process. 8 | # The setting is particularly useful for tweaking memory settings. 9 | org.gradle.jvmargs=-Xmx1536m 10 | # When configured, Gradle will run in incubating parallel mode. 11 | # This option should only be used with decoupled projects. More details, visit 12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 13 | # org.gradle.parallel=true 14 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Wed Aug 22 21:03:45 CST 2018 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip 7 | -------------------------------------------------------------------------------- /java-crash-core/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /java-crash-core/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | compileSdkVersion 27 5 | 6 | 7 | 8 | defaultConfig { 9 | minSdkVersion 14 10 | targetSdkVersion 27 11 | versionCode 1 12 | versionName "1.0" 13 | 14 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 15 | 16 | } 17 | 18 | buildTypes { 19 | release { 20 | minifyEnabled false 21 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 22 | } 23 | } 24 | 25 | } 26 | 27 | dependencies { 28 | implementation fileTree(dir: 'libs', include: ['*.jar']) 29 | 30 | implementation 'com.android.support:appcompat-v7:27.1.1' 31 | testImplementation 'junit:junit:4.12' 32 | androidTestImplementation 'com.android.support.test:runner:1.0.2' 33 | androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' 34 | compile project(":base-crash-core") 35 | } 36 | -------------------------------------------------------------------------------- /java-crash-core/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /java-crash-core/src/androidTest/java/cn/yan/java/crash/core/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package cn.yan.java.crash.core; 2 | 3 | import android.content.Context; 4 | import android.support.test.InstrumentationRegistry; 5 | import android.support.test.runner.AndroidJUnit4; 6 | 7 | import org.junit.Test; 8 | import org.junit.runner.RunWith; 9 | 10 | import static org.junit.Assert.*; 11 | 12 | /** 13 | * Instrumented test, which will execute on an Android device. 14 | * 15 | * @see Testing documentation 16 | */ 17 | @RunWith(AndroidJUnit4.class) 18 | public class ExampleInstrumentedTest { 19 | @Test 20 | public void useAppContext() { 21 | // Context of the app under test. 22 | Context appContext = InstrumentationRegistry.getTargetContext(); 23 | 24 | assertEquals("cn.yan.java.crash.core.test", appContext.getPackageName()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /java-crash-core/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | -------------------------------------------------------------------------------- /java-crash-core/src/main/java/cn/yan/java/crash/core/JavaCrashHandler.java: -------------------------------------------------------------------------------- 1 | package cn.yan.java.crash.core; 2 | 3 | public class JavaCrashHandler implements Thread.UncaughtExceptionHandler { 4 | @Override 5 | public void uncaughtException(Thread t, Throwable e) { 6 | 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /java-crash-core/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | java-crash-core 3 | 4 | -------------------------------------------------------------------------------- /java-crash-core/src/test/java/cn/yan/java/crash/core/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package cn.yan.java.crash.core; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /native-crash-core/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | /.externalNativeBuild -------------------------------------------------------------------------------- /native-crash-core/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | apply plugin: 'kotlin-android' 3 | 4 | android { 5 | compileSdkVersion 27 6 | 7 | 8 | 9 | defaultConfig { 10 | minSdkVersion 14 11 | targetSdkVersion 27 12 | versionCode 1 13 | versionName "1.0" 14 | 15 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 16 | 17 | } 18 | 19 | buildTypes { 20 | release { 21 | minifyEnabled false 22 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 23 | } 24 | } 25 | 26 | externalNativeBuild { 27 | ndkBuild { 28 | path 'src/main/jni/Android.mk' 29 | } 30 | } 31 | } 32 | 33 | dependencies { 34 | implementation fileTree(dir: 'libs', include: ['*.jar']) 35 | 36 | implementation 'com.android.support:appcompat-v7:27.1.1' 37 | testImplementation 'junit:junit:4.12' 38 | androidTestImplementation 'com.android.support.test:runner:1.0.2' 39 | androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' 40 | compile "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" 41 | compile project(":base-crash-core") 42 | } 43 | repositories { 44 | mavenCentral() 45 | } -------------------------------------------------------------------------------- /native-crash-core/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /native-crash-core/src/androidTest/java/cn/yan/crash/core/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package cn.yan.crash.core; 2 | 3 | import android.content.Context; 4 | import android.support.test.InstrumentationRegistry; 5 | import android.support.test.runner.AndroidJUnit4; 6 | 7 | import org.junit.Test; 8 | import org.junit.runner.RunWith; 9 | 10 | import static org.junit.Assert.*; 11 | 12 | /** 13 | * Instrumented test, which will execute on an Android device. 14 | * 15 | * @see Testing documentation 16 | */ 17 | @RunWith(AndroidJUnit4.class) 18 | public class ExampleInstrumentedTest { 19 | @Test 20 | public void useAppContext() { 21 | // Context of the app under test. 22 | Context appContext = InstrumentationRegistry.getTargetContext(); 23 | 24 | assertEquals("cn.yan.crash.core.test", appContext.getPackageName()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /native-crash-core/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | -------------------------------------------------------------------------------- /native-crash-core/src/main/java/cn/yan/crash/core/NativeCrash.java: -------------------------------------------------------------------------------- 1 | package cn.yan.crash.core; 2 | 3 | import android.content.Context; 4 | import android.support.annotation.NonNull; 5 | import java.io.File; 6 | import cn.yan.base.crash.core.CrashDump; 7 | import cn.yan.base.crash.core.DebugLog; 8 | 9 | public class NativeCrash { 10 | private static volatile boolean isInited = false; 11 | 12 | public static synchronized void init(@NonNull Context context) { 13 | if (isInited) { 14 | DebugLog.w("Native Crash has already init."); 15 | return; 16 | } 17 | 18 | File dumpDir = CrashDump.getAssignedDir(context, CrashDump.DIR_NATIVE); 19 | if (dumpDir != null) { 20 | NativeHandler.init(dumpDir.getAbsolutePath()); 21 | isInited = true; 22 | } else { 23 | DebugLog.w("Native Crash dump assigned directory is null."); 24 | } 25 | } 26 | 27 | public static void crash() { 28 | NativeHandler.crash(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /native-crash-core/src/main/java/cn/yan/crash/core/NativeHandler.java: -------------------------------------------------------------------------------- 1 | package cn.yan.crash.core; 2 | 3 | final class NativeHandler { 4 | static { 5 | System.loadLibrary("native-crash"); 6 | } 7 | 8 | public static native void init(String path); 9 | 10 | public static native void crash(); 11 | } -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/Android.mk: -------------------------------------------------------------------------------- 1 | ROOT_PATH := $(call my-dir) 2 | include $(ROOT_PATH)/third-breakpad/android/google_breakpad/Android.mk 3 | LOCAL_PATH := $(ROOT_PATH) 4 | include $(CLEAR_VARS) 5 | LOCAL_MODULE := native-crash 6 | LOCAL_SRC_FILES := NativeHandler.cpp 7 | LOCAL_STATIC_LIBRARIES += breakpad_client 8 | 9 | include $(BUILD_SHARED_LIBRARY) 10 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/Application.mk: -------------------------------------------------------------------------------- 1 | APP_STL := stlport_static 2 | APP_ABI := all 3 | APP_CXXFLAGS := -std=c++11 -D__STDC_LIMIT_MACROS -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/NativeHandler.cpp: -------------------------------------------------------------------------------- 1 | #include "cn_yan_crash_core_NativeHandler.h" 2 | #include "logcat.h" 3 | #include "client/linux/handler/exception_handler.h" 4 | #include "client/linux/handler/minidump_descriptor.h" 5 | 6 | namespace { 7 | bool DumpCallback(const google_breakpad::MinidumpDescriptor& descriptor, 8 | void* context, 9 | bool succeeded) { 10 | LOGD("Dump path: %s.\n", descriptor.path()); 11 | return succeeded; 12 | } 13 | } 14 | 15 | JNIEXPORT void JNICALL Java_cn_yan_crash_core_NativeHandler_init 16 | (JNIEnv* jniEnv, jobject obj, jstring path) { 17 | const char* filePath = jniEnv->GetStringUTFChars(path, JNI_FALSE); 18 | LOGD("Init file path is:%s.\n", filePath); 19 | google_breakpad::MinidumpDescriptor descriptor(filePath); 20 | google_breakpad::ExceptionHandler eh(descriptor, NULL, DumpCallback, 21 | NULL, true, -1); 22 | jniEnv->ReleaseStringUTFChars(path, filePath); 23 | LOGD("Init done.\n"); 24 | } 25 | 26 | JNIEXPORT void JNICALL Java_cn_yan_crash_core_NativeHandler_crash 27 | (JNIEnv* jniEnv, jobject obj) { 28 | LOGD("Start crash....\n"); 29 | volatile int* a = reinterpret_cast(NULL); 30 | *a = 1; 31 | LOGD("Crashed....\n"); 32 | } -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/cn_yan_crash_core_NativeHandler.h: -------------------------------------------------------------------------------- 1 | /* DO NOT EDIT THIS FILE - it is machine generated */ 2 | #include 3 | /* Header for class cn_yan_crash_core_NativeHandler */ 4 | 5 | #ifndef _Included_cn_yan_crash_core_NativeHandler 6 | #define _Included_cn_yan_crash_core_NativeHandler 7 | #ifdef __cplusplus 8 | extern "C" { 9 | #endif 10 | 11 | JNIEXPORT void JNICALL Java_cn_yan_crash_core_NativeHandler_init 12 | (JNIEnv *, jobject, jstring); 13 | 14 | JNIEXPORT void JNICALL Java_cn_yan_crash_core_NativeHandler_crash 15 | (JNIEnv*, jobject); 16 | 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | #endif 21 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/logcat.h: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #ifndef ANDROID_CRASH_LOGCAT_H 4 | #define ANDROID_CRASH_LOGCAT_H 5 | 6 | #ifdef __cplusplus 7 | extern "C" { 8 | #endif 9 | 10 | #define LOGCAT_DEBUG 1 11 | #define TAG "androidCrash" 12 | 13 | #if LOGCAT_DEBUG 14 | #define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,TAG ,__VA_ARGS__) 15 | #define LOGI(...) __android_log_print(ANDROID_LOG_INFO,TAG ,__VA_ARGS__) 16 | #define LOGW(...) __android_log_print(ANDROID_LOG_WARN,TAG ,__VA_ARGS__) 17 | #define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,TAG ,__VA_ARGS__) 18 | #define LOGF(...) __android_log_print(ANDROID_LOG_FATAL,TAG ,__VA_ARGS__) 19 | #else 20 | #define LOGD(...) NULL 21 | #define LOGI(...) NULL 22 | #define LOGW(...) NULL 23 | #define LOGE(...) NULL 24 | #define LOGF(...) NULL 25 | #endif 26 | 27 | #ifdef __cplusplus 28 | } 29 | #endif 30 | 31 | #endif //ANDROID_CRASH_LOGCAT_H 32 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/.travis.yml: -------------------------------------------------------------------------------- 1 | # Travis build integration. 2 | # https://docs.travis-ci.com/ 3 | language: cpp 4 | 5 | sudo: required 6 | 7 | addons: 8 | apt: 9 | sources: 10 | - ubuntu-toolchain-r-test 11 | packages: 12 | - clang 13 | - gcc-4.8 14 | - g++-4.8 15 | 16 | env: 17 | global: 18 | - secure: "FPczJ1u7FWGXOtUVf5AONeexfQDYnKRtuNs3phLwlPPAbgAlIc/WeTRSHC8DAb1T8IyPdN3Zi7cqLz0dvPol0iX1fWSfr8YdtW0ea8nUYH5ldmmp6H75FEUJUcISmYwL4WN7TldC6Hnzrlbw/0xmBH8gtAgddtBXKc9P9SwEZvM4OiFMHbMPwZEhRj+D95rfH12lgh3D16nbXGnx3rSNbHszvIxrU2VvlLo9Aa+hbmVj5CsBiNJjhDS64ie+VMTkuzcWNqLRYaGOCQ8ftKAlj/fjGfoKjPDN9dSJg9gW1FjOMPeQo93qhSc/hCmTq7sWxBJu48telinUgESdE5q/8gRf5J05ImWPntZAkC/wQkA20K7Kp/fH1CRaYXQMWKjts8c6dQZ5R4WxE4WXUo5rz573Ti9uyVTLys9whnzaib3YbqYv04irkhpgzo3rd8PF8SXpgK99ySQCcv/Dh7UQuXPpcaknOk2mBySXjQDgpQHHXDN2uUek1HEo5xit8fQuQw3TdPIZ9ZgzQ/c5/Dx6sLWAGEfVH9MN+hy6AiZnJ1JI+XF82kAf1pnf8WddHtlE7pAdWRFQt0iOj9T9esV1/o0VCJVzJLRdpKecF0sTpJxDuan6cFI0tNCkNjHFA5wJKYAvdOPAmYkqre7aIIqSOKy3Fjh9JP9CBJFy7eals9U=" 19 | 20 | # TODO: Add an OS X config. 21 | matrix: 22 | include: 23 | - os: linux 24 | compiler: gcc 25 | env: USE_CC=gcc-4.8 USE_CXX=g++-4.8 COVERITY_SCAN=true 26 | - os: linux 27 | compiler: clang 28 | 29 | before_install: ./scripts/travis-checkout.sh 30 | script: ./scripts/travis-build.sh 31 | 32 | notifications: 33 | email: 34 | - google-breakpad-dev@googlegroups.com 35 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/AUTHORS: -------------------------------------------------------------------------------- 1 | opensource@google.com 2 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/ChangeLog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/ChangeLog -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/NEWS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/NEWS -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | APP_CXXFLAGS := -std=c++11 -D__STDC_LIMIT_MACROS 33 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/appveyor.yml: -------------------------------------------------------------------------------- 1 | version: '{build}' 2 | 3 | environment: 4 | GYP_MSVS_VERSION: 2013 5 | 6 | platform: 7 | - Win32 8 | 9 | configuration: 10 | - Debug 11 | - Release 12 | 13 | # Use the source dir expected by gclient. 14 | clone_folder: c:\projects\breakpad\src 15 | 16 | # Before checkout. 17 | init: 18 | - cd %APPVEYOR_BUILD_FOLDER%\..\.. 19 | - appveyor DownloadFile https://storage.googleapis.com/chrome-infra/depot_tools.zip 20 | - 7z -bd x depot_tools.zip -odepot_tools 21 | - depot_tools\update_depot_tools 22 | - cd %APPVEYOR_BUILD_FOLDER% 23 | 24 | # After checkout. 25 | install: 26 | - PATH C:\projects\depot_tools;%PATH% 27 | - cd %APPVEYOR_BUILD_FOLDER%\.. 28 | - gclient config https://%APPVEYOR_REPO_PROVIDER%.com/%APPVEYOR_REPO_NAME% --unmanaged --name=src 29 | - gclient sync 30 | 31 | build_script: 32 | - cd %APPVEYOR_BUILD_FOLDER% 33 | - msbuild src\client\windows\breakpad_client.sln /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" /m /verbosity:normal 34 | - msbuild src\tools\windows\tools_windows.sln /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" /m /verbosity:normal 35 | 36 | test_script: 37 | - src\client\windows\%CONFIGURATION%\client_tests.exe 38 | - src\tools\windows\%CONFIGURATION%\dump_syms_unittest.exe 39 | 40 | artifacts: 41 | - path: '**\*.exe' 42 | - path: '**\*.lib' 43 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/autotools/root-test-driver: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # -E to keep the environment variables needed to run the tests. 3 | exec sudo -E "$@" 4 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/codereview.settings: -------------------------------------------------------------------------------- 1 | GERRIT_HOST: True 2 | GERRIT_SQUASH_UPLOADS: True 3 | CODE_REVIEW_SERVER: chromium-review.googlesource.com 4 | VIEW_VC: https://chromium.googlesource.com/breakpad/breakpad/+/ 5 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/default.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 13 | 14 | 17 | 18 | 22 | 23 | 27 | 28 | 32 | 33 | 37 | 38 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/docs/OWNERS: -------------------------------------------------------------------------------- 1 | * 2 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/docs/breakpad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/docs/breakpad.png -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/docs/contributing_to_breakpad.md: -------------------------------------------------------------------------------- 1 | # Introduction 2 | 3 | Thanks for thinking of contributing to Breakpad! Unfortunately there are some 4 | pesky legal issues to get out of the way, but they're quick and painless. 5 | 6 | ## Legal 7 | 8 | If you're doing work individually, not as part of any employment, you'll need to 9 | sign the Individual 11 | Contributor License Agreement. This agreement can be completed 12 | electronically. 13 | 14 | If you're contributing to Breakpad as part of your employment with another 15 | organization, you'll need to sign a Corporate 17 | Contributor License Agreement. Once completed this document will need to be 18 | faxed. 19 | 20 | **_IMPORTANT_**: The authors(you!) of the contributions will maintain all 21 | copyrights; the agreements you sign will grant rights to Google to use your 22 | work. 23 | 24 | Thanks, and if you have any questions let me know and I'll loop in the legal guy 25 | here to get you an answer. 26 | 27 | ## Technical 28 | 29 | Once you have signed the agreement you can be added to our contributors list and 30 | have write access to code. For full details on getting started see our trunk 31 | `README`. 32 | 33 | ## List of people who have signed contributor agreements 34 | 35 | None so far. 36 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/m4/ax_require_defined.m4: -------------------------------------------------------------------------------- 1 | # =========================================================================== 2 | # http://www.gnu.org/software/autoconf-archive/ax_require_defined.html 3 | # =========================================================================== 4 | # 5 | # SYNOPSIS 6 | # 7 | # AX_REQUIRE_DEFINED(MACRO) 8 | # 9 | # DESCRIPTION 10 | # 11 | # AX_REQUIRE_DEFINED is a simple helper for making sure other macros have 12 | # been defined and thus are available for use. This avoids random issues 13 | # where a macro isn't expanded. Instead the configure script emits a 14 | # non-fatal: 15 | # 16 | # ./configure: line 1673: AX_CFLAGS_WARN_ALL: command not found 17 | # 18 | # It's like AC_REQUIRE except it doesn't expand the required macro. 19 | # 20 | # Here's an example: 21 | # 22 | # AX_REQUIRE_DEFINED([AX_CHECK_LINK_FLAG]) 23 | # 24 | # LICENSE 25 | # 26 | # Copyright (c) 2014 Mike Frysinger 27 | # 28 | # Copying and distribution of this file, with or without modification, are 29 | # permitted in any medium without royalty provided the copyright notice 30 | # and this notice are preserved. This file is offered as-is, without any 31 | # warranty. 32 | 33 | #serial 1 34 | 35 | AC_DEFUN([AX_REQUIRE_DEFINED], [dnl 36 | m4_ifndef([$1], [m4_fatal([macro ]$1[ is not defined; is a m4 file missing?])]) 37 | ])dnl AX_REQUIRE_DEFINED 38 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/scripts/travis-checkout.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | get_depot_tools() { 5 | cd 6 | git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git 7 | PATH="$HOME/depot_tools:$PATH" 8 | } 9 | 10 | gclient_sync() { 11 | # Rename the source dir to match what gclient expects. 12 | srcdir=$(basename "$TRAVIS_BUILD_DIR") 13 | cd "${TRAVIS_BUILD_DIR}"/.. 14 | mv "${srcdir}" src 15 | gclient config --unmanaged https://github.com/google/breakpad.git 16 | gclient sync 17 | } 18 | 19 | main() { 20 | get_depot_tools 21 | gclient_sync 22 | } 23 | 24 | main "$@" 25 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/client/mac/handler/testcases/testdata/dump_syms_dwarf_data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/client/mac/handler/testcases/testdata/dump_syms_dwarf_data -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/English.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/English.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/English.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/English.lproj/Localizable.strings -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/crash_report_sender.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/crash_report_sender.icns -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/da.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/da.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/da.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/da.lproj/Localizable.strings -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/de.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/de.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/de.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/de.lproj/Localizable.strings -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/es.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/es.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/es.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/es.lproj/Localizable.strings -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/fr.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/fr.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/fr.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/fr.lproj/Localizable.strings -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/goArrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/goArrow.png -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/it.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/it.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/it.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/it.lproj/Localizable.strings -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/ja.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/ja.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/ja.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/ja.lproj/Localizable.strings -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/nl.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/nl.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/nl.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/nl.lproj/Localizable.strings -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/no.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/no.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/no.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/no.lproj/Localizable.strings -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/sl.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/sl.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/sl.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/sl.lproj/Localizable.strings -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/sv.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/sv.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/sv.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/sv.lproj/Localizable.strings -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/tr.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/tr.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/tr.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/client/mac/sender/tr.lproj/Localizable.strings -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/client/mac/testapp/English.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/client/mac/testapp/English.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/client/mac/testapp/bomb.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/client/mac/testapp/bomb.icns -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/client/mac/testapp/crashInMain: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/client/mac/testapp/crashInMain -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/client/mac/testapp/crashduringload: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/client/mac/testapp/crashduringload -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/client/windows/tests/crash_generation_app/crash_generation_app.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/client/windows/tests/crash_generation_app/crash_generation_app.ico -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/client/windows/tests/crash_generation_app/small.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/client/windows/tests/crash_generation_app/small.ico -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/common/android/include/asm-mips/README.md: -------------------------------------------------------------------------------- 1 | # asm-mips 2 | 3 | The files in this directory are almost direct copies from Android NDK r12, with 4 | the exception of changing the include guards to Breakpad ones. They are copied 5 | from the MIPS asm/ directory, but are meant to be used as replacements for both 6 | asm/ and machine/ includes since the files in each are largely duplicates. 7 | 8 | Some MIPS asm/ and all machine/ headers were removed in the move to unified NDK 9 | headers, so Breakpad fails to compile on newer NDK versions without these files. -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/common/path_helper.h: -------------------------------------------------------------------------------- 1 | // Copyright 2017, 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_PATH_HELPER_H 31 | #define GOOGLE_BREAKPAD_COMMON_PATH_HELPER_H 32 | 33 | #include 34 | 35 | #include "common/using_std_string.h" 36 | 37 | namespace google_breakpad { 38 | 39 | string BaseName(const string& path); 40 | string DirName(const string& path); 41 | 42 | } // namespace google_breakpad 43 | 44 | #endif // GOOGLE_BREAKPAD_COMMON_PATH_HELPER_H 45 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/common/stdio_wrapper.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, 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_STDIO_WRAPPER_H 31 | #define GOOGLE_BREAKPAD_COMMON_STDIO_WRAPPER_H 32 | 33 | #include 34 | 35 | #if defined(_MSC_VER) && MSC_VER < 1900 36 | #include 37 | 38 | #define snprintf _snprintf 39 | typedef SSIZE_T ssize_t; 40 | #endif 41 | 42 | 43 | #endif // GOOGLE_BREAKPAD_COMMON_STDIO_WRAPPER_H 44 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/google_breakpad/processor/proc_maps_linux.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_DEBUG_PROC_MAPS_LINUX_H_ 6 | #define BASE_DEBUG_PROC_MAPS_LINUX_H_ 7 | 8 | #include 9 | #include 10 | 11 | #include "common/using_std_string.h" 12 | #include "google_breakpad/common/breakpad_types.h" 13 | 14 | namespace google_breakpad { 15 | 16 | // Describes a region of mapped memory and the path of the file mapped. 17 | struct MappedMemoryRegion { 18 | enum Permission { 19 | READ = 1 << 0, 20 | WRITE = 1 << 1, 21 | EXECUTE = 1 << 2, 22 | PRIVATE = 1 << 3, // If set, region is private, otherwise it is shared. 23 | }; 24 | 25 | // The address range [start,end) of mapped memory. 26 | uint64_t start; 27 | uint64_t end; 28 | 29 | // Byte offset into |path| of the range mapped into memory. 30 | uint64_t offset; 31 | 32 | // Bitmask of read/write/execute/private/shared permissions. 33 | uint8_t permissions; 34 | 35 | // Major and minor devices. 36 | uint8_t major_device; 37 | uint8_t minor_device; 38 | 39 | // Value of the inode. 40 | uint64_t inode; 41 | 42 | // Name of the file mapped into memory. 43 | // 44 | // NOTE: path names aren't guaranteed to point at valid files. For example, 45 | // "[heap]" and "[stack]" are used to represent the location of the process' 46 | // heap and stack, respectively. 47 | string path; 48 | 49 | // The line from /proc//maps that this struct represents. 50 | string line; 51 | }; 52 | 53 | // Parses /proc//maps input data and stores in |regions|. Returns true 54 | // and updates |regions| if and only if all of |input| was successfully parsed. 55 | bool ParseProcMaps(const string& input, 56 | std::vector* regions); 57 | 58 | } // namespace google_breakpad 59 | 60 | #endif // BASE_DEBUG_PROC_MAPS_LINUX_H_ 61 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/convert_old_arm64_context.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2018, 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 PROCESSOR_CONVERT_OLD_ARM64_CONTEXT_H__ 31 | #define PROCESSOR_CONVERT_OLD_ARM64_CONTEXT_H__ 32 | 33 | #include "google_breakpad/common/minidump_cpu_arm64.h" 34 | 35 | namespace google_breakpad { 36 | 37 | void ConvertOldARM64Context(const MDRawContextARM64_Old& old, 38 | MDRawContextARM64* context); 39 | 40 | } // namespace google_breakpad 41 | 42 | #endif // PROCESSOR_CONVERT_OLD_ARM64_CONTEXT_H__ 43 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/microdump_stackwalk_test_vars: -------------------------------------------------------------------------------- 1 | MICRODUMP_SUPPORTED_ARCHS="arm arm64" 2 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 (https://github.com/google/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/ascii_read_av.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/ascii_read_av.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/ascii_read_av_block_write.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/ascii_read_av_block_write.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/ascii_read_av_clobber_write.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/ascii_read_av_clobber_write.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/ascii_read_av_conditional.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/ascii_read_av_conditional.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/ascii_read_av_then_jmp.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/ascii_read_av_then_jmp.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/ascii_read_av_xchg_write.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/ascii_read_av_xchg_write.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/ascii_write_av.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/ascii_write_av.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/ascii_write_av_arg_to_call.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/ascii_write_av_arg_to_call.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/exec_av_on_stack.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/exec_av_on_stack.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_divide_by_zero.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_divide_by_zero.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_executable_heap.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_executable_heap.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_executable_stack.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_executable_stack.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_inside_module_exe_region1.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_inside_module_exe_region1.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_inside_module_exe_region2.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_inside_module_exe_region2.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_jmp_to_0.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_jmp_to_0.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_jmp_to_module_not_exe_region.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_jmp_to_module_not_exe_region.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_null_dereference.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_null_dereference.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_null_read_av.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_null_read_av.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_outside_module.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_outside_module.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_overflow.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_overflow.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_raise_sigabrt.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_raise_sigabrt.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_stack_pointer_in_module.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_stack_pointer_in_module.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_stack_pointer_in_stack.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_stack_pointer_in_stack.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_stack_pointer_in_stack_alt_name.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_stack_pointer_in_stack_alt_name.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_stacksmash.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_stacksmash.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_write_to_nonwritable_module.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_write_to_nonwritable_module.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_write_to_nonwritable_region_math.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_write_to_nonwritable_region_math.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_write_to_outside_module.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_write_to_outside_module.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_write_to_outside_module_via_math.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_write_to_outside_module_via_math.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_write_to_under_4k.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/linux_write_to_under_4k.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/microdump.stackwalk.machine_readable-arm.out: -------------------------------------------------------------------------------- 1 | OS|Android|OS VERSION INFO 2 | CPU|arm||2 3 | GPU|OpenGL ES 3.0 V@104.0 AU@ (GIT@Id3510ff6dc)|Qualcomm|Adreno (TM) 330 4 | Crash||0x0|0 5 | Module|breakpad_unittests||breakpad_unittests|DA7778FB66018A4E9B4110ED06E730D00|0xaaacd000|0xaab48fff|0 6 | Module|libnetd_client.so||libnetd_client.so|56B149396A4DAF176E26B4A85DA87BF30|0xf6fca000|0xf6fcdfff|0 7 | Module|libstdc++.so||libstdc++.so|DFCD7772F3A5BD1E84A50C4DBFDE6F570|0xf6fee000|0xf6ff1fff|0 8 | Module|libm.so||libm.so|AE3467401278371A956801500FC8187D0|0xf6ff2000|0xf700afff|0 9 | Module|liblog.so||liblog.so|0A492DEF82842051996A468D87F23F010|0xf700c000|0xf7012fff|0 10 | Module|libc.so||libc.so|167F187B09A27F7444EF989603AAFD3D0|0xf7014000|0xf706dfff|0 11 | 12 | 0|0|breakpad_unittests|MicrodumpWriterTest_Setup_Test::TestBody|/s/clank/src/out_arm/Release/../../testing/gtest/include/gtest/gtest.h|1481|0x1 13 | 0|1|breakpad_unittests|testing::Test::Run|/s/clank/src/out_arm/Release/../../testing/gtest/src/gtest.cc|2435|0x17 14 | 0|2|breakpad_unittests|testing::TestInfo::Run|/s/clank/src/out_arm/Release/../../testing/gtest/src/gtest.cc|2610|0x5 15 | 0|3|breakpad_unittests|testing::TestCase::Run|/s/clank/src/out_arm/Release/../../testing/gtest/src/gtest.cc|2728|0x3 16 | 0|4|breakpad_unittests|testing::internal::UnitTestImpl::RunAllTests|/s/clank/src/out_arm/Release/../../testing/gtest/src/gtest.cc|4591|0x3 17 | 0|5|breakpad_unittests|testing::UnitTest::Run|/s/clank/src/out_arm/Release/../../testing/gtest/src/gtest.cc|2418|0x5 18 | 0|6|breakpad_unittests|main|/s/clank/src/out_arm/Release/../../testing/gtest/include/gtest/gtest.h|2326|0x3 19 | 0|7|libc.so||||0x11e9d 20 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/microdump.stackwalk.machine_readable-arm64.out: -------------------------------------------------------------------------------- 1 | OS|Android|OS 64 VERSION INFO 2 | CPU|arm64||2 3 | GPU||| 4 | Crash||0x0|0 5 | Module|breakpad_unittests||breakpad_unittests|D6D1FEC9A15DE7F38A236898871A2E770|0x555f608000|0x555f6c7fff|0 6 | Module|libnetd_client.so||libnetd_client.so|7735F44BA6D7C27FD5C3636A43369B7C0|0x7f801f6000|0x7f80208fff|0 7 | Module|libstdc++.so||libstdc++.so|380C0B7CD8FA3F094BC3BA58A81CBAD00|0x7f80229000|0x7f8023cfff|0 8 | Module|libm.so||libm.so|F832D47D1E237E46D835991594DA6E890|0x7f8023d000|0x7f80279fff|0 9 | Module|liblog.so||liblog.so|C407B93F87A835BE05451FC7B0B3E65E0|0x7f8027b000|0x7f80293fff|0 10 | Module|libc.so||libc.so|479D5438753E27F019F2C9980DDBF4F30|0x7f80295000|0x7f80332fff|0 11 | Module|libsigchain.so||libsigchain.so|9DA3FF8EF9CA0FDC481292EE530DF6EC0|0x7f80341000|0x7f80353fff|0 12 | Module|linux-gate.so||linux-gate.so|672B2CD6CF8AF6C43BD70F2AB02B3D0C0|0x7f80358000|0x7f80359fff|0 13 | 14 | 0|0|breakpad_unittests|MicrodumpWriterTest_Setup_Test::TestBody|/s/clank/src/out/Release/../../breakpad/src/client/linux/microdump_writer/microdump_writer_unittest.cc|77|0xc 15 | 0|1|breakpad_unittests|testing::internal::HandleExceptionsInMethodIfSupported|/s/clank/src/out/Release/../../testing/gtest/src/gtest.cc|2418|0x4 16 | 0|2|breakpad_unittests|testing::Test::Run|/s/clank/src/out/Release/../../testing/gtest/src/gtest.cc|2435|0x14 17 | 0|3|breakpad_unittests|testing::TestInfo::Run|/s/clank/src/out/Release/../../testing/gtest/src/gtest.cc|2610|0x4 18 | 0|4|breakpad_unittests|testing::TestCase::Run|/s/clank/src/out/Release/../../testing/gtest/src/gtest.cc|2728|0x0 19 | 0|5|breakpad_unittests|testing::internal::UnitTestImpl::RunAllTests|/s/clank/src/out/Release/../../testing/gtest/src/gtest.cc|4591|0x0 20 | 0|6|breakpad_unittests|testing::UnitTest::Run|/s/clank/src/out/Release/../../testing/gtest/src/gtest.cc|2418|0x4 21 | 0|7|breakpad_unittests|main|/s/clank/src/out/Release/../../testing/gtest/include/gtest/gtest.h|2326|0x0 22 | 0|8|libc.so||||0x17388 23 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/minidump2.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/minidump2.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | GPU||| 4 | Crash|EXCEPTION_ACCESS_VIOLATION_WRITE|0x45|0 5 | Module|test_app.exe||test_app.pdb|5A9832E5287241C1838ED98914E9B7FF1|0x00400000|0x0042cfff|1 6 | Module|dbghelp.dll|5.1.2600.2180|dbghelp.pdb|39559573E21B46F28E286923BE9E6A761|0x59a60000|0x59b00fff|0 7 | Module|imm32.dll|5.1.2600.2180|imm32.pdb|2C17A49C251B4C8EB9E2AD13D7D9EA162|0x76390000|0x763acfff|0 8 | Module|psapi.dll|5.1.2600.2180|psapi.pdb|A5C3A1F9689F43D8AD228A09293889702|0x76bf0000|0x76bfafff|0 9 | Module|ole32.dll|5.1.2600.2726|ole32.pdb|683B65B246F4418796D2EE6D4C55EB112|0x774e0000|0x7761cfff|0 10 | Module|version.dll|5.1.2600.2180|version.pdb|180A90C40384463E82DDC45B2C8AB76E2|0x77c00000|0x77c07fff|0 11 | Module|msvcrt.dll|7.0.2600.2180|msvcrt.pdb|A678F3C30DED426B839032B996987E381|0x77c10000|0x77c67fff|0 12 | Module|user32.dll|5.1.2600.2622|user32.pdb|EE2B714D83A34C9D88027621272F83262|0x77d40000|0x77dcffff|0 13 | Module|advapi32.dll|5.1.2600.2180|advapi32.pdb|455D6C5F184D45BBB5C5F30F829751142|0x77dd0000|0x77e6afff|0 14 | Module|rpcrt4.dll|5.1.2600.2180|rpcrt4.pdb|BEA45A721DA141DAA3BA86B3A20311532|0x77e70000|0x77f00fff|0 15 | Module|gdi32.dll|5.1.2600.2818|gdi32.pdb|C0EA66BE00A64BD7AEF79E443A91869C2|0x77f10000|0x77f56fff|0 16 | Module|kernel32.dll|5.1.2600.2945|kernel32.pdb|BCE8785C57B44245A669896B6A19B9542|0x7c800000|0x7c8f3fff|0 17 | Module|ntdll.dll|5.1.2600.2180|ntdll.pdb|36515FB5D04345E491F672FA2E2878C02|0x7c900000|0x7c9affff|0 18 | 19 | 0|0|test_app.exe|`anonymous namespace'::CrashFunction|c:\test_app.cc|58|0x3 20 | 0|1|test_app.exe|main|c:\test_app.cc|65|0x5 21 | 0|2|test_app.exe|__tmainCRTStartup|f:\sp\vctools\crt_bld\self_x86\crt\src\crt0.c|327|0x12 22 | 0|3|kernel32.dll|BaseProcessStart|||0x23 23 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | GPU: UNKNOWN 8 | 9 | Crash reason: EXCEPTION_ACCESS_VIOLATION_WRITE 10 | Crash address: 0x45 11 | Process uptime: 0 seconds 12 | 13 | Thread 0 (crashed) 14 | 0 test_app.exe!`anonymous namespace'::CrashFunction [test_app.cc : 58 + 0x3] 15 | eip = 0x0040429e esp = 0x0012fe84 ebp = 0x0012fe88 ebx = 0x7c80abc1 16 | esi = 0x00000002 edi = 0x00000a28 eax = 0x00000045 ecx = 0x0012fe94 17 | edx = 0x0042bc58 efl = 0x00010246 18 | Found by: given as instruction pointer in context 19 | 1 test_app.exe!main [test_app.cc : 65 + 0x5] 20 | eip = 0x00404200 esp = 0x0012fe90 ebp = 0x0012ff70 21 | Found by: call frame info 22 | 2 test_app.exe!__tmainCRTStartup [crt0.c : 327 + 0x12] 23 | eip = 0x004053ec esp = 0x0012ff78 ebp = 0x0012ffc0 24 | Found by: call frame info 25 | 3 kernel32.dll!BaseProcessStart + 0x23 26 | eip = 0x7c816fd7 esp = 0x0012ffc8 ebp = 0x0012fff0 27 | Found by: call frame info 28 | 29 | Loaded modules: 30 | 0x00400000 - 0x0042cfff test_app.exe ??? (main) 31 | 0x59a60000 - 0x59b00fff dbghelp.dll 5.1.2600.2180 32 | 0x76390000 - 0x763acfff imm32.dll 5.1.2600.2180 33 | 0x76bf0000 - 0x76bfafff psapi.dll 5.1.2600.2180 34 | 0x774e0000 - 0x7761cfff ole32.dll 5.1.2600.2726 35 | 0x77c00000 - 0x77c07fff version.dll 5.1.2600.2180 36 | 0x77c10000 - 0x77c67fff msvcrt.dll 7.0.2600.2180 37 | 0x77d40000 - 0x77dcffff user32.dll 5.1.2600.2622 38 | 0x77dd0000 - 0x77e6afff advapi32.dll 5.1.2600.2180 39 | 0x77e70000 - 0x77f00fff rpcrt4.dll 5.1.2600.2180 40 | 0x77f10000 - 0x77f56fff gdi32.dll 5.1.2600.2818 41 | 0x7c800000 - 0x7c8f3fff kernel32.dll 5.1.2600.2945 42 | 0x7c900000 - 0x7c9affff ntdll.dll 5.1.2600.2180 43 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/module3_bad.out: -------------------------------------------------------------------------------- 1 | MODULE windows x86 333333333333333333333333333333333 module3.pdb 2 | FILE 1 file1.cc 3 | FUNC 1000 4 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/null_read_av.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/null_read_av.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/null_write_av.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/null_write_av.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/read_av_clobber_write.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/read_av_clobber_write.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/read_av_conditional.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/read_av_conditional.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/read_av_non_null.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/read_av_non_null.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/stack_exhaustion.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/stack_exhaustion.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/symbols/microdump/crash_example/6E72E2F1A5F59AB3D51356FDFE394D490/crash_example.sym: -------------------------------------------------------------------------------- 1 | MODULE Linux mips 6E72E2F1A5F59AB3D51356FDFE394D490 crash_example 2 | FILE 0 /s/breakpad/src/tools/linux/crash_example.cc 3 | FUNC 80a8 9c 0 google_breakpad::MinidumpDescriptor::MinidumpDescriptor 4 | 80a8 20 75 8 5 | 80c8 38 78 8 6 | 8100 10 78 8 7 | 8110 14 78 8 8 | 8124 10 78 8 9 | 8134 10 78 8 10 | FUNC 815c a0 0 DumpCallback 11 | 815c 2c 13 37 12 | 8188 1c 14 37 13 | 81a4 14 15 37 14 | 81b8 1c 15 37 15 | 81d4 14 17 37 16 | 81e8 4 18 37 17 | 81ec 10 19 37 18 | FUNC 81fc 2c 0 Leaf 19 | 81fc 10 21 37 20 | 820c 8 22 37 21 | 8214 8 23 37 22 | 821c 4 25 37 23 | 8220 8 26 37 24 | FUNC 8228 58 0 blaTest 25 | 8228 1c 28 37 26 | 8244 c 29 37 27 | 8250 20 30 37 28 | 8270 10 31 37 29 | FUNC 8280 40 0 Crash 30 | 8280 18 33 37 31 | 8298 4 34 37 32 | 829c 14 35 37 33 | 82b0 10 36 37 34 | FUNC 831c f4 0 main 35 | 831c 2c 40 37 36 | 8348 c 40 37 37 | 8354 18 41 37 38 | 836c 34 43 37 39 | 83a0 10 44 37 40 | 83b0 4 45 37 41 | 83b4 14 43 37 42 | 83c8 18 45 37 43 | 83e0 30 46 37 44 | PUBLIC 831c 0 main 45 | STACK CFI INIT 8228 58 .cfa: $sp 0 + .ra: $ra 46 | STACK CFI 822c .cfa: $sp 32 + 47 | STACK CFI 8234 $gp: .cfa -16 + ^ .ra: .cfa -8 + ^ 48 | STACK CFI 827c $gp: $gp .cfa: $sp 0 + .ra: .ra 49 | STACK CFI INIT 8280 40 .cfa: $sp 0 + .ra: $ra 50 | STACK CFI 8284 .cfa: $sp 32 + 51 | STACK CFI 828c $gp: .cfa -16 + ^ .ra: .cfa -8 + ^ 52 | STACK CFI 82bc $gp: $gp .cfa: $sp 0 + .ra: .ra 53 | STACK CFI INIT 831c f4 .cfa: $sp 0 + .ra: $ra 54 | STACK CFI 8320 .cfa: $sp 352 + 55 | STACK CFI 832c $gp: .cfa -16 + ^ $s0: .cfa -24 + ^ .ra: .cfa -8 + ^ 56 | STACK CFI 840c $gp: $gp $s0: $s0 .cfa: $sp 0 + .ra: .ra 57 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/symbols/microdump/crash_example/8F36148CC4647A8116CAF2A25F591F570/crash_example.sym: -------------------------------------------------------------------------------- 1 | MODULE Linux mips 8F36148CC4647A8116CAF2A25F591F570 crash_example 2 | FILE 0 /home/rtrk/chromium_mips/chromium/src/out-android-mips/Debug/../../breakpad/src/tools/linux/crash_example.cc 3 | FUNC 2ea4 b4 0 google_breakpad::MinidumpDescriptor::MinidumpDescriptor 4 | 2ea4 20 75 6 5 | 2ec4 40 78 6 6 | 2f04 18 78 6 7 | 2f1c 14 78 6 8 | 2f30 18 78 6 9 | 2f48 10 78 6 10 | FUNC 2f6c c4 0 DumpCallback 11 | 2f6c 28 13 33 12 | 2f94 28 14 33 13 | 2fbc 1c 15 33 14 | 2fd8 28 15 33 15 | 3000 1c 17 33 16 | 301c 4 18 33 17 | 3020 10 19 33 18 | FUNC 3030 28 0 Leaf 19 | 3030 4 21 33 20 | 3034 c 22 33 21 | 3040 c 23 33 22 | 304c 4 25 33 23 | 3050 8 26 33 24 | FUNC 3058 60 0 blaTest 25 | 3058 1c 28 33 26 | 3074 c 29 33 27 | 3080 28 30 33 28 | 30a8 10 31 33 29 | FUNC 30b8 48 0 Crash 30 | 30b8 18 33 33 31 | 30d0 4 34 33 32 | 30d4 1c 35 33 33 | 30f0 10 36 33 34 | FUNC 316c 120 0 main 35 | 316c 24 40 33 36 | 3190 c 40 33 37 | 319c 20 41 33 38 | 31bc 40 43 33 39 | 31fc 18 44 33 40 | 3214 4 45 33 41 | 3218 1c 43 33 42 | 3234 20 45 33 43 | 3254 38 46 33 44 | PUBLIC 316c 0 main 45 | STACK CFI INIT 30b8 48 .cfa: $sp 39792944 + .ra: $ra 46 | STACK CFI 30c8 .cfa: $sp 40 + 47 | STACK CFI 30d0 .ra: .cfa -4 + ^ 48 | STACK CFI 30f8 .cfa: $sp 0 + .ra: .ra 49 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/write_av_non_null.dmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/processor/testdata/write_av_non_null.dmp -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/third_party/curl/types.h: -------------------------------------------------------------------------------- 1 | /* not used */ 2 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/third_party/libdisasm/README.breakpad: -------------------------------------------------------------------------------- 1 | Name: libdisasm 2 | URL: https://sourceforge.net/projects/bastard/files/libdisasm/0.23/libdisasm-0.23.tar.gz/download 3 | Version: 0.23 4 | License: Clarified-Artistic 5 | License File: LICENSE 6 | 7 | Description: 8 | This contains a copy of libdisasm. It is no longer under development upstream, 9 | so we keep a copy here to maintain fixes ourselves. 10 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/third_party/mac_headers/README: -------------------------------------------------------------------------------- 1 | These headers were copied from the Mac OS X 10.7 SDK to enable building 2 | the Mac dump_syms code that processes Mach-O files on Linux. 3 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/third_party/mac_headers/architecture/byte_order.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 1999-2008 Apple Computer, Inc. All rights reserved. 3 | * 4 | * @APPLE_LICENSE_HEADER_START@ 5 | * 6 | * This file contains Original Code and/or Modifications of Original Code 7 | * as defined in and that are subject to the Apple Public Source License 8 | * Version 2.0 (the 'License'). You may not use this file except in 9 | * compliance with the License. Please obtain a copy of the License at 10 | * http://www.opensource.apple.com/apsl/ and read it before using this 11 | * file. 12 | * 13 | * The Original Code and all software distributed under the License are 14 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 15 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 16 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 17 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 18 | * Please see the License for the specific language governing rights and 19 | * limitations under the License. 20 | * 21 | * @APPLE_LICENSE_HEADER_END@ 22 | */ 23 | /* 24 | * Copyright (c) 1992 NeXT Computer, Inc. 25 | * 26 | * Byte ordering conversion. 27 | * 28 | */ 29 | /* This file mostly left blank */ 30 | 31 | #ifndef _ARCHITECTURE_BYTE_ORDER_H_ 32 | #define _ARCHITECTURE_BYTE_ORDER_H_ 33 | 34 | /* 35 | * Identify the byte order 36 | * of the current host. 37 | */ 38 | 39 | enum NXByteOrder { 40 | NX_UnknownByteOrder, 41 | NX_LittleEndian, 42 | NX_BigEndian 43 | }; 44 | 45 | #endif /* _ARCHITECTURE_BYTE_ORDER_H_ */ 46 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/third_party/mac_headers/i386/_types.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved. 3 | * 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ 5 | * 6 | * This file contains Original Code and/or Modifications of Original Code 7 | * as defined in and that are subject to the Apple Public Source License 8 | * Version 2.0 (the 'License'). You may not use this file except in 9 | * compliance with the License. The rights granted to you under the License 10 | * may not be used to create, or enable the creation or redistribution of, 11 | * unlawful or unlicensed copies of an Apple operating system, or to 12 | * circumvent, violate, or enable the circumvention or violation of, any 13 | * terms of an Apple operating system software license agreement. 14 | * 15 | * Please obtain a copy of the License at 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. 17 | * 18 | * The Original Code and all software distributed under the License are 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 23 | * Please see the License for the specific language governing rights and 24 | * limitations under the License. 25 | * 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ 27 | */ 28 | #ifndef _BSD_I386__TYPES_H_ 29 | #define _BSD_I386__TYPES_H_ 30 | 31 | typedef long __darwin_intptr_t; 32 | typedef unsigned int __darwin_natural_t; 33 | 34 | #endif /* _BSD_I386__TYPES_H_ */ 35 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/third_party/mac_headers/mach/machine/boolean.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2000-2007 Apple Inc. All rights reserved. 3 | * 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ 5 | * 6 | * This file contains Original Code and/or Modifications of Original Code 7 | * as defined in and that are subject to the Apple Public Source License 8 | * Version 2.0 (the 'License'). You may not use this file except in 9 | * compliance with the License. The rights granted to you under the License 10 | * may not be used to create, or enable the creation or redistribution of, 11 | * unlawful or unlicensed copies of an Apple operating system, or to 12 | * circumvent, violate, or enable the circumvention or violation of, any 13 | * terms of an Apple operating system software license agreement. 14 | * 15 | * Please obtain a copy of the License at 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. 17 | * 18 | * The Original Code and all software distributed under the License are 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 23 | * Please see the License for the specific language governing rights and 24 | * limitations under the License. 25 | * 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ 27 | */ 28 | 29 | #ifndef _MACH_MACHINE_BOOLEAN_H_ 30 | #define _MACH_MACHINE_BOOLEAN_H_ 31 | 32 | #if defined (__i386__) || defined(__x86_64__) 33 | #include "mach/i386/boolean.h" 34 | #elif defined (__arm__) 35 | #include "mach/arm/boolean.h" 36 | #else 37 | #error architecture not supported 38 | #endif 39 | 40 | #endif /* _MACH_MACHINE_BOOLEAN_H_ */ 41 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/third_party/mac_headers/mach/machine/thread_state.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is a stub with the bare minimum needed to make things work. 3 | */ 4 | #ifndef _MACH_MACHINE_THREAD_STATE_H_ 5 | #define _MACH_MACHINE_THREAD_STATE_H_ 6 | 7 | #define THREAD_STATE_MAX 1 8 | 9 | #endif /* _MACH_MACHINE_THREAD_STATE_H_ */ 10 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/third_party/mac_headers/mach/machine/thread_status.h: -------------------------------------------------------------------------------- 1 | /* This file intentionally left blank */ 2 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/third_party/mac_headers/mach/machine/vm_types.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2000-2007 Apple Inc. All rights reserved. 3 | * 4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ 5 | * 6 | * This file contains Original Code and/or Modifications of Original Code 7 | * as defined in and that are subject to the Apple Public Source License 8 | * Version 2.0 (the 'License'). You may not use this file except in 9 | * compliance with the License. The rights granted to you under the License 10 | * may not be used to create, or enable the creation or redistribution of, 11 | * unlawful or unlicensed copies of an Apple operating system, or to 12 | * circumvent, violate, or enable the circumvention or violation of, any 13 | * terms of an Apple operating system software license agreement. 14 | * 15 | * Please obtain a copy of the License at 16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. 17 | * 18 | * The Original Code and all software distributed under the License are 19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 23 | * Please see the License for the specific language governing rights and 24 | * limitations under the License. 25 | * 26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ 27 | */ 28 | 29 | #ifndef _MACH_MACHINE_VM_TYPES_H_ 30 | #define _MACH_MACHINE_VM_TYPES_H_ 31 | 32 | #if defined (__i386__) || defined(__x86_64__) 33 | #include "mach/i386/vm_types.h" 34 | #elif defined (__arm__) 35 | #include "mach/arm/vm_types.h" 36 | #else 37 | #error architecture not supported 38 | #endif 39 | 40 | #endif /* _MACH_MACHINE_VM_TYPES_H_ */ 41 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/third_party/musl/README: -------------------------------------------------------------------------------- 1 | 2 | musl libc 3 | 4 | musl, pronounced like the word "mussel", is an MIT-licensed 5 | implementation of the standard C library targetting the Linux syscall 6 | API, suitable for use in a wide range of deployment environments. musl 7 | offers efficient static and dynamic linking support, lightweight code 8 | and low runtime overhead, strong fail-safe guarantees under correct 9 | usage, and correctness in the sense of standards conformance and 10 | safety. musl is built on the principle that these goals are best 11 | achieved through simple code that is easy to understand and maintain. 12 | 13 | The 1.1 release series for musl features coverage for all interfaces 14 | defined in ISO C99 and POSIX 2008 base, along with a number of 15 | non-standardized interfaces for compatibility with Linux, BSD, and 16 | glibc functionality. 17 | 18 | For basic installation instructions, see the included INSTALL file. 19 | Information on full musl-targeted compiler toolchains, system 20 | bootstrapping, and Linux distributions built on musl can be found on 21 | the project website: 22 | 23 | http://www.musl-libc.org/ 24 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/third_party/musl/README.breakpad: -------------------------------------------------------------------------------- 1 | This directory contains the elf header from 2 | https://git.musl-libc.org/cgit/musl/tree/ 3 | that is required to get ELF working in dump_syms on Mac OS X. 4 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/third_party/musl/VERSION: -------------------------------------------------------------------------------- 1 | 1.1.14 2 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/tools/windows/binaries/dump_syms.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/tools/windows/binaries/dump_syms.exe -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/tools/windows/binaries/symupload.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/tools/windows/binaries/symupload.exe -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/tools/windows/dump_syms/testdata/dump_syms_regtest.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/tools/windows/dump_syms/testdata/dump_syms_regtest.pdb -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/tools/windows/dump_syms/testdata/dump_syms_regtest64.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/tools/windows/dump_syms/testdata/dump_syms_regtest64.exe -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/tools/windows/dump_syms/testdata/dump_syms_regtest64.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/tools/windows/dump_syms/testdata/dump_syms_regtest64.pdb -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/tools/windows/dump_syms/testdata/omap_reorder_bbs.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/tools/windows/dump_syms/testdata/omap_reorder_bbs.pdb -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/tools/windows/dump_syms/testdata/omap_reorder_funcs.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/tools/windows/dump_syms/testdata/omap_reorder_funcs.pdb -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/tools/windows/dump_syms/testdata/omap_stretched.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/tools/windows/dump_syms/testdata/omap_stretched.pdb -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/tools/windows/dump_syms/testdata/omap_stretched_filled.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/src/main/jni/third-breakpad/src/tools/windows/dump_syms/testdata/omap_stretched_filled.pdb -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/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 | if %VisualStudioVersion% == 14.0 set GYP_MSVS_VERSION=2015 16 | gyp tools_windows.gyp 17 | msbuild tools_windows.sln /p:Configuration=Release /t:Clean,Build 18 | copy Release\symupload.exe binaries\ 19 | copy Release\dump_syms.exe binaries\ 20 | git add binaries 21 | git commit -m "Built Windows binaries" 22 | echo Done! 23 | popd 24 | -------------------------------------------------------------------------------- /native-crash-core/src/main/jni/third-breakpad/src/tools/windows/tools_windows.gyp: -------------------------------------------------------------------------------- 1 | # Copyright 2017 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 | { 31 | 'includes': [ 32 | '../../build/common.gypi', 33 | ], 34 | 'targets': [ 35 | { 36 | 'target_name': 'build_all', 37 | 'type': 'none', 38 | 'dependencies': [ 39 | './converter/ms_symbol_server_converter.gyp:*', 40 | './dump_syms/dump_syms.gyp:*', 41 | './symupload/symupload.gyp:*', 42 | ], 43 | }, 44 | ], 45 | } 46 | -------------------------------------------------------------------------------- /native-crash-core/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | crash-core 3 | 4 | -------------------------------------------------------------------------------- /native-crash-core/src/test/java/cn/yan/crash/core/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package cn.yan.crash.core; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /native-crash-core/tools/dump_syms: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/tools/dump_syms -------------------------------------------------------------------------------- /native-crash-core/tools/microdump_stackwalk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanbober/android-crash/7565135a7bc4eeaff0d8a664ec62d381db7ea7e5/native-crash-core/tools/microdump_stackwalk -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':test-demo-app', ':native-crash-core', ':java-crash-core', ':android-crash-core', ':crash-gradle-plugin', ':base-crash-core' 2 | -------------------------------------------------------------------------------- /test-demo-app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /test-demo-app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | apply plugin: 'kotlin-android' 3 | apply plugin: 'kotlin-android-extensions' 4 | 5 | apply plugin: 'android-crash' 6 | 7 | android { 8 | compileSdkVersion 27 9 | defaultConfig { 10 | applicationId "cn.yan.android.crash" 11 | minSdkVersion 14 12 | targetSdkVersion 27 13 | versionCode 1 14 | versionName "1.0" 15 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 16 | 17 | ndk { 18 | abiFilters "armeabi-v7a" 19 | } 20 | } 21 | buildTypes { 22 | release { 23 | minifyEnabled false 24 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 25 | } 26 | } 27 | } 28 | 29 | dependencies { 30 | implementation fileTree(dir: 'libs', include: ['*.jar']) 31 | implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" 32 | implementation 'com.android.support:appcompat-v7:27.1.1' 33 | implementation 'com.android.support.constraint:constraint-layout:1.1.2' 34 | testImplementation 'junit:junit:4.12' 35 | androidTestImplementation 'com.android.support.test:runner:1.0.2' 36 | androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' 37 | 38 | compile project(':native-crash-core') 39 | } 40 | -------------------------------------------------------------------------------- /test-demo-app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /test-demo-app/src/androidTest/java/cn/yan/android/crash/ExampleInstrumentedTest.kt: -------------------------------------------------------------------------------- 1 | package cn.yan.android.crash 2 | 3 | import android.support.test.InstrumentationRegistry 4 | import android.support.test.runner.AndroidJUnit4 5 | 6 | import org.junit.Test 7 | import org.junit.runner.RunWith 8 | 9 | import org.junit.Assert.* 10 | 11 | /** 12 | * Instrumented test, which will execute on an Android device. 13 | * 14 | * See [testing documentation](http://d.android.com/tools/testing). 15 | */ 16 | @RunWith(AndroidJUnit4::class) 17 | class ExampleInstrumentedTest { 18 | @Test 19 | fun useAppContext() { 20 | // Context of the app under test. 21 | val appContext = InstrumentationRegistry.getTargetContext() 22 | assertEquals("cn.yan.android.crash", appContext.packageName) 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /test-demo-app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /test-demo-app/src/main/java/cn/yan/android/crash/DemoActivity.kt: -------------------------------------------------------------------------------- 1 | package cn.yan.android.crash 2 | 3 | import android.content.pm.PackageManager 4 | import android.os.Bundle 5 | import android.support.v4.app.ActivityCompat 6 | import android.support.v7.app.AppCompatActivity 7 | import android.widget.Button 8 | import cn.yan.crash.core.NativeCrash 9 | 10 | class DemoActivity : AppCompatActivity() { 11 | 12 | override fun onCreate(savedInstanceState: Bundle?) { 13 | super.onCreate(savedInstanceState) 14 | setContentView(R.layout.activity_demo) 15 | 16 | val permissions = arrayOf("android.permission.READ_EXTERNAL_STORAGE", 17 | "android.permission.WRITE_EXTERNAL_STORAGE") 18 | permissions.forEach { 19 | val grant = ActivityCompat.checkSelfPermission(this, it) 20 | if (grant != PackageManager.PERMISSION_GRANTED) { 21 | ActivityCompat.requestPermissions(this, arrayOf(it), 1) 22 | } 23 | } 24 | 25 | findViewById