Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clean enable lttng commits #16

Open
wants to merge 30 commits into
base: tracing
Choose a base branch
from
Open

Clean enable lttng commits #16

wants to merge 30 commits into from

Conversation

drazumova
Copy link

No description provided.

Copy link
Member

@AntonKozlov AntonKozlov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Классно, работает dtrace вместе с lttng!

Комментов много, но много и пересекаются. Кажется, по несколько можно фиксить одним изменением. Лучше сначала прочитать всё

Пробую другие комбинации dtrace/lttng.
Полезно иметь несколько конфигов сборок в одной ждк

configure --with-conf-name=dt-lt --enable-dtrace=yes --enable-lttng=yes
make CONF=dt-lt images

Сборка будет в build/dt-lt/...

Comment on lines 9 to 12
java Main hotspot.d $1/src/hotspot/share/utilities/hotspotLTTngDtrace.h lttng dtrace
java Main hotspot.d $1/src/hotspot/share/utilities/hotspotDtrace.h dtrace
java Main hs_private.d $1/src/hotspot/share/utilities/hs_privateLTTngDtrace.h lttng dtrace
java Main hs_private.d $1/src/hotspot/share/utilities/hs_privateDtrace.h dtrace
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hs_private.d и hotspot.d скопированы. А можно прописать относительные пути до них, ../../src/hotspot/os/posix/dtrace/hotspot.d, а копии удалить?

@@ -50,6 +51,14 @@
#include "dtracefiles/hotspot_jni.h"
#include "dtracefiles/hs_private.h"

#elif defined(LTTNG_ENABLED) /* defined(DTRACE_ENABLED) */
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Это только для объявления DTRACE_ONLY? Можно ли объединить с предыдущим блоком?

#if defined(DTRACE_ENABLED) || defined(LTTNG_ENABLED)
#define DTRACE_ONLY(x) x
...

#if defined(DTRACE_ENABLED)
... // специфика для DTRACE
#endif // DTRACE_ENABLED

#endif // DTRACE_ENABLED || LTTNG_ENABLED

@@ -0,0 +1,126 @@
#define HOTSPOT_CLASS_LOADED_WRAPPER(arg0,arg1,arg2,arg3) \
HOTSPOT_CLASS_LOADED(arg0,arg1,arg2,arg3)tracepoint(hotspot, class__loaded, arg0,arg1,arg2,arg3)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Можно ли совместить hotspotDtrace.h и hotspotLTTngDtrace.h?

hotspotLTTngDtrace.h отличаются только #include "utilities/lttng.hpp" и ; между dtrace probe и lttng tracpoint

#include "utilities/lttng.hpp"

#define HOTSPOT_CLASS_LOADED_WRAPPER(arg0,arg1,arg2,arg3) \
HOTSPOT_CLASS_LOADED(arg0,arg1,arg2,arg3);tracepoint(hotspot, class__loaded, arg0,arg1,arg2,arg3)

#define HOTSPOT_CLASS_UNLOADED_WRAPPER(arg0,arg1,arg2,arg3) \
HOTSPOT_CLASS_UNLOADED(arg0,arg1,arg2,arg3);tracepoint(hotspot, class__unloaded, arg0,arg1,arg2,arg3)

Можно было бы

#ifdef LTTNG_ENABLED
#include "utilities/lttng.hpp"
#else
#define tracepoint(...)
#endif

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Сломался билд с одним только dtrace'ом:

  • из-за отсутствия ;
  • из-за отсутствия декларации tracepoint

Вот такое чинит билд

diff --git a/src/hotspot/share/utilities/hotspotDtrace.h b/src/hotspot/share/utilities/hotspotDtrace.h
index f2487e26f4..5793217e40 100644
--- a/src/hotspot/share/utilities/hotspotDtrace.h
+++ b/src/hotspot/share/utilities/hotspotDtrace.h
@@ -1,126 +1,128 @@
+#define tracepoint(...)
+
 #define HOTSPOT_CLASS_LOADED_WRAPPER(arg0,arg1,arg2,arg3) \
-HOTSPOT_CLASS_LOADED(arg0,arg1,arg2,arg3)tracepoint(hotspot, class__loaded, arg0,arg1,arg2,arg3)
+HOTSPOT_CLASS_LOADED(arg0,arg1,arg2,arg3);tracepoint(hotspot, class__loaded, arg0,arg1,arg2,arg3)
 
 #define HOTSPOT_CLASS_UNLOADED_WRAPPER(arg0,arg1,arg2,arg3) \
