X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/618709054477a826cf2d5aa94da7a6a65696171c..156e136f01b023610253de9a5ce4e38c1a1ad0b9:/tools/MSG_visualization/colorize.pl diff --git a/tools/MSG_visualization/colorize.pl b/tools/MSG_visualization/colorize.pl index f7d066fda9..2c7cc4e048 100755 --- a/tools/MSG_visualization/colorize.pl +++ b/tools/MSG_visualization/colorize.pl @@ -32,6 +32,30 @@ my (@coltab) = ( my %pid; +# Get options +# +while (($_ = $ARGV[0]) =~ /^-/) { + shift; + if (/-location/i) { + $opt_print_location = 1; shift; + } elsif (/-h(elp)?$|-u(sage)?$/i) { + print< + + where is a text file of values or '-' for STDIN + +Options: () denote short version + + -location Print the location in the code of the message. +EOH +; + exit; + } +} + sub pidcolor { my $pid = shift; @@ -42,25 +66,52 @@ sub pidcolor { return $coltab[$pid{$pid}]; } +sub print_line { + my($host,$procname,$pid,$date,$location,$xbt_channel,$message)=@_; + + print $col_norm; + printf "[% 10.3f]",$date; + + print pidcolor($pid); + + if(defined($location)) { + printf "[%10s:%-10s %s ]",$host,$procname,$location; + } else { + printf "[%10s:%-10s]",$host,$procname; + } + print " $message"; + print $col_norm."\n"; +} + +# Read the messages and do the job while (<>) { $orgline = $thisline = $_; - if ( $thisline =~ /^\[(\w+):(\w+):\((\d+)\) ([0-9\.]*)\] ([^\[]*) \[([^\[]*)\] (.*)$/ ) { + # Typical line [Gatien:slave:(9) 11.243148] msg/gos.c:137: [msg_gos/DEBUG] Action terminated + if ($thisline =~ /^\[([^:]+):([^:]+):\((\d+)\) ([\d\.]*)\] ([^\[]*) \[([^\[]*)\] (.*)$/) { $host=$1; $procname=$2; $pid=$3; $date=$4; - $location=$5; + if($opt_print_location) { + $location=$5; + $location =~ s/:$//; + } else { + $location = undef; + } $xbt_channel=$6; $message=$7; - print $col_norm; - printf "[% 10.3f]",$date; - - print pidcolor($pid); - printf "[%10s:%-10s]",$host,$procname; - print " $message"; - print $col_norm."\n"; + print_line($host,$procname,$pid,$date,$location,$xbt_channel,$message); + # Typical line [Boivin:slave:(2) 9.269357] [pmm/INFO] ROW: step(2)<>myrow(0). Receive data from TeX + } elsif ($thisline =~ /^\[([^:]+):([^:]+):\((\d+)\) ([\d\.]*)\] \[([^\[]*)\] (.*)$/) { + $host=$1; + $procname=$2; + $pid=$3; + $date=$4; + $xbt_channel=$5; + $message=$6; + print_line($host,$procname,$pid,$date,undef,$xbt_channel,$message); } elsif ( $thisline =~ /^==(\d+)== (.*)$/) { # take care of valgrind outputs print pidcolor($1)."$2\n";