| cc_defaults { |
| name: "debuggerd_defaults", |
| defaults: ["linux_bionic_supported"], |
| cflags: [ |
| "-Wall", |
| "-Wextra", |
| "-Werror", |
| "-Wno-nullability-completeness", |
| "-Os", |
| ], |
| |
| // util.cpp gets async signal safe logging via libc_logging, |
| // which defines its interface in bionic private headers. |
| include_dirs: ["bionic/libc"], |
| |
| local_include_dirs: ["include"], |
| } |
| |
| // Utility library to tombstoned and get an output fd. |
| cc_library_static { |
| name: "libtombstoned_client", |
| defaults: ["debuggerd_defaults"], |
| srcs: [ |
| "tombstoned_client.cpp", |
| "util.cpp", |
| ], |
| |
| whole_static_libs: [ |
| "libc_logging", |
| "libcutils", |
| "libbase", |
| ], |
| } |
| |
| // Core implementation, linked into libdebuggerd_handler and the dynamic linker. |
| cc_library_static { |
| name: "libdebuggerd_handler_core", |
| defaults: ["debuggerd_defaults"], |
| srcs: ["handler/debuggerd_handler.cpp"], |
| |
| whole_static_libs: [ |
| "libc_logging", |
| "libdebuggerd", |
| ], |
| |
| export_include_dirs: ["include"], |
| } |
| |
| // Implementation with a no-op fallback. |
| cc_library_static { |
| name: "libdebuggerd_handler", |
| defaults: ["debuggerd_defaults"], |
| srcs: ["handler/debuggerd_fallback_nop.cpp"], |
| |
| whole_static_libs: [ |
| "libdebuggerd_handler_core", |
| ], |
| |
| export_include_dirs: ["include"], |
| } |
| |
| // Fallback implementation. |
| cc_library_static { |
| name: "libdebuggerd_handler_fallback", |
| defaults: ["debuggerd_defaults"], |
| srcs: [ |
| "handler/debuggerd_fallback.cpp", |
| ], |
| |
| whole_static_libs: [ |
| "libdebuggerd_handler_core", |
| "libtombstoned_client", |
| "libbase", |
| "libdebuggerd", |
| "libbacktrace", |
| "libunwind", |
| "liblzma", |
| "libcutils", |
| ], |
| |
| export_include_dirs: ["include"], |
| } |
| |
| cc_library { |
| name: "libdebuggerd_client", |
| defaults: ["debuggerd_defaults"], |
| srcs: [ |
| "client/debuggerd_client.cpp", |
| "util.cpp", |
| ], |
| |
| shared_libs: [ |
| "libbase", |
| "libcutils", |
| ], |
| |
| export_include_dirs: ["include"], |
| } |
| |
| cc_library_static { |
| name: "libdebuggerd", |
| defaults: ["debuggerd_defaults"], |
| |
| srcs: [ |
| "libdebuggerd/backtrace.cpp", |
| "libdebuggerd/elf_utils.cpp", |
| "libdebuggerd/open_files_list.cpp", |
| "libdebuggerd/tombstone.cpp", |
| "libdebuggerd/utility.cpp", |
| ], |
| |
| target: { |
| android_arm: { |
| srcs: ["libdebuggerd/arm/machine.cpp"], |
| }, |
| android_arm64: { |
| srcs: ["libdebuggerd/arm64/machine.cpp"], |
| }, |
| android_mips: { |
| srcs: ["libdebuggerd/mips/machine.cpp"], |
| }, |
| android_mips64: { |
| srcs: ["libdebuggerd/mips64/machine.cpp"], |
| }, |
| android_x86: { |
| srcs: ["libdebuggerd/x86/machine.cpp"], |
| }, |
| android_x86_64: { |
| srcs: ["libdebuggerd/x86_64/machine.cpp"], |
| }, |
| }, |
| |
| local_include_dirs: ["libdebuggerd/include"], |
| export_include_dirs: ["libdebuggerd/include"], |
| |
| static_libs: [ |
| "libbacktrace", |
| "libunwind", |
| "liblzma", |
| "libbase", |
| "libcutils", |
| "liblog", |
| ], |
| } |
| |
| cc_test { |
| name: "debuggerd_test", |
| defaults: ["debuggerd_defaults"], |
| |
| cflags: ["-Wno-missing-field-initializers"], |
| srcs: [ |
| "libdebuggerd/test/dump_memory_test.cpp", |
| "libdebuggerd/test/elf_fake.cpp", |
| "libdebuggerd/test/log_fake.cpp", |
| "libdebuggerd/test/open_files_list_test.cpp", |
| "libdebuggerd/test/property_fake.cpp", |
| "libdebuggerd/test/ptrace_fake.cpp", |
| "libdebuggerd/test/tombstone_test.cpp", |
| ], |
| |
| target: { |
| android: { |
| srcs: [ |
| "client/debuggerd_client_test.cpp", |
| "debuggerd_test.cpp", |
| "util.cpp" |
| ], |
| }, |
| }, |
| |
| shared_libs: [ |
| "libbacktrace", |
| "libbase", |
| "libcutils", |
| "libdebuggerd_client", |
| ], |
| |
| static_libs: [ |
| "libdebuggerd" |
| ], |
| |
| local_include_dirs: [ |
| "libdebuggerd", |
| ], |
| |
| compile_multilib: "both", |
| multilib: { |
| lib32: { |
| stem: "debuggerd_test32", |
| }, |
| lib64: { |
| stem: "debuggerd_test64", |
| }, |
| }, |
| } |
| |
| cc_binary { |
| name: "crash_dump", |
| srcs: [ |
| "crash_dump.cpp", |
| "util.cpp", |
| ], |
| defaults: ["debuggerd_defaults"], |
| |
| compile_multilib: "both", |
| multilib: { |
| lib32: { |
| suffix: "32", |
| }, |
| lib64: { |
| suffix: "64", |
| }, |
| }, |
| |
| static_libs: [ |
| "libtombstoned_client", |
| "libdebuggerd", |
| "libcutils", |
| ], |
| |
| shared_libs: [ |
| "libbacktrace", |
| "libbase", |
| "liblog", |
| "libprocinfo", |
| "libselinux", |
| ], |
| } |
| |
| cc_binary { |
| name: "debuggerd", |
| srcs: [ |
| "debuggerd.cpp", |
| ], |
| defaults: ["debuggerd_defaults"], |
| |
| shared_libs: [ |
| "libbase", |
| "libdebuggerd_client", |
| "liblog", |
| "libselinux", |
| ], |
| |
| local_include_dirs: ["include"], |
| } |
| |
| cc_binary { |
| name: "tombstoned", |
| srcs: [ |
| "util.cpp", |
| "tombstoned/intercept_manager.cpp", |
| "tombstoned/tombstoned.cpp", |
| ], |
| defaults: ["debuggerd_defaults"], |
| |
| static_libs: [ |
| "libbase", |
| "libcutils", |
| "libevent", |
| "liblog", |
| ], |
| |
| init_rc: ["tombstoned/tombstoned.rc"] |
| } |
| |
| subdirs = [ |
| "crasher", |
| ] |