-HOTSPOT_CLASS_UNLOADED(arg0,arg1,arg2,arg3)tracepoint(hotspot, class__unloaded, arg0,arg1,arg2,arg3)
+HOTSPOT_CLASS_UNLOADED(arg0,arg1,arg2,arg3);tracepoint(hotspot, class__unloaded, arg0,arg1,arg2,arg3)

@@ -0,0 +1,128 @@
#include "utilities/lttng.hpp"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Наверно лучше напрямую включить utilities/lttngTracepoints.hpp

@@ -0,0 +1,20 @@
#include "utilities/lttng.hpp"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

utilities/lttngHSPrivate.hpp

@@ -0,0 +1,7 @@
#ifndef SHARE_UTILITIES_LTTNG_HPP
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Этот файл можно удалить. Кажется, он существует, только чтобы генератор включал именно его. Но в итоге в хидеры включается слишком много трейспоинтов.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

никто не инклюдит хидер, удалить

@@ -28,6 +28,7 @@

#if defined(DTRACE_ENABLED)

#define SDT_USE_VARIADIC
#include <sys/sdt.h>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Было бы здорово включать #include <lttng/tracepoint.h> (системный хидер) где-нибудь неподалёку, в этом же файле.
Возможно, было бы проще в одном месте разрулить, что в каком порядке включать. Например только lttng если DTRACE_ENABLED и LTTNG_UST_HAVE_SDT_INTEGRATION

Если да, то надо удалить #include <lttng/tracepoint.h> из utilities/lttngTracepoints.hpp и utilities/lttngHSPrivate.hpp

Copy link
Member

@AntonKozlov AntonKozlov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Здорово, работает как надо!

Предлагаю доделывать работу в этом PR/бранче (не мержить). Когда будет всё готово, надо будет ещё раз проревьюить тщательно и подчистить что надо

@@ -0,0 +1,4 @@
export CLASSPATH=".:/usr/local/lib/antlr-4.8-complete.jar:$CLASSPATH"
java -jar /usr/local/lib/antlr-4.8-complete.jar Probes.g4
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probes.g4 не закоммичен


#include <utilities/lttngTracepoints.hpp>
#include <utilities/lttngHSPrivate.hpp>
#include <utilities/lttng_hs_jni.hpp>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

не закоммичен utilities/lttng_hs_jni.hpp

