~ubuntu-branches/ubuntu/trusty/picviz/trusty

« back to all changes in this revision

Viewing changes to parsers/autrace2picviz.pl

  • Committer: Bazaar Package Importer
  • Author(s): Pierre Chifflier
  • Date: 2009-03-30 10:42:08 UTC
  • Revision ID: james.westby@ubuntu.com-20090330104208-j095obwkp574t1lm
Tags: upstream-0.5
ImportĀ upstreamĀ versionĀ 0.5

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/perl
 
2
#
 
3
# Convert the result of "autrace program"
 
4
# syscalls.
 
5
# Ex. autrace /bin/ls > autrace.log
 
6
# ./autrace2picviz.pl autrace.log > autrace.pcv
 
7
#
 
8
# Written by Sebastien Tricaud (C) 2008
 
9
#
 
10
# Changelog:
 
11
# 2008/11/30 - Initial version
 
12
#
 
13
 
 
14
#
 
15
# type=SYSCALL msg=audit(11/30/2008 21:07:31.631:12) : arch=x86_64 syscall=open success=yes exit=3 a0=7f45e54f4b41 a1=0 a2=1 a3=0 items=1 ppid=5110 pid=5112 auid=unset uid=root gid=root euid=root suid=root fsuid=root egid=root sgid=root fsgid=root tty=pts1 ses=4754287995 comm=ls exe=/bin/ls key=(null)
 
16
#
 
17
 
 
18
print "header {\n";
 
19
print "    title = \"Syscalls graph\";\n";
 
20
print "}\n";
 
21
 
 
22
print "axes {\n";
 
23
print "    timeline time [label=\"Timeline\"];\n";
 
24
print "    enum     syscall [label=\"Syscall\"];\n";
 
25
print "    char     exit [label=\"Exit code\"];\n";
 
26
print "    string   exe [label=\"Executable\"];\n";
 
27
print "}\n";
 
28
 
 
29
print "data {\n";
 
30
 
 
31
while ($line = <>) {
 
32
 
 
33
 
 
34
        $line =~ s/\\/\\\\/g;
 
35
        $line =~ s/\"|&|<|>/\\"/g;
 
36
 
 
37
 
 
38
        if ($line =~ m/type=SYSCALL msg=audit\(\d+\/\d+\/\d+ (\d+:\d+:\d+).*\) : arch=\S+ syscall=(\S+) success=(\S+) exit=(\d+) .* exe=(\S+).*/) {
 
39
 
 
40
                $time=$1;
 
41
                $syscall=$2;
 
42
                $success=$3;
 
43
                $exitcode=$4;
 
44
                $exe=$5;
 
45
 
 
46
                if ($exitcode > 255) {
 
47
                        # We normalize the maximum to 255
 
48
                        $exitcode = 255;
 
49
                }
 
50
 
 
51
                if ($success =~ m/yes/) {
 
52
                        print "    time=\"$time\", syscall=\"$syscall\", exit=\"$exitcode\", exe=\"$exe\";\n";
 
53
                } else {
 
54
                        print "    time=\"$time\", syscall=\"$syscall\", exit=\"$exitcode\", exe=\"$exe\" [color=\"red\"];\n";
 
55
                }
 
56
 
 
57
        }
 
58
}
 
59
 
 
60
print "}\n";
 
61