def _open_trace(self): self._babeltrace_version = trace_utils.read_babeltrace_version() if self._babeltrace_version >= self._BT_INTERSECT_VERSION: traces = TraceCollection(intersect_mode=self._args.intersect_mode) else: if self._args.intersect_mode: self._print('Warning: intersect mode not available - ' 'disabling') self._print(' Use babeltrace {} or later to ' 'enable'.format(trace_utils.BT_INTERSECT_VERSION)) self._args.intersect_mode = False traces = TraceCollection() handles = traces.add_traces_recursive(self._args.path, 'ctf') if handles == {}: self._gen_error('Failed to open ' + self._args.path, -1) self._handles = handles self._traces = traces self._ts_begin = traces.timestamp_begin self._ts_end = traces.timestamp_end self._process_date_args() self._read_tracer_version() if not self._args.skip_validation: self._check_lost_events() if not self._check_period_args(): self._gen_error('Invalid period parameters')
def _open_trace(self): self._babeltrace_version = trace_utils.read_babeltrace_version() if self._babeltrace_version >= self._BT_INTERSECT_VERSION: traces = TraceCollection(intersect_mode=self._args.intersect_mode) else: if self._args.intersect_mode: self._print('Warning: intersect mode not available - ' 'disabling') self._print(' Use babeltrace {} or later to ' 'enable'.format( trace_utils.BT_INTERSECT_VERSION)) self._args.intersect_mode = False traces = TraceCollection() handles = traces.add_traces_recursive(self._args.path, 'ctf') if handles == {}: self._gen_error('Failed to open ' + self._args.path, -1) self._handles = handles self._traces = traces self._ts_begin = traces.timestamp_begin self._ts_end = traces.timestamp_end self._process_date_args() self._read_tracer_version() if not self._args.skip_validation: self._check_lost_events() if not self._check_period_args(): self._gen_error('Invalid period parameters')
def _open_trace(self): traces = TraceCollection() handle = traces.add_traces_recursive(self._arg_path, "ctf") if handle == {}: self._gen_error("Failed to open " + self._arg_path, -1) self._handle = handle self._traces = traces common.process_date_args(self)
def __init__(self, path): self.traces = dict() self.tc = TraceCollection() if self.tc: # add traces to the collection if self.tc.add_traces_recursive(path, "ctf") is None: raise RuntimeError('Cannot add trace') else: print("no TraceCollection available...")
def _open_trace(self, path): traces = TraceCollection() handles = traces.add_traces_recursive(path, 'ctf') if not handles: print('Failed to open ' + path, file=sys.stderr) sys.exit(-1) self._handles = handles self._traces = traces
def load_traces(base): traces = TraceCollection() for root, dirs, files in os.walk(base): for f in files: if f == "metadata": ret = traces.add_trace(root, "ctf") if ret is None: raise IOError("Error adding trace %s" % root) return traces
def _open_trace(self): traces = TraceCollection() handles = traces.add_traces_recursive(self._args.path, 'ctf') if handles == {}: self._gen_error('Failed to open ' + self._args.path, -1) self._handles = handles self._traces = traces self._process_date_args() if not self._args.skip_validation: self._check_lost_events()
def _open_trace(self): traces = TraceCollection() handle = traces.add_traces_recursive(self._arg_path, "ctf") if handle == {}: self._gen_error("Failed to open " + self._arg_path, -1) self._handle = handle self._traces = traces common.process_date_args(self) if not self._arg_skip_validation: self._check_lost_events()
def _open_trace(self): traces = TraceCollection() handles = traces.add_traces_recursive(self._arg_path, 'ctf') if handles == {}: self._gen_error('Failed to open ' + self._arg_path, -1) self._handles = handles self._traces = traces self._process_date_args() if not self._arg_skip_validation: self._check_lost_events()
class CTFBabeltrace(): def __init__(self, path): self.traces = dict() self.tc = TraceCollection() if self.tc: # add traces to the collection if self.tc.add_traces_recursive(path, "ctf") is None: raise RuntimeError('Cannot add trace') else: print("no TraceCollection available...") def get_events(self): if self.tc: for event in self.tc.events: yield event
if __name__ == "__main__": parser = argparse.ArgumentParser(description='Trace parser') parser.add_argument('path', metavar="<path/to/trace>", help='Trace path') parser.add_argument('-t', '--test', type=int, help='Test to validate') parser.add_argument('-p', '--pid', type=int, help='PID of the app') args = parser.parse_args() if not args.test: print("Need to pass a test to validate (-t)") sys.exit(1) if not args.pid: print("Need to pass the PID to check (-p)") sys.exit(1) traces = TraceCollection() handle = traces.add_traces_recursive(args.path, "ctf") if handle is None: sys.exit(1) t = None if args.test == 1: t = Test1(traces, args.pid) elif args.test == 2: t = Test2(traces, args.pid) elif args.test == 3: t = Test3(traces, args.pid) elif args.test == 4: t = Test4(traces, args.pid) elif args.test == 5:
def reset_total(self, start_ts): for tid in self.state.tids.keys(): self.state.tids[tid].allocated_pages = 0 self.state.tids[tid].freed_pages = 0 self.state.mm["allocated_pages"] = 0 self.state.mm["freed_pages"] = 0 if __name__ == "__main__": parser = argparse.ArgumentParser(description='Memory usage analysis') parser.add_argument('path', metavar="<path/to/trace>", help='Trace path') parser.add_argument('-r', '--refresh', type=int, help='Refresh period in seconds', default=0) parser.add_argument('--top', type=int, default=10, help='Limit to top X TIDs (default = 10)') parser.add_argument('--no-progress', action="store_true", help='Don\'t display the progress bar') args = parser.parse_args() traces = TraceCollection() handle = traces.add_traces_recursive(args.path, "ctf") if handle is None: sys.exit(1) c = MemTop(traces) c.run(args) for h in handle.values(): traces.remove_trace(h)
if 'all' in types: output_enabled = {x: True for x in possibleTypes} else: output_enabled = {x: False for x in possibleTypes} for event_type in types: if event_type in possibleTypes: output_enabled[event_type] = True else: print('Invalid type:', event_type) parser.print_help() sys.exit(1) if args.syscall and not args.syscall.startswith('sys_'): args.syscall = 'sys_' + args.syscall traces = TraceCollection() handle = traces.add_trace(args.path, 'ctf') if handle is None: sys.exit(1) if args.errname: err_number = parse_errname(args.errname) else: err_number = None # Convert start/endtime from seconds to nanoseconds if args.start: args.start = args.start * NS_IN_S if args.end: args.end = args.end * NS_IN_S