• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#
2# Copyright 2017 The Abseil Authors.
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8#      https://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15#
16
17absl_cc_library(
18  NAME
19    stacktrace
20  HDRS
21    "stacktrace.h"
22    "internal/stacktrace_aarch64-inl.inc"
23    "internal/stacktrace_arm-inl.inc"
24    "internal/stacktrace_config.h"
25    "internal/stacktrace_emscripten-inl.inc"
26    "internal/stacktrace_generic-inl.inc"
27    "internal/stacktrace_powerpc-inl.inc"
28    "internal/stacktrace_riscv-inl.inc"
29    "internal/stacktrace_unimplemented-inl.inc"
30    "internal/stacktrace_win32-inl.inc"
31    "internal/stacktrace_x86-inl.inc"
32  SRCS
33    "stacktrace.cc"
34  COPTS
35    ${ABSL_DEFAULT_COPTS}
36  DEPS
37    absl::debugging_internal
38    absl::config
39    absl::core_headers
40  PUBLIC
41)
42
43absl_cc_library(
44  NAME
45    symbolize
46  HDRS
47    "symbolize.h"
48    "internal/symbolize.h"
49  SRCS
50    "symbolize.cc"
51    "symbolize_darwin.inc"
52    "symbolize_elf.inc"
53    "symbolize_emscripten.inc"
54    "symbolize_unimplemented.inc"
55    "symbolize_win32.inc"
56  COPTS
57    ${ABSL_DEFAULT_COPTS}
58  LINKOPTS
59    ${ABSL_DEFAULT_LINKOPTS}
60    $<$<BOOL:${MINGW}>:"dbghelp">
61  DEPS
62    absl::debugging_internal
63    absl::demangle_internal
64    absl::base
65    absl::config
66    absl::core_headers
67    absl::dynamic_annotations
68    absl::malloc_internal
69    absl::raw_logging_internal
70    absl::strings
71  PUBLIC
72)
73
74absl_cc_test(
75  NAME
76    symbolize_test
77  SRCS
78    "symbolize_test.cc"
79  COPTS
80    ${ABSL_TEST_COPTS}
81    $<$<BOOL:${MSVC}>:-Z7>
82  LINKOPTS
83    $<$<BOOL:${MSVC}>:-DEBUG>
84  DEPS
85    absl::stack_consumption
86    absl::symbolize
87    absl::base
88    absl::config
89    absl::core_headers
90    absl::memory
91    absl::raw_logging_internal
92    absl::strings
93    GTest::gmock
94)
95
96# Internal-only target, do not depend on directly.
97absl_cc_library(
98  NAME
99    examine_stack
100  HDRS
101    "internal/examine_stack.h"
102  SRCS
103    "internal/examine_stack.cc"
104  COPTS
105    ${ABSL_DEFAULT_COPTS}
106  DEPS
107    absl::stacktrace
108    absl::symbolize
109    absl::config
110    absl::core_headers
111    absl::raw_logging_internal
112)
113
114absl_cc_library(
115  NAME
116    failure_signal_handler
117  HDRS
118    "failure_signal_handler.h"
119  SRCS
120    "failure_signal_handler.cc"
121  COPTS
122    ${ABSL_DEFAULT_COPTS}
123  DEPS
124    absl::examine_stack
125    absl::stacktrace
126    absl::base
127    absl::config
128    absl::core_headers
129    absl::errno_saver
130    absl::raw_logging_internal
131  PUBLIC
132)
133
134absl_cc_test(
135  NAME
136    failure_signal_handler_test
137  SRCS
138    "failure_signal_handler_test.cc"
139  COPTS
140    ${ABSL_TEST_COPTS}
141  DEPS
142    absl::failure_signal_handler
143    absl::stacktrace
144    absl::symbolize
145    absl::strings
146    absl::raw_logging_internal
147    Threads::Threads
148    GTest::gmock
149)
150
151# Internal-only target, do not depend on directly.
152absl_cc_library(
153  NAME
154    debugging_internal
155  HDRS
156    "internal/address_is_readable.h"
157    "internal/elf_mem_image.h"
158    "internal/vdso_support.h"
159  SRCS
160    "internal/address_is_readable.cc"
161    "internal/elf_mem_image.cc"
162    "internal/vdso_support.cc"
163  COPTS
164    ${ABSL_DEFAULT_COPTS}
165  DEPS
166    absl::core_headers
167    absl::config
168    absl::dynamic_annotations
169    absl::errno_saver
170    absl::raw_logging_internal
171)
172
173# Internal-only target, do not depend on directly.
174absl_cc_library(
175  NAME
176    demangle_internal
177  HDRS
178    "internal/demangle.h"
179  SRCS
180    "internal/demangle.cc"
181  COPTS
182    ${ABSL_DEFAULT_COPTS}
183  DEPS
184    absl::base
185    absl::core_headers
186  PUBLIC
187)
188
189absl_cc_test(
190  NAME
191    demangle_test
192  SRCS
193    "internal/demangle_test.cc"
194  COPTS
195    ${ABSL_TEST_COPTS}
196  DEPS
197    absl::demangle_internal
198    absl::stack_consumption
199    absl::config
200    absl::core_headers
201    absl::memory
202    absl::raw_logging_internal
203    GTest::gmock_main
204)
205
206absl_cc_library(
207  NAME
208    leak_check
209  HDRS
210    "leak_check.h"
211  SRCS
212    "leak_check.cc"
213  COPTS
214    ${ABSL_DEFAULT_COPTS}
215  DEPS
216    absl::config
217    absl::core_headers
218  PUBLIC
219)
220
221absl_cc_library(
222  NAME
223    leak_check_disable
224  SRCS
225    "leak_check_disable.cc"
226  COPTS
227    ${ABSL_DEFAULT_COPTS}
228  PUBLIC
229)
230
231absl_cc_library(
232  NAME
233    leak_check_api_enabled_for_testing
234  HDRS
235    "leak_check.h"
236  SRCS
237    "leak_check.cc"
238  COPTS
239    ${ABSL_DEFAULT_COPTS}
240    $<$<BOOL:${ABSL_HAVE_LSAN}>:-DLEAK_SANITIZER>
241  TESTONLY
242)
243
244absl_cc_library(
245  NAME
246    leak_check_api_disabled_for_testing
247  HDRS
248    "leak_check.h"
249  SRCS
250    "leak_check.cc"
251  COPTS
252    ${ABSL_DEFAULT_COPTS}
253    "-ULEAK_SANITIZER"
254  TESTONLY
255)
256
257absl_cc_test(
258  NAME
259    leak_check_test
260  SRCS
261    "leak_check_test.cc"
262  COPTS
263    ${ABSL_TEST_COPTS}
264    "$<$<BOOL:${ABSL_HAVE_LSAN}>:-DABSL_EXPECT_LEAK_SANITIZER>"
265  LINKOPTS
266    "${ABSL_LSAN_LINKOPTS}"
267  DEPS
268    absl::leak_check_api_enabled_for_testing
269    absl::base
270    GTest::gmock_main
271)
272
273absl_cc_test(
274  NAME
275    leak_check_no_lsan_test
276  SRCS
277    "leak_check_test.cc"
278  COPTS
279    ${ABSL_TEST_COPTS}
280    "-UABSL_EXPECT_LEAK_SANITIZER"
281  DEPS
282    absl::leak_check_api_disabled_for_testing
283    absl::base
284    GTest::gmock_main
285)
286
287absl_cc_test(
288  NAME
289    disabled_leak_check_test
290  SRCS
291    "leak_check_fail_test.cc"
292  COPTS
293    ${ABSL_TEST_COPTS}
294  LINKOPTS
295    "${ABSL_LSAN_LINKOPTS}"
296  DEPS
297    absl::leak_check_api_enabled_for_testing
298    absl::leak_check_disable
299    absl::base
300    absl::raw_logging_internal
301    GTest::gmock_main
302)
303
304# Internal-only target, do not depend on directly.
305absl_cc_library(
306  NAME
307    stack_consumption
308  HDRS
309    "internal/stack_consumption.h"
310  SRCS
311    "internal/stack_consumption.cc"
312  COPTS
313    ${ABSL_DEFAULT_COPTS}
314  DEPS
315    absl::config
316    absl::core_headers
317    absl::raw_logging_internal
318  TESTONLY
319)
320
321absl_cc_test(
322  NAME
323    stack_consumption_test
324  SRCS
325    "internal/stack_consumption_test.cc"
326  COPTS
327    ${ABSL_TEST_COPTS}
328  DEPS
329    absl::stack_consumption
330    absl::core_headers
331    absl::raw_logging_internal
332    GTest::gmock_main
333)
334
335# component target
336absl_cc_library(
337  NAME
338    debugging
339  COPTS
340    ${ABSL_DEFAULT_COPTS}
341  DEPS
342    absl::stacktrace
343    absl::leak_check
344  PUBLIC
345)
346