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_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 public_configs = [ ":processdump_config" ] 61 62 deps = [ 63 "$faultloggerd_common_path/dfxlog:dfx_hilog", 64 "$faultloggerd_common_path/dfxutil:dfx_util", 65 "$faultloggerd_common_path/trace:dfx_trace", 66 "$faultloggerd_interfaces_path/innerkits/async_stack:libasync_stack", 67 "$faultloggerd_interfaces_path/innerkits/backtrace:libbacktrace_local", 68 "$faultloggerd_interfaces_path/innerkits/crash_exception", 69 "$faultloggerd_interfaces_path/innerkits/faultloggerd_client:libfaultloggerd", 70 "$faultloggerd_interfaces_path/innerkits/procinfo:libdfx_procinfo", 71 "$faultloggerd_interfaces_path/innerkits/unwinder:libunwinder", 72 ] 73 external_deps = [ "hilog_lite:hilog_shared" ] 74 } 75 76 executable("processdump") { 77 sources = processdump_sources 78 sources += [ 79 "cppcrash_reporter.cpp", 80 "main.cpp", 81 ] 82 public_configs = [ ":processdump_config" ] 83 84 deps = [ 85 "$faultloggerd_common_path/dfxlog:dfx_hilog", 86 "$faultloggerd_common_path/dfxutil:dfx_util", 87 "$faultloggerd_common_path/trace:dfx_trace", 88 "$faultloggerd_interfaces_path/innerkits/async_stack:libasync_stack", 89 "$faultloggerd_interfaces_path/innerkits/backtrace:libbacktrace_local", 90 "$faultloggerd_interfaces_path/innerkits/crash_exception", 91 "$faultloggerd_interfaces_path/innerkits/faultloggerd_client:libfaultloggerd", 92 "$faultloggerd_interfaces_path/innerkits/procinfo:libdfx_procinfo", 93 "$faultloggerd_interfaces_path/innerkits/unwinder:libunwinder", 94 ] 95 96 external_deps = [ "hilog_lite:hilog_shared" ] 97 } 98} else { 99 config("processdump_config") { 100 visibility = [ ":*" ] 101 102 include_dirs = [ 103 ".", 104 "$faultloggerd_interfaces_path/common", 105 "$faultloggerd_interfaces_path/innerkits/backtrace/include", 106 "$faultloggerd_interfaces_path/innerkits/crash_exception", 107 "$faultloggerd_interfaces_path/innerkits/procinfo/include", 108 "$faultloggerd_interfaces_path/innerkits/signal_handler", 109 "$faultloggerd_interfaces_path/innerkits/unwinder/include", 110 "$faultloggerd_path/common", 111 ] 112 113 cflags_cc = [ "-DRUSTC_DEMANGLE" ] 114 115 if (processdump_minidebuginfo_enable) { 116 defines = [ "PROCESSDUMP_MINIDEBUGINFO" ] 117 } 118 119 if (processdump_parse_lock_owner_enable) { 120 defines += [ "PARSE_LOCK_OWNER" ] 121 } 122 } 123 124 ohos_source_set("process_info_src") { 125 sources = processdump_sources 126 configs = [ 127 ":processdump_config", 128 "$faultloggerd_common_path/build:coverage_flags", 129 ] 130 131 deps = [ 132 "$faultloggerd_common_path/dfxlog:dfx_hilog", 133 "$faultloggerd_common_path/dfxutil:dfx_util", 134 "$faultloggerd_common_path/trace:dfx_trace", 135 "$faultloggerd_interfaces_path/innerkits/async_stack:libasync_stack", 136 "$faultloggerd_interfaces_path/innerkits/backtrace:libbacktrace_local", 137 "$faultloggerd_interfaces_path/innerkits/crash_exception", 138 "$faultloggerd_interfaces_path/innerkits/faultloggerd_client:libfaultloggerd", 139 "$faultloggerd_interfaces_path/innerkits/procinfo:libdfx_procinfo", 140 "$faultloggerd_interfaces_path/innerkits/unwinder:libunwinder", 141 ] 142 143 external_deps = [ 144 "c_utils:utils", 145 "hilog:libhilog", 146 "init:libbegetutil", 147 "jsoncpp:jsoncpp", 148 ] 149 150 part_name = "faultloggerd" 151 subsystem_name = "hiviewdfx" 152 } 153 154 ohos_executable("processdump") { 155 install_enable = true 156 configs = [ 157 ":processdump_config", 158 "$faultloggerd_path/common/build:coverage_flags", 159 ] 160 sources = processdump_sources 161 sources += [ 162 "cppcrash_reporter.cpp", 163 "main.cpp", 164 ] 165 if (processdump_parse_lock_owner_enable) { 166 sources += [ "lock_parser.cpp" ] 167 } 168 cflags_cc = [ "-DDEBUG_CRASH_LOCAL_HANDLER" ] 169 defines = [ 170 "DFX_LOG_HILOG_BASE", 171 "DFX_ENABLE_TRACE", 172 ] 173 if (use_clang_coverage) { 174 defines += [ "CLANG_COVERAGE" ] 175 } 176 177 deps = [ 178 "$faultloggerd_common_path/dfxlog:dfx_hilog_base", 179 "$faultloggerd_common_path/dfxutil:dfx_util", 180 "$faultloggerd_common_path/trace:dfx_trace", 181 "$faultloggerd_frameworks_path/localhandler:dfx_local_handler_src", 182 "$faultloggerd_interfaces_path/innerkits/async_stack:libasync_stack", 183 "$faultloggerd_interfaces_path/innerkits/backtrace:libbacktrace_local", 184 "$faultloggerd_interfaces_path/innerkits/crash_exception", 185 "$faultloggerd_interfaces_path/innerkits/faultloggerd_client:libfaultloggerd", 186 "$faultloggerd_interfaces_path/innerkits/procinfo:libdfx_procinfo", 187 "$faultloggerd_interfaces_path/innerkits/unwinder:libunwinder", 188 ] 189 190 external_deps = [ 191 "c_utils:utils", 192 "hilog:libhilog_base", 193 "hisysevent:libhisysevent", 194 "hitrace:hitrace_meter", 195 "init:libbegetutil", 196 "jsoncpp:jsoncpp", 197 ] 198 version_script = "processdump.map" 199 install_images = [ 200 "system", 201 "updater", 202 ] 203 204 part_name = "faultloggerd" 205 subsystem_name = "hiviewdfx" 206 } 207} 208