X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=bindings%2Fpython%2Fexamples%2Fsched_switch.py;h=1f4f48c7e0e3897acc293921a61e9a3ffc021b98;hp=7ae834bc1ec698249f4b80304009588264bd96c9;hb=74ea15add8dd5d0d6ee70c2062b8671104000b4e;hpb=bb919dd077169b5ee049ba3fc82f8555648cb22e diff --git a/bindings/python/examples/sched_switch.py b/bindings/python/examples/sched_switch.py index 7ae834bc..1f4f48c7 100644 --- a/bindings/python/examples/sched_switch.py +++ b/bindings/python/examples/sched_switch.py @@ -1,18 +1,19 @@ +#!/usr/bin/env python3 # sched_switch.py -# +# # Babeltrace example script with sched_switch events -# +# # Copyright 2012 EfficiOS Inc. -# +# # Author: Danny Serres -# +# # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal # in the Software without restriction, including without limitation the rights # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell # copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: -# +# # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. @@ -34,81 +35,72 @@ elif len(sys.argv) == 3: else: usePID = False - -ctx = Context() -ret = ctx.add_trace(sys.argv[len(sys.argv)-1], "ctf") +traces = TraceCollection() +ret = traces.add_trace(sys.argv[len(sys.argv)-1], "ctf") if ret is None: raise IOError("Error adding trace") -# Setting iterator -bp = IterPos(SEEK_BEGIN) -ctf_it = ctf.Iterator(ctx, bp) - -# Reading events -event = ctf_it.read_event() -while event is not None: +for event in traces.events: while True: if event.get_name() == "sched_switch": # Getting scope definition - sco = event.get_top_level_scope(ctf.scope.STREAM_EVENT_CONTEXT) + sco = event.get_top_level_scope(CTFReader.scope.STREAM_EVENT_CONTEXT) if sco is None: print("ERROR: Cannot get definition scope for sched_switch") break # Next event # Getting PID - pid_field = event.get_field(sco, "_pid") - pid = pid_field.get_int64() - - if ctf.field_error(): + pid_field = event.get_field_with_scope(sco, "pid") + if pid_field is None: print("ERROR: Missing PID info for sched_switch") break # Next event - + pid = pid_field.get_value() if usePID and (pid != long(sys.argv[1])): break # Next event - sco = event.get_top_level_scope(ctf.scope.EVENT_FIELDS) + sco = event.get_top_level_scope(CTFReader.scope.EVENT_FIELDS) # prev_comm - field = event.get_field(sco, "_prev_comm") - prev_comm = field.get_char_array() - if ctf.field_error(): + field = event.get_field_with_scope(sco, "prev_comm") + if field is None: print("ERROR: Missing prev_comm context info") + prev_comm = field.get_value() # prev_tid - field = event.get_field(sco, "_prev_tid") - prev_tid = field.get_int64() - if ctf.field_error(): + field = event.get_field_with_scope(sco, "prev_tid") + if field is None: print("ERROR: Missing prev_tid context info") + prev_tid = field.get_value() # prev_prio - field = event.get_field(sco, "_prev_prio") - prev_prio = field.get_int64() - if ctf.field_error(): + field = event.get_field_with_scope(sco, "prev_prio") + if field is None: print("ERROR: Missing prev_prio context info") + prev_prio = field.get_value() # prev_state - field = event.get_field(sco, "_prev_state") - prev_state = field.get_int64() - if ctf.field_error(): + field = event.get_field_with_scope(sco, "prev_state") + if field is None: print("ERROR: Missing prev_state context info") + prev_state = field.get_value() # next_comm - field = event.get_field(sco, "_next_comm") - next_comm = field.get_char_array() - if ctf.field_error(): + field = event.get_field_with_scope(sco, "next_comm") + if field is None: print("ERROR: Missing next_comm context info") + next_comm = field.get_value() # next_tid - field = event.get_field(sco, "_next_tid") - next_tid = field.get_int64() - if ctf.field_error(): + field = event.get_field_with_scope(sco, "next_tid") + if field is None: print("ERROR: Missing next_tid context info") + next_tid = field.get_value() # next_prio - field = event.get_field(sco, "_next_prio") - next_prio = field.get_int64() - if ctf.field_error(): + field = event.get_field_with_scope(sco, "next_prio") + if field is None: print("ERROR: Missing next_prio context info") + next_prio = field.get_value() # Output print("sched_switch, pid = {}, TS = {}, prev_comm = {},\n\t" @@ -118,11 +110,3 @@ while event is not None: prev_prio, prev_state, next_comm, next_tid, next_prio)) break # Next event - - # Next event - ret = ctf_it.next() - if ret < 0: - break - event = ctf_it.read_event() - -del ctf_it