• 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  "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