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 "dfx_fault_stack.cpp", 18 "dfx_logger.cpp", 19 "dfx_process.cpp", 20 "dfx_ring_buffer_wrapper.cpp", 21 "dfx_stack_info_json_formatter.cpp", 22 "dfx_thread.cpp", 23 "dfx_unwind_async_thread.cpp", 24 "dfx_unwind_remote.cpp", 25 "printer.cpp", 26 "process_dumper.cpp", 27] 28 29if (defined(ohos_lite)) { 30 config("processdump_config") { 31 visibility = [ "*:*" ] 32 cflags = [] 33 34 defines = [ 35 "HAVE_CONFIG_H", 36 "HAVE_ELF_H", 37 "HAVE_LINK_H", 38 "HISYSEVENT_DISABLE", 39 "is_ohos_lite", 40 ] 41 42 include_dirs = [ 43 ".", 44 "$c_utils_include_path", 45 "$faultloggerd_common_path/dfxlog", 46 "$faultloggerd_common_path/dfxutil", 47 "$faultloggerd_interfaces_path/common", 48 "$faultloggerd_interfaces_path/innerkits/async_stack/include", 49 "$faultloggerd_interfaces_path/innerkits/backtrace/include", 50 "$faultloggerd_interfaces_path/innerkits/crash_exception", 51 "$faultloggerd_interfaces_path/innerkits/faultloggerd_client/include", 52 "$faultloggerd_interfaces_path/innerkits/procinfo/include", 53 "$faultloggerd_interfaces_path/innerkits/unwinder/include", 54 "$hilog_lite_include_path", 55 ] 56 } 57 58 source_set("process_info_src") { 59 sources = processdump_sources 60 if (processdump_parse_lock_owner_enable) { 61 sources += [ "lock_parser.cpp" ] 62 } 63 public_configs = [ ":processdump_config" ] 64 65 deps = [ 66 "$faultloggerd_common_path/dfxlog:dfx_hilog", 67 "$faultloggerd_common_path/dfxutil:dfx_util", 68 "$faultloggerd_common_path/trace:dfx_trace", 69 "$faultloggerd_interfaces_path/innerkits/async_stack:libasync_stack", 70 "$faultloggerd_interfaces_path/innerkits/backtrace:libbacktrace_local", 71 "$faultloggerd_interfaces_path/innerkits/crash_exception", 72 "$faultloggerd_interfaces_path/innerkits/faultloggerd_client:libfaultloggerd", 73 "$faultloggerd_interfaces_path/innerkits/procinfo:libdfx_procinfo", 74 "$faultloggerd_interfaces_path/innerkits/unwinder:libunwinder", 75 ] 76 external_deps = [ "hilog_lite:hilog_shared" ] 77 } 78 79 executable("processdump") { 80 sources = processdump_sources 81 sources += [ 82 "cppcrash_reporter.cpp", 83 "main.cpp", 84 ] 85 public_configs = [ ":processdump_config" ] 86 87 deps = [ 88 "$faultloggerd_common_path/dfxlog:dfx_hilog", 89 "$faultloggerd_common_path/dfxutil:dfx_util", 90 "$faultloggerd_common_path/trace:dfx_trace", 91 "$faultloggerd_interfaces_path/innerkits/async_stack:libasync_stack", 92 "$faultloggerd_interfaces_path/innerkits/backtrace:libbacktrace_local", 93 "$faultloggerd_interfaces_path/innerkits/crash_exception", 94 "$faultloggerd_interfaces_path/innerkits/faultloggerd_client:libfaultloggerd", 95 "$faultloggerd_interfaces_path/innerkits/procinfo:libdfx_procinfo", 96 "$faultloggerd_interfaces_path/innerkits/unwinder:libunwinder", 97 ] 98 99 external_deps = [ "hilog_lite:hilog_shared" ] 100 } 101} else { 102 config("processdump_config") { 103 visibility = [ ":*" ] 104 105 include_dirs = [ 106 ".", 107 "$faultloggerd_interfaces_path/common", 108 "$faultloggerd_interfaces_path/innerkits/backtrace/include", 109 "$faultloggerd_interfaces_path/innerkits/crash_exception", 110 "$faultloggerd_interfaces_path/innerkits/procinfo/include", 111 "$faultloggerd_interfaces_path/innerkits/signal_handler", 112 "$faultloggerd_interfaces_path/innerkits/unwinder/include", 113 "$faultloggerd_path/common", 114 ] 115 116 cflags_cc = [ "-DRUSTC_DEMANGLE" ] 117 118 if (processdump_minidebuginfo_enable) { 119 defines = [ "PROCESSDUMP_MINIDEBUGINFO" ] 120 } 121 122 if (processdump_parse_lock_owner_enable) { 123 defines += [ "PARSE_LOCK_OWNER" ] 124 } 125 126 if (use_hwasan) { 127 defines += [ "ENABLE_HWASAN" ] 128 } 129 } 130 131 ohos_source_set("process_info_src") { 132 sources = processdump_sources 133 if (processdump_parse_lock_owner_enable) { 134 sources += [ "lock_parser.cpp" ] 135 } 136 configs = [ 137 ":processdump_config", 138 "$faultloggerd_common_path/build:coverage_flags", 139 ] 140 141 deps = [ 142 "$faultloggerd_common_path/dfxlog:dfx_hilog", 143 "$faultloggerd_common_path/dfxutil:dfx_util", 144 "$faultloggerd_common_path/trace:dfx_trace", 145 "$faultloggerd_interfaces_path/innerkits/async_stack:libasync_stack", 146 "$faultloggerd_interfaces_path/innerkits/backtrace:libbacktrace_local", 147 "$faultloggerd_interfaces_path/innerkits/crash_exception", 148 "$faultloggerd_interfaces_path/innerkits/faultloggerd_client:libfaultloggerd", 149 "$faultloggerd_interfaces_path/innerkits/procinfo:libdfx_procinfo", 150 "$faultloggerd_interfaces_path/innerkits/unwinder:libunwinder", 151 ] 152 153 external_deps = [ 154 "c_utils:utils", 155 "hilog:libhilog", 156 "hisysevent:libhisysevent", 157 "init:libbegetutil", 158 "jsoncpp:jsoncpp", 159 ] 160 161 part_name = "faultloggerd" 162 subsystem_name = "hiviewdfx" 163 } 164 165 ohos_executable("processdump") { 166 install_enable = true 167 configs = [ 168 ":processdump_config", 169 "$faultloggerd_path/common/build:coverage_flags", 170 ] 171 sources = processdump_sources 172 sources += [ 173 "cppcrash_reporter.cpp", 174 "main.cpp", 175 ] 176 if (processdump_parse_lock_owner_enable) { 177 sources += [ "lock_parser.cpp" ] 178 } 179 cflags_cc = [ "-DDEBUG_CRASH_LOCAL_HANDLER" ] 180 defines = [ 181 "DFX_LOG_HILOG_BASE", 182 "DFX_ENABLE_TRACE", 183 ] 184 if (use_clang_coverage) { 185 defines += [ "CLANG_COVERAGE" ] 186 } 187 188 deps = [ 189 "$faultloggerd_common_path/dfxlog:dfx_hilog_base", 190 "$faultloggerd_common_path/dfxutil:dfx_util", 191 "$faultloggerd_common_path/trace:dfx_trace", 192 "$faultloggerd_frameworks_path/localhandler:dfx_local_handler_src", 193 "$faultloggerd_interfaces_path/innerkits/async_stack:libasync_stack", 194 "$faultloggerd_interfaces_path/innerkits/backtrace:libbacktrace_local", 195 "$faultloggerd_interfaces_path/innerkits/crash_exception", 196 "$faultloggerd_interfaces_path/innerkits/faultloggerd_client:libfaultloggerd", 197 "$faultloggerd_interfaces_path/innerkits/procinfo:libdfx_procinfo", 198 "$faultloggerd_interfaces_path/innerkits/unwinder:libunwinder", 199 ] 200 201 external_deps = [ 202 "c_utils:utils", 203 "hilog:libhilog_base", 204 "hisysevent:libhisysevent", 205 "hitrace:hitrace_meter", 206 "init:libbegetutil", 207 "jsoncpp:jsoncpp", 208 ] 209 version_script = "processdump.map" 210 install_images = [ 211 "system", 212 "updater", 213 ] 214 215 part_name = "faultloggerd" 216 subsystem_name = "hiviewdfx" 217 } 218} 219