1# Copyright (c) 2021-2024 Huawei Device Co., Ltd. 2# Licensed under the Apache License, Version 2.0 (the "License"); 3# you may not use this file except in compliance with the License. 4# You may obtain a copy of the License at 5# 6# http://www.apache.org/licenses/LICENSE-2.0 7# 8# Unless required by applicable law or agreed to in writing, software 9# distributed under the License is distributed on an "AS IS" BASIS, 10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11# See the License for the specific language governing permissions and 12# limitations under the License. 13 14import("//base/hiviewdfx/faultloggerd/faultloggerd.gni") 15 16processdump_sources = [ 17 "coredump/dfx_coredump_service.cpp", 18 "coredump/dfx_coredump_writer.cpp", 19 "dfx_buffer_writer.cpp", 20 "dfx_process.cpp", 21 "dfx_thread.cpp", 22 "dump_info_header.cpp", 23 "dump_info_json_formatter.cpp", 24 "dump_utils.cpp", 25 "extra_crash_info.cpp", 26 "fault_stack.cpp", 27 "key_thread_dump_info.cpp", 28 "maps.cpp", 29 "memory_near_register.cpp", 30 "open_files.cpp", 31 "other_thread_dump_info.cpp", 32 "process_dump_config.cpp", 33 "process_dumper.cpp", 34 "registers.cpp", 35 "submitter_stack.cpp", 36] 37 38if (defined(ohos_lite)) { 39 config("processdump_config") { 40 visibility = [ "*:*" ] 41 cflags = [] 42 43 defines = [ 44 "HAVE_CONFIG_H", 45 "HAVE_ELF_H", 46 "HAVE_LINK_H", 47 "HISYSEVENT_DISABLE", 48 "is_ohos_lite", 49 ] 50 51 include_dirs = [ 52 ".", 53 "coredump", 54 "$c_utils_include_path", 55 "$faultloggerd_common_path/dfxlog", 56 "$faultloggerd_common_path/dfxutil", 57 "$faultloggerd_interfaces_path/common", 58 "$faultloggerd_interfaces_path/innerkits/async_stack/include", 59 "$faultloggerd_interfaces_path/innerkits/backtrace/include", 60 "$faultloggerd_interfaces_path/innerkits/crash_exception", 61 "$faultloggerd_interfaces_path/innerkits/faultloggerd_client/include", 62 "$faultloggerd_interfaces_path/innerkits/procinfo/include", 63 "$faultloggerd_interfaces_path/innerkits/unwinder/include", 64 "$hilog_lite_include_path", 65 ] 66 } 67 68 source_set("process_info_src") { 69 sources = processdump_sources 70 public_configs = [ ":processdump_config" ] 71 72 deps = [ 73 "$faultloggerd_common_path/dfxlog:dfx_hilog", 74 "$faultloggerd_common_path/dfxutil:dfx_util", 75 "$faultloggerd_common_path/trace:dfx_trace", 76 "$faultloggerd_interfaces_path/innerkits/backtrace:libbacktrace_local", 77 "$faultloggerd_interfaces_path/innerkits/crash_exception", 78 "$faultloggerd_interfaces_path/innerkits/faultloggerd_client:libfaultloggerd", 79 "$faultloggerd_interfaces_path/innerkits/procinfo:libdfx_procinfo", 80 "$faultloggerd_interfaces_path/innerkits/unwinder:libunwinder", 81 ] 82 external_deps = [ "hilog_lite:hilog_shared" ] 83 } 84 85 executable("processdump") { 86 sources = processdump_sources 87 sources += [ 88 "main.cpp", 89 "reporter.cpp", 90 ] 91 public_configs = [ ":processdump_config" ] 92 93 deps = [ 94 "$faultloggerd_common_path/dfxlog:dfx_hilog", 95 "$faultloggerd_common_path/dfxutil:dfx_util", 96 "$faultloggerd_common_path/trace:dfx_trace", 97 "$faultloggerd_interfaces_path/innerkits/backtrace:libbacktrace_local", 98 "$faultloggerd_interfaces_path/innerkits/crash_exception", 99 "$faultloggerd_interfaces_path/innerkits/faultloggerd_client:libfaultloggerd", 100 "$faultloggerd_interfaces_path/innerkits/procinfo:libdfx_procinfo", 101 "$faultloggerd_interfaces_path/innerkits/unwinder:libunwinder", 102 ] 103 104 external_deps = [ "hilog_lite:hilog_shared" ] 105 } 106} else { 107 config("processdump_config") { 108 visibility = [ ":*" ] 109 110 include_dirs = [ 111 ".", 112 "coredump", 113 "$faultloggerd_interfaces_path/common", 114 "$faultloggerd_interfaces_path/innerkits/backtrace/include", 115 "$faultloggerd_interfaces_path/innerkits/crash_exception", 116 "$faultloggerd_interfaces_path/innerkits/procinfo/include", 117 "$faultloggerd_interfaces_path/innerkits/signal_handler", 118 "$faultloggerd_interfaces_path/innerkits/unwinder/include", 119 "$faultloggerd_path/common", 120 ] 121 122 cflags_cc = [ "-DRUSTC_DEMANGLE" ] 123 124 if (processdump_minidebuginfo_enable) { 125 defines = [ "PROCESSDUMP_MINIDEBUGINFO" ] 126 } 127 128 if (processdump_parse_lock_owner_enable) { 129 defines += [ "PARSE_LOCK_OWNER" ] 130 } 131 132 if (use_hwasan) { 133 defines += [ "ENABLE_HWASAN" ] 134 } 135 } 136 137 ohos_source_set("process_info_src") { 138 sources = processdump_sources 139 configs = [ 140 ":processdump_config", 141 "$faultloggerd_common_path/build:coverage_flags", 142 ] 143 144 deps = [ 145 "$faultloggerd_common_path/dfxlog:dfx_hilog", 146 "$faultloggerd_common_path/dfxutil:dfx_util", 147 "$faultloggerd_common_path/trace:dfx_trace", 148 "$faultloggerd_interfaces_path/innerkits/async_stack:libasync_stack", 149 "$faultloggerd_interfaces_path/innerkits/backtrace:libbacktrace_local", 150 "$faultloggerd_interfaces_path/innerkits/crash_exception", 151 "$faultloggerd_interfaces_path/innerkits/faultloggerd_client:libfaultloggerd", 152 "$faultloggerd_interfaces_path/innerkits/procinfo:libdfx_procinfo", 153 "$faultloggerd_interfaces_path/innerkits/unwinder:libunwinder", 154 ] 155 156 external_deps = [ 157 "bundle_framework:appexecfwk_base", 158 "bundle_framework:appexecfwk_core", 159 "cJSON:cjson", 160 "c_utils:utils", 161 "hilog:libhilog", 162 "hisysevent:libhisysevent", 163 "hitrace:libhitracechain", 164 "init:libbegetutil", 165 "jsoncpp:jsoncpp", 166 "ipc:ipc_core", 167 "samgr:samgr_proxy", 168 ] 169 170 part_name = "faultloggerd" 171 subsystem_name = "hiviewdfx" 172 } 173 174 ohos_executable("processdump") { 175 install_enable = true 176 configs = [ 177 ":processdump_config", 178 "$faultloggerd_path/common/build:coverage_flags", 179 ] 180 include_dirs = [ "lperf" ] 181 sources = processdump_sources 182 sources += [ 183 "lite_perf_dumper.cpp", 184 "lperf/lperf_event_record.cpp", 185 "lperf/lperf_events.cpp", 186 "lperf/lperf_record.cpp", 187 ] 188 sources += [ 189 "main.cpp", 190 "reporter.cpp", 191 ] 192 cflags_cc = [ "-DDEBUG_CRASH_LOCAL_HANDLER" ] 193 defines = [ 194 "DFX_LOG_HILOG_BASE", 195 "DFX_ENABLE_TRACE", 196 ] 197 if (is_asan) { 198 defines += [ "DFX_ALLOCATE_ASAN" ] 199 } 200 if (faultloggerd_liteperf_enable) { 201 defines += [ "DFX_ENABLE_LPERF" ] 202 } 203 if (use_clang_coverage) { 204 defines += [ "CLANG_COVERAGE" ] 205 } 206 207 deps = [ 208 "$faultloggerd_common_path/dfxlog:dfx_hilog", 209 "$faultloggerd_common_path/dfxutil:dfx_util", 210 "$faultloggerd_common_path/trace:dfx_trace", 211 "$faultloggerd_frameworks_path/localhandler:dfx_local_handler_src", 212 "$faultloggerd_interfaces_path/innerkits/async_stack:libasync_stack", 213 "$faultloggerd_interfaces_path/innerkits/backtrace:libbacktrace_local", 214 "$faultloggerd_interfaces_path/innerkits/crash_exception", 215 "$faultloggerd_interfaces_path/innerkits/faultloggerd_client:libfaultloggerd", 216 "$faultloggerd_interfaces_path/innerkits/procinfo:libdfx_procinfo", 217 "$faultloggerd_interfaces_path/innerkits/stack_printer:libstack_printer", 218 "$faultloggerd_interfaces_path/innerkits/unwinder:libunwinder", 219 ] 220 221 external_deps = [ 222 "bundle_framework:appexecfwk_base", 223 "bundle_framework:appexecfwk_core", 224 "cJSON:cjson", 225 "c_utils:utils", 226 "hilog:libhilog", 227 "hisysevent:libhisysevent", 228 "hitrace:hitrace_meter", 229 "hitrace:libhitracechain", 230 "init:libbegetutil", 231 "jsoncpp:jsoncpp", 232 "ipc:ipc_core", 233 "samgr:samgr_proxy", 234 ] 235 version_script = "processdump.map" 236 install_images = [ 237 "system", 238 "updater", 239 ] 240 241 part_name = "faultloggerd" 242 subsystem_name = "hiviewdfx" 243 } 244} 245