+#!/usr/bin/env python3
# babeltrace_and_lttng.py
#
# Babeltrace and LTTng example script
if ret < 0:
raise LTTngError(lttng.strerror(ret))
+domain = lttng.Domain()
+domain.type = lttng.DOMAIN_KERNEL
+
han = None
-han = lttng.Handle(ses_name, lttng.Domain())
+han = lttng.Handle(ses_name, domain)
if han is None:
raise LTTngError("Handle not created")
# Enabling all events
-ret = lttng.enable_event(han, lttng.Event(), None)
+event = lttng.Event()
+event.type = lttng.EVENT_ALL
+event.loglevel_type = lttng.EVENT_LOGLEVEL_ALL
+ret = lttng.enable_event(han, event, None)
if ret < 0:
raise LTTngError(lttng.strerror(ret))
-
# Start, wait, stop
ret = lttng.start(ses_name)
if ret < 0:
# BABELTRACE
-# Create context and add trace:
-ctx = babeltrace.Context()
-ret = ctx.add_trace(trace_path + "/kernel", "ctf")
+# Create TraceCollecion and add trace:
+traces = babeltrace.TraceCollection()
+ret = traces.add_trace(trace_path + "/kernel", "ctf")
if ret is None:
raise BabeltraceError("Error adding trace")
-# Iterator setup
-bp = babeltrace.IterPos(babeltrace.SEEK_BEGIN)
-ctf_it = babeltrace.ctf.Iterator(ctx,bp)
-
# Reading events from trace
# and outputting timestamps and event names
# in out_file
print("Writing trace file...")
output = open(out_file, "wt")
-event = ctf_it.read_event()
-while(event is not None):
- output.write("TS: {}, {} : {}\n".format(event.get_timestamp(),
- event.get_cycles(), event.get_name()))
-
- # Next event
- ret = ctf_it.next()
- if ret < 0:
- break
- event = ctf_it.read_event()
+for event in traces.events:
+ output.write("TS: {}, {} : {}\n".format(event.timestamp, event.cycles, event.name))
# Closing file
output.close()
-# Destroying dynamic elements
-del ctf_it, han
print("Done.")