动态加载不跟踪事件

时间:2015-04-16 17:10:55

标签: lttng

我使用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'看到痕迹。

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

即使我启用了这些事件,是否有理由没有跟踪事件?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

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

进入我的hello.c

但我不知道我必须保留     #define TRACEPOINT_CREATE_PROBES 在我的hello-tp.c中,所以当我链接到hello-tp.o时,它注册了该事件但从未跟踪任何内容。所以hello-tp.so不会起作用。这个资源帮了我一堆。 https://github.com/giraldeau/lttng-ust/tree/master/doc/examples/demo