我使用LTTng来跟踪内核事件和用户空间跟踪点。我想形象化他们在一个跟踪罗盘窗口。但是,LTTng将内核事件和用户空间事件保存在单独的跟踪文件中,这使得我无法在跟踪Compass中一起查看它们。
这里有谁知道如何:
(1)将两种事件保存在一个文件中?或
(2)使用跟踪指南针组合两个跟踪文件中的信息?
详细信息:
我使用LTTng跟踪两种事件:
(1)内核sched_switch事件(当调度程序导致上下文切换时)
(2)用户空间自定义跟踪点(我将它们命名为setMarkerTracepoint,并从我的C++程序中发布)
我使用以下命令来设置跟踪会话并开始跟踪
# trace data is saved at TRACE_DIR
TRACE_DIR=/home/root/lttng-traces
lttng-sessiond --daemonize
lttng create my-session --output=$TRACE_DIR
lttng enable-event --userspace tracepointProvider:setMarkerTracepoint
lttng enable-event --kernel sched_switch
lttng start然后,运行C++应用程序,并在应用程序结束后停止LTTng跟踪。
lttng destroy现在,当我检查我的跟踪数据保存在哪里时,我发现了两个具有跟踪数据的位置:
(1) /home/root/lttng-跟踪/内核/
(2) /home/root/lttng-traces/ust/
我使用跟踪指南针来可视化痕迹。内核目录下的文件有所有的sched_switch事件,但没有setMarkerTracepoint事件。ust目录下的文件反之亦然。


我想在相同的tracepoints窗口中查看sched_switch事件和C++代码中的跟踪点。
跟踪罗盘用户指南和LTTng文档没有谈到一起使用内核跟踪和用户空间跟踪。
我认为这应该是可能的,因为如果我使用lttng-view命令并安装了babeltrace,我可以看到lttng-view输出的信息中列出的两种事件。
(如有任何帮助,将不胜感激!)
发布于 2020-02-21 22:51:43
在示踪中,通过一个“实验”将多种类型的痕迹或痕迹结合在一起。
您可以遵循以下文档部分:创造一个实验
https://stackoverflow.com/questions/60330773
复制相似问题