如何使用 babeltrace-python api 打印完整的跟踪事件?
how to print complete trace event using babeltrace-python api?
如何使用 babeltrace 的 python reader 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 reader 复制 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" }
如果需要任何进一步的信息,请告诉我。
您不能像预期的那样在单个语句中执行此操作。这是因为 Babeltrace Python 绑定 类 没有实现 __str__
递归。
当 运行 babeltrace
命令调用 ctf-text 时得到的默认输出格式是用 C 实现的。当然有一种复制 ctf-text 输出的方法,但您需要在 Python.
中手动实现漂亮的打印机
如何使用 babeltrace 的 python reader 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 reader 复制 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" }
如果需要任何进一步的信息,请告诉我。
您不能像预期的那样在单个语句中执行此操作。这是因为 Babeltrace Python 绑定 类 没有实现 __str__
递归。
当 运行 babeltrace
命令调用 ctf-text 时得到的默认输出格式是用 C 实现的。当然有一种复制 ctf-text 输出的方法,但您需要在 Python.