动态加载未跟踪的事件

Events not traced with Dynamic loading

我正在使用带有相同文件的 lttng 文档中提供的示例 C 应用程序。

http://lttng.org/docs/#doc-tracing-your-own-user-application

我按照文档中的说明创建了我的共享库。

gcc -shared -W1,--no-as-needed -o hello-tp.so -llttng-ust hello-tp.o 

gcc -o hello hello.c hello-tp.o -ldl

hello-tp.so 创建在与应用程序 hello 相同的文件夹中。所以我运行

LD_PRELOAD=./hello-tp.so ./hello and beyond

我检查活动是否可用

PID: 13120 - Name: ./hello
  ust_baddr_statedump:soinfo (loglevel: TRACE_DEBUG_LINE (13)) (type: tracepoint)

正如预期的那样,它已正确加载。

我启用了所有事件的跟踪。我 运行 我的应用程序并开始跟踪。然后我停下来并使用 'lttng view' 来查看跟踪。

但是我的跟踪文件是空的。

即使我已启用它,none 的事件仍被跟踪是有原因的吗?

感谢您的帮助。

我不得不搬家 #定义TRACEPOINT_DEFINE #定义TRACEPOINT_PROBE_DYNAMIC_LINKAGE #include "hello-tp.h" //包含事件的头文件

进入我的hello.c

但不知道我必须保留 #定义TRACEPOINT_CREATE_PROBES 在我的 hello-tp.c 中,所以当我链接到 hello-tp.o 时,它注册了事件但从未追踪到任何东西。所以 hello-tp.so 不会起作用。这个资源对我帮助很大。 https://github.com/giraldeau/lttng-ust/tree/master/doc/examples/demo