我使用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'看到痕迹。
但是我的跟踪文件是空的。
即使我启用了这些事件,是否有理由没有跟踪事件?
感谢您的帮助。
答案 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