X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=bindings%2Fpython%2Fexamples%2Fexample-api-test.py;h=1ff742e77ae386bb11e609171d83a294060a1840;hp=104f2d5585e3c216ebe2a0611f400cd1d1f28ecd;hb=cb1fcc68fd8c397ad94691ced4a70b3307f7a86b;hpb=f85f806c0bd6b0d2583805d6bdd8d792b311c412 diff --git a/bindings/python/examples/example-api-test.py b/bindings/python/examples/example-api-test.py index 104f2d55..1ff742e7 100644 --- a/bindings/python/examples/example-api-test.py +++ b/bindings/python/examples/example-api-test.py @@ -1,18 +1,19 @@ +#!/usr/bin/env python3 # example_api_test.py -# +# # Babeltrace example script based on the Babeltrace API test script -# +# # 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. @@ -26,52 +27,32 @@ from babeltrace import * 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 = event_declaration_list(trace_handle, traces) print("--- Event list ---") for item in lst: - print("event : {}".format(item.get_name())) + print("event : {}".format(item.name)) print("--- Done ---") -# Iter trace -bp = IterPos(SEEK_BEGIN) -ctf_it = ctf.Iterator(ctx,bp) -event = ctf_it.read_event() +for event in traces.events: + print("TS: {}, {} : {}".format(event.timestamp, event.cycles, event.name)) -while(event is not None): - print("TS: {}, {} : {}".format(event.get_timestamp(), - event.get_cycles(), event.get_name())) - - if event.get_name() == "sched_switch": - sco = event.get_top_level_scope(ctf.scope.EVENT_FIELDS) - prev_field = event.get_field(sco, "_prev_comm") - prev_comm = prev_field.get_char_array() - - if ctf.field_error(): + if event.name == "sched_switch": + prev_comm = event["prev_comm"] + if prev_comm is None: print("ERROR: Missing prev_comm context info") else: print("sched_switch prev_comm: {}".format(prev_comm)) - if event.get_name() == "exit_syscall": - sco = event.get_top_level_scope(ctf.scope.EVENT_FIELDS) - ret_field = event.get_field(sco, "_ret") - ret_code = ret_field.get_int64() - - if ctf.field_error(): + if event.name == "exit_syscall": + ret_code = event["ret"] + if ret_code is None: print("ERROR: Unable to extract ret") else: print("exit_syscall ret: {}".format(ret_code)) - - ret = ctf_it.next() - if ret < 0: - break - else: - event = ctf_it.read_event() - -del ctf_it