我使用了 Ubunto 16.04、Lttng 2.8.1 和 python3.5.2。我还安装了 python3-babeltrace 包。第一步是我完全根据lttng文档记录了一些日志,用lttng create、eventet-enable、start、stop、destroy。在第二步中,我编写了一个非常简单的 python 程序来读取 lttng 事件,如下所示:
from collections import Counter
import babeltrace
import sys
print("Start")
trace_path = sys.argv[1]
print("1-Get Path")
col = babeltrace.TraceCollection()
print("2-TraceCollection")
# (LTTng traces always have the 'ctf' format)
if col.add_trace(trace_path, 'ctf') is None:
raise RuntimeError('Cannot add trace')
print("3-Add trace by ctf")
for event in col.events:
print(event.name)
print("4-Get all events")
然后我用 gdb 调试程序,然后输出:
Start
1-Get Path
2-TraceCollection
3-Add trace by ctf
我得到了错误:
程序收到信号 SIGSEGV,分段错误。0x00007ffff565d97f in bt_iter_add_trace () from /usr/lib/x86_64-linux-gnu/libbabeltrace.so.1
有人对此有任何想法吗?
我卸载了所有软件包,也卸载了 ubuntu,然后再次安装,但每次都遇到同样的错误。我也尝试安装 Ubuntu 16.10,但是在安装 lttng-module 包时我遇到了另一个错误。
更新:
发现babeltrace命令和lttng视图都没有工作,导致segmentation fault错误。