• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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