如何使用babeltrace的python读取器api打印完整的跟踪?
使用下面的内容,我可以获得事件的字段,但是如何像babeltrace一样打印完整的跟踪。
import babeltrace
import sys
trace_collection = babeltrace.TraceCollection()
trace_path = sys.argv[1]
trace_collection.add_traces_recursive(trace_path, 'ctf')
for event in trace_collection.events:
print event.timestamp, event.cycles, event.name使用事件字典,可以获取字段。但是如何用python阅读器复制babeltrace输出呢?
for event in trace_collection.events:
for field in event.items():
print field示例babeltrace输出:
[2015-10-20 15:16:34.600508066] (+1.481059687) samplehost sample_trace_provider:INFO: { cpu_id = 1 }, { fileAndLine = "sampletest.cpp:330", msg = "Directing trace stream to channel #0" }如果需要进一步的信息,请告诉我。
发布于 2015-12-23 09:07:01
您不能像预期的那样在一条语句中做到这一点。这是因为Babeltrace绑定类不递归地实现__str__。
运行babeltrace命令时获得的默认输出格式称为ctf-text,是用C实现的。当然有一种方法可以复制ctf-text的输出,但是您需要手动实现一台漂亮的打印机。
https://stackoverflow.com/questions/34429728
复制相似问题