jdk

Форк
0
/
lsan_default_options.c 
67 строк · 2.8 Кб
1
/*
2
 * Copyright (c) 2023, Google and/or its affiliates. All rights reserved.
3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
 *
5
 * This code is free software; you can redistribute it and/or modify it
6
 * under the terms of the GNU General Public License version 2 only, as
7
 * published by the Free Software Foundation.  Oracle designates this
8
 * particular file as subject to the "Classpath" exception as provided
9
 * by Oracle in the LICENSE file that accompanied this code.
10
 *
11
 * This code is distributed in the hope that it will be useful, but WITHOUT
12
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14
 * version 2 for more details (a copy is included in the LICENSE file that
15
 * accompanied this code).
16
 *
17
 * You should have received a copy of the GNU General Public License version
18
 * 2 along with this work; if not, write to the Free Software Foundation,
19
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20
 *
21
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22
 * or visit www.oracle.com if you need additional information or have any
23
 * questions.
24
 */
25

26
#ifndef LEAK_SANITIZER
27
#error "Build misconfigured, preprocessor macro LEAK_SANITIZER should be defined"
28
#endif
29

30
#ifndef __has_attribute
31
#define __has_attribute(x) 0
32
#endif
33

34
#if (defined(__GNUC__) && !defined(__clang__)) || __has_attribute(visibility)
35
#define ATTRIBUTE_DEFAULT_VISIBILITY __attribute__((visibility("default")))
36
#else
37
#define ATTRIBUTE_DEFAULT_VISIBILITY
38
#endif
39

40
#if (defined(__GNUC__) && !defined(__clang__)) || __has_attribute(used)
41
#define ATTRIBUTE_USED __attribute__((used))
42
#else
43
#define ATTRIBUTE_USED
44
#endif
45

46
// Override weak symbol exposed by LSan to override default options. This is called by LSan
47
// extremely early during library loading, before main is called.  We need to override the default
48
// options because LSan will perform leak checking at program exit. Unfortunately Hotspot does not
49
// shutdown cleanly at the moment and some leaks occur, we want to ignore these. Instead we
50
// explicitly perform leak checking early during JVM shutdown.
51
ATTRIBUTE_DEFAULT_VISIBILITY ATTRIBUTE_USED const char* __lsan_default_options() {
52
  return
53
    "print_suppressions=0,"
54
    "leak_check_at_exit=0,"
55
    // See https://github.com/google/sanitizers/issues/1322. Hopefully this is resolved
56
    // at some point and we can remove this option.
57
    "intercept_tls_get_addr=0";
58
}
59

60
// Override weak symbol exposed by LSan to override default suppressions. This is called by LSan
61
// extremely early during library loading, before main is called.
62
ATTRIBUTE_DEFAULT_VISIBILITY ATTRIBUTE_USED const char* __lsan_default_suppressions() {
63
  return
64
    // Remove after JDK-8297688 is resolved.
65
    "leak:^JLI_MemAlloc$\n"
66
    "leak:^JLI_StringDup$\n";
67
}
68

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.