if len(sys.argv) < 2:
raise TypeError("Usage: python example-api-test.py path/to/file")
-# Create context and add trace:
-ctx = Context()
-trace_handle = ctx.add_trace(sys.argv[1], "ctf")
+# Create TraceCollection and add trace:
+traces = TraceCollection()
+trace_handle = traces.add_trace(sys.argv[1], "ctf")
if trace_handle is None:
raise IOError("Error adding trace")
# Listing events
-lst = ctf.get_event_decl_list(trace_handle, ctx)
+lst = CTFReader.get_event_decl_list(trace_handle, traces)
print("--- Event list ---")
for item in lst:
print("event : {}".format(item.get_name()))
print("--- Done ---")
-# Iter trace
-bp = IterPos(SEEK_BEGIN)
-ctf_it = ctf.Iterator(ctx,bp)
-event = ctf_it.read_event()
-
-while(event is not None):
+for event in traces.events:
print("TS: {}, {} : {}".format(event.get_timestamp(),
event.get_cycles(), event.get_name()))
if prev_field is None:
print("ERROR: Missing prev_comm context info")
else:
- prev_comm = prev_field[0].get_char_array()
- print("sched_switch prev_comm: {}".format(prev_comm))
+ prev_comm = prev_field[0].get_value()
+ if prev_comm is not None:
+ print("sched_switch prev_comm: {}".format(prev_comm))
if event.get_name() == "exit_syscall":
ret_field = event.get_field("ret")
if ret_field is None:
print("ERROR: Unable to extract ret")
else:
- ret_code = ret_field[0].get_int64()
- print("exit_syscall ret: {}".format(ret_code))
-
- ret = ctf_it.next()
- if ret < 0:
- break
- else:
- event = ctf_it.read_event()
+ ret_code = ret_field[0].get_value()
+ if ret_code is not None:
+ print("exit_syscall ret: {}".format(ret_code))
-del ctf_it