#!/usr/bin/perl
-# Copyright (C) - 2012 Christian Babeux <christian.babeux@efficios.com>
+# Copyright (C) 2012 Christian Babeux <christian.babeux@efficios.com>
#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License, version 2 only, as
-# published by the Free Software Foundation.
+# SPDX-License-Identifier: GPL-2.0-only
#
-# This program is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
-# more details.
-#
-# You should have received a copy of the GNU General Public License along with
-# this program; if not, write to the Free Software Foundation, Inc., 51
-# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
use strict;
use warnings;
while (<>)
{
- my $timestamp = '\[(.*)\]';
- my $elapsed = '\((.*)\)';
- my $hostname = '.*';
- my $pname = '.*';
- my $pinfo = '.*';
- my $pid = '\d+';
- my $tp_event = '.*';
- my $cpu_info = '{\scpu_id\s=\s(\d+)\s\}';
- my $fields = '{(.*)}';
+ my $timestamp = '\[(?:.*)\]';
+ my $elapsed = '\((?:.*)\)';
+ my $hostname = '(?:.*)';
+ my $tp_event = '(.*)';
+ my $pkt_context = '(?:\{[^}]*\},\s)*';
+ my $fields = '\{(.*)\}$';
# Parse babeltrace text output format
- if (/$timestamp\s$elapsed\s($pinfo)\s($tp_event):\s$cpu_info,\s$fields/) {
+ if (/$timestamp\s$elapsed\s$hostname\s$tp_event:\s$pkt_context$fields/) {
my %event_hash;
- $event_hash{'timestamp'} = $1;
- $event_hash{'elapsed'} = $2;
- $event_hash{'pinfo'} = $3;
-
-# my @split_pinfo = split(':', $3);
-# $event_hash{'hostname'} = $split_pinfo[0];
-# $event_hash{'pname'} = defined($split_pinfo[1]) ? $split_pinfo[1] : undef;
-# $event_hash{'pid'} = defined($split_pinfo[2]) ? $split_pinfo[2] : undef;
-
- $event_hash{'tp_event'} = $4;
- $event_hash{'cpu_id'} = $5;
- $event_hash{'fields'} = parse_fields($6);
+ $event_hash{'tp_event'} = $1;
+ $event_hash{'fields'} = parse_fields($2);
push @events, \%event_hash;
}