src/hotspot/share/utilities/dtrace.hpp Show resolved Hide resolved
Comment on lines 33 to 35
if (isLTTngEnabled && !printNames) {
out.println("#include \"utilities/lttng.hpp\"\n");
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Можно удалить?

Comment on lines 83 to 91
if (dtrace) {
stream.print(probeMacroName + "(" + args + ")");
}
if (dtrace && lttng) {
stream.print(";");
}
if (dtrace) {
stream.print("tracepoint" + params);
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

всё безусловно?

Comment on lines 1 to 17
LTTNG_SOURCE_DIR := $(TOPDIR)/src/hotspot/share/utilities
LTTNG_GENSRC_DIR := $(JVM_VARIANT_OUTPUTDIR)/gensrc/lttng

$(LTTNG_GENSRC_DIR)/%.o: $(LTTNG_SOURCE_DIR)/%.cpp
$(call MakeDir, $(@D))
$(CPP) -I$(LTTNG_SOURCE_DIR) -fpic -c $^ -o $@

$(LTTNG_GENSRC_DIR)/lib%.so: $(LTTNG_GENSRC_DIR)/%.o
$(CPP) -shared -o $@ $^ -llttng-ust -ldl

LTTNG_LIB_FILES := $(addprefix $(LTTNG_GENSRC_DIR)/, \
liblttng_hs_jni.so \
liblttng_hotspot.so \
liblttng_hs_private.so \
)

TARGETS += $(LTTNG_LIB_FILES)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

JDK uses library make function to define compilation. It's worth use it as it would handle various interesting cases, such as crosscompilation. Example is make/hotspot/lib/CompileDtraceLibraries.gmk

    $(eval $(call SetupNativeCompilation, BUILD_LIBJVM_DTRACE, \
        NAME := jvm_dtrace, \
        OUTPUT_DIR := $(JVM_LIB_OUTPUTDIR), \
        SRC := $(TOPDIR)/src/java.base/solaris/native/libjvm_dtrace, \
        CFLAGS := $(JNI_INCLUDE_FLAGS) -m64 -G -mt -KPIC -xldscope=hidden, \
        LDFLAGS := -m64 -mt -xnolib $(SHARED_LIBRARY_FLAGS), \
        LIBS := $(LIBDL) -lthread -ldoor, \
        OBJECT_DIR := $(LIBJVM_DTRACE_OUTPUTDIR)/objs, \
        DEFINE_THIS_FILE := false, \
    ))

Not all parameters are needed for our libs, of course.

gcc -o main main.o -ldl

# LD_PRELOAD=./libtpp.so ./main
./main
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great! I see this starts and generates events on my system with lttng and starts in docker container that doesn't have lttng. That what we need.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would suggest add the dlopen to src/hotspot/os/linux/os_linux.cpp, os::init_2 or nearby

@drazumova
Copy link
Author

Без lttng не работает. Пока не поняла, в чем пробелема

@AntonKozlov
Copy link
Member

Вижу с SetupNativeCompilation получилось, здорово!

Без lttng не работает. Пока не поняла, в чем пробелема

Вот так?

I have no name!@10cec37744ad:/home/anton/proj/jdk-tracing$ ./build/d-no-l-yes/images/jdk/bin/java -version
Error: dl failure on line 603
Error: failed /home/anton/proj/jdk-tracing/build/d-no-l-yes/images/jdk/lib/server/libjvm.so, because liblttng-ust.so.0: cannot open shared object file: No such file or directory

libjvm слинкована с lttng-ust. Похоже, только liblttng.so надо линковать с lttng-ust

@drazumova
Copy link
Author

Без статической линковки lttng события не пробрасываются. dlopen не видит библиотеку (сейчас кладется вместе с другими библиотеками, но если класть вместе с libjvm, то так же). Если ее добавить в LD_PRELOAD, то событий все равно нет.

@AntonKozlov
Copy link
Member

readelf/nm умеют показывать символы в объектном файле

$ readelf -a build/linux-x86_64-server-release/images/jdk/lib/liblttng.so
Таблица символов «.dynsym» содержит 5 элементов:
   Чис:    Знач           Разм Тип     Связ   Vis      Индекс имени
     0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND 
     1: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND _ITM_deregisterTMCloneTab
     2: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND __gmon_start__
     3: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND _ITM_registerTMCloneTable
     4: 0000000000000000     0 FUNC    WEAK   DEFAULT  UND __cxa_finalize@GLIBC_2.2.5 (2)

Таблица символов «.symtab» содержит 39 элементов:
   Чис:    Знач           Разм Тип     Связ   Vis      Индекс имени
     0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND 
     1: 0000000000001020     0 FUNC    LOCAL  DEFAULT    9 deregister_tm_clones
     2: 0000000000001050     0 FUNC    LOCAL  DEFAULT    9 register_tm_clones
     3: 0000000000001090     0 FUNC    LOCAL  DEFAULT    9 __do_global_dtors_aux
     4: 0000000000004020     1 OBJECT  LOCAL  DEFAULT   18 completed.7392
     5: 0000000000003e28     0 OBJECT  LOCAL  DEFAULT   13 __do_global_dtors_aux_fin
     6: 00000000000010e0     0 FUNC    LOCAL  DEFAULT    9 frame_dummy
     7: 0000000000003e20     0 OBJECT  LOCAL  DEFAULT   12 __frame_dummy_init_array_
     8: 0000000000002000     0 OBJECT  LOCAL  DEFAULT   11 __FRAME_END__
     9: 00000000000010ec     0 FUNC    LOCAL  DEFAULT   10 _fini
    10: 0000000000004018     0 OBJECT  LOCAL  DEFAULT   17 __dso_handle
    11: 0000000000003e30     0 OBJECT  LOCAL  DEFAULT   14 _DYNAMIC
    12: 0000000000004020     0 OBJECT  LOCAL  DEFAULT   17 __TMC_END__
    13: 0000000000004000     0 OBJECT  LOCAL  DEFAULT   16 _GLOBAL_OFFSET_TABLE_
    14: 0000000000001000     0 FUNC    LOCAL  DEFAULT    8 _init
    15: 0000000000000200     0 SECTION LOCAL  DEFAULT    1 
    16: 0000000000000228     0 SECTION LOCAL  DEFAULT    2 
    17: 0000000000000248     0 SECTION LOCAL  DEFAULT    3 
    18: 00000000000002c0     0 SECTION LOCAL  DEFAULT    4 
    19: 0000000000000354     0 SECTION LOCAL  DEFAULT    5 
    20: 0000000000000360     0 SECTION LOCAL  DEFAULT    6 
    21: 0000000000000380     0 SECTION LOCAL  DEFAULT    7 
    22: 0000000000001000     0 SECTION LOCAL  DEFAULT    8 
    23: 0000000000001020     0 SECTION LOCAL  DEFAULT    9 
    24: 00000000000010ec     0 SECTION LOCAL  DEFAULT   10 
    25: 0000000000002000     0 SECTION LOCAL  DEFAULT   11 
    26: 0000000000003e20     0 SECTION LOCAL  DEFAULT   12 
    27: 0000000000003e28     0 SECTION LOCAL  DEFAULT   13 
    28: 0000000000003e30     0 SECTION LOCAL  DEFAULT   14 
    29: 0000000000003fe0     0 SECTION LOCAL  DEFAULT   15 
    30: 0000000000004000     0 SECTION LOCAL  DEFAULT   16 
    31: 0000000000004018     0 SECTION LOCAL  DEFAULT   17 
    32: 0000000000004020     0 SECTION LOCAL  DEFAULT   18 
    33: 0000000000000000     0 SECTION LOCAL  DEFAULT   19 
    34: 0000000000000000     0 SECTION LOCAL  DEFAULT   20 
    35: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND _ITM_deregisterTMCloneTab
    36: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND __gmon_start__
    37: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND _ITM_registerTMCloneTable
    38: 0000000000000000     0 FUNC    WEAK   DEFAULT  UND __cxa_finalize@@GLIBC_2.2

Здесь нет ничего про lttng. А вот если сделать

diff --git a/src/java.base/linux/native/lttng/lttng_hs_private.cpp b/src/java.base/linux/native/lttng/lttng_hs_private.cpp
index f6be21536e..ec847b6328 100644
--- a/src/java.base/linux/native/lttng/lttng_hs_private.cpp
+++ b/src/java.base/linux/native/lttng/lttng_hs_private.cpp
@@ -1,7 +1,3 @@
-#if defined(LTTNG_ENABLED)
-
 #define TRACEPOINT_CREATE_PROBES
 
 #include <lttng_hs_private.hpp>
-
-#endif

и перекомпилировать, то


Таблица символов «.dynsym» содержит 28 элементов:
   Чис:    Знач           Разм Тип     Связ   Vis      Индекс имени
     0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND 
     1: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND _model_emf_uri___hs_priva
     2: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND abort@GLIBC_2.2.5 (2)
     3: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND _loglevel___hs_private___
     4: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND lttng_probe_unregister
     5: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND _ITM_deregisterTMCloneTab
     6: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND _loglevel___hs_private___
     7: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND __stack_chk_fail@GLIBC_2.4 (3)
     8: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND _loglevel___hs_private___
     9: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND _model_emf_uri___hs_priva
    10: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND memset@GLIBC_2.2.5 (2)
    11: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND _model_emf_uri___hs_priva
    12: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND _model_emf_uri___hs_priva
    13: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND fprintf@GLIBC_2.2.5 (2)
    14: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND _loglevel___hs_private___
    15: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND __gmon_start__
    16: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND _model_emf_uri___hs_priva
    17: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND _loglevel___hs_private___
    18: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND dlopen@GLIBC_2.2.5 (4)
    19: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND _loglevel___hs_private___
    20: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND dlclose@GLIBC_2.2.5 (4)
    21: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND lttng_probe_register
    22: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND _model_emf_uri___hs_priva
    23: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND _ITM_registerTMCloneTable
    24: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND dlsym@GLIBC_2.2.5 (4)
    25: 0000000000000000     0 FUNC    WEAK   DEFAULT  UND __cxa_finalize@GLIBC_2.2.5 (2)
    26: 0000000000000000     0 OBJECT  GLOBAL DEFAULT  UND stderr@GLIBC_2.2.5 (2)
    27: 00000000000061c0     4 OBJECT  GLOBAL DEFAULT   23 __tracepoint_provider_hs_

Таблица символов «.symtab» содержит 134 элемента:
   Чис:    Знач           Разм Тип     Связ   Vis      Индекс имени
     0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND 
     1: 00000000000010c0     0 FUNC    LOCAL  DEFAULT   11 deregister_tm_clones
     2: 00000000000010f0     0 FUNC    LOCAL  DEFAULT   11 register_tm_clones
     3: 0000000000001130     0 FUNC    LOCAL  DEFAULT   11 __do_global_dtors_aux
     4: 0000000000006120     1 OBJECT  LOCAL  DEFAULT   23 completed.7392
     5: 0000000000005408     0 OBJECT  LOCAL  DEFAULT   17 __do_global_dtors_aux_fin
     6: 0000000000001180     0 FUNC    LOCAL  DEFAULT   11 frame_dummy
     7: 00000000000053f0     0 OBJECT  LOCAL  DEFAULT   16 __frame_dummy_init_array_
     8: 0000000000001189   198 FUNC    LOCAL  DEFAULT   11 __tracepoint__init_urcu_s
     9: 000000000000124f   156 FUNC    LOCAL  DEFAULT   11 __tracepoints__init
    10: 00000000000012eb   318 FUNC    LOCAL  DEFAULT   11 __tracepoints__destroy
    11: 0000000000001429    27 FUNC    LOCAL  DEFAULT   11 _ZL14cds_list_emptyP13cds
    12: 0000000000001444   174 FUNC    LOCAL  DEFAULT   11 _ZL24lib_ring_buffer_ctx_
    13: 00000000000014f2     7 FUNC    LOCAL  DEFAULT   11 _ZL41__tracepoint_provide
    14: 00000000000014f9    67 FUNC    LOCAL  DEFAULT   11 _ZL38__tracepoint_provide
    15: 0000000000003080   256 OBJECT  LOCAL  DEFAULT   13 _ZL48__tp_name_len_checkh
    16: 0000000000003180   256 OBJECT  LOCAL  DEFAULT   13 _ZL46__tp_name_len_checkh
    17: 0000000000003280   256 OBJECT  LOCAL  DEFAULT   13 _ZL52__tp_name_len_checkh
    18: 0000000000003380   256 OBJECT  LOCAL  DEFAULT   13 _ZL50__tp_name_len_checkh
    19: 0000000000003480   256 OBJECT  LOCAL  DEFAULT   13 _ZL50__tp_name_len_checkh

И эвенты начинают приходить.
Похоже, нужный дефайн не приходит, наверно, лучше всего компилировать libttng.so условно.

Но в целом-то всё работает! Класс!

Я тогда планирую плотно посмотреть на патч. Больше же изменений не предвидится?

@drazumova
Copy link
Author

drazumova commented Apr 11, 2020

Функциональных изменений не планировалось.
Но есть проблема с тем, что сейчас хидеры дублируются в hotspot/share/lttng, так как их нужно подключать в dtrace.cpp.

Copy link
Member

@AntonKozlov AntonKozlov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Да вообще всё отлично, совсем минорные комментарии. Будет время исправить?

Comment on lines 150 to 153
if test "x$INCLUDE_LTTNG" = xtrue; then
BASIC_JVM_LIBS="$BASIC_JVM_LIBS -ldl"
fi

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

МБ не надо с тех пор, как компилим трейспоинты в отдельную .so

@@ -5201,6 +5201,10 @@ jint os::init_2(void) {
set_coredump_filter(FILE_BACKED_SHARED_BIT);
}

#if defined(LTTNG_ENABLED)
dlopen("liblttng.so", RTLD_NOW | RTLD_GLOBAL);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Хочется показать, что мы подумали про ошибку

           if (!dlopen()) {
                  /* a problem with loading lttng.so, lttng-ust.so probably unavilable, ignore */
           }

probe ToReflectedMethod__return(void*);
probe UnregisterNatives__entry(void*, void*);
probe UnregisterNatives__return(uint32_t);
probe AllocObject__entry(void* env, void* clazz);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Отступ здесь съехал, нужно добавит хоть руками

@@ -0,0 +1,749 @@
#if !defined(TRACEPOINT_HEADER_MULTI_READ)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Для новых файлов-исходников нужна лицензия, здесь я подумаю

@@ -0,0 +1,7 @@
#ifndef SHARE_UTILITIES_LTTNG_HPP
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

никто не инклюдит хидер, удалить

@@ -1090,8 +1090,8 @@
#define HOTSPOT_JNI_GETMODULE_RETURN(arg0)
#define HOTSPOT_JNI_GETMODULE_RETURN_ENABLED()

#else /* !defined(DTRACE_ENABLED) */
#error This file should only be included when dtrace is not enabled
#if defined(DTRACE_ENABLED) && !(defined(LTTNG_ENABLED) && defined(LTTNG_UST_HAVE_SDT_INTEGRATION))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Двинуть вверх на место закомментированного условия

Comment on lines 1 to 4
#define TRACEPOINT_CREATE_PROBES

#include <lttng_hotspot.hpp>

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Не хотим объединить такие 3 файла в один, как в хотспоте

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants