commsfwtools/commstools/svg/tracklife.pl
changeset 0 dfb7c4ff071f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwtools/commstools/svg/tracklife.pl	Thu Dec 17 09:22:25 2009 +0200
@@ -0,0 +1,65 @@
+# Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+use strict;
+open LOG, "log.seq" or die "Failed to open log.seq";
+my %ob;
+my $line = 0;
+while(<LOG>)
+{
+  chomp;
+  ++$line;
+  if($_ =~ /t .+\(([0-9a-f]+) created\)/i)
+  {
+    if(defined $ob{$1})
+    {
+      print "ERROR[#$line]: double create of $1 - was [ $ob{$1}->[1] ] @ #$ob{$1}->[0], now [ $_ ]\n";
+    }
+    $ob{$1} = [$line, $_];
+  }
+  elsif($_ =~ /t .+\(([0-9a-f]+) destroyed\)/i)
+  {
+    if(!defined $ob{$1})
+    {
+      print "ERROR: destroy of unknown $1 [ $_ ]\n";
+    }
+    delete $ob{$1};
+  }
+  elsif($_ =~ /^l \^Booting$/)
+  {
+  	if(DumpObjs())
+  	{
+	  print "\nRebooting...\n";
+  	}	
+  	%ob = ();
+  }
+}
+DumpObjs();
+
+sub DumpObjs()
+{
+  my @vals = sort { $a->[0] <=> $b->[0] } values %ob;
+  if($#vals >= 0)
+  {
+    print "\nRemaining objs:\n";
+    for (@vals)
+    {
+      print "$_->[1] [#$_->[0]]\n";
+    }
+    return 1;
+  }
+  return 0;
+}
+