3
# Convert the result of "autrace program"
5
# Ex. autrace /bin/ls > autrace.log
6
# ./autrace2picviz.pl autrace.log > autrace.pcv
8
# Written by Sebastien Tricaud (C) 2008
11
# 2008/11/30 - Initial version
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)
19
print " title = \"Syscalls graph\";\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";
35
$line =~ s/\"|&|<|>/\\"/g;
38
if ($line =~ m/type=SYSCALL msg=audit\(\d+\/\d+\/\d+ (\d+:\d+:\d+).*\) : arch=\S+ syscall=(\S+) success=(\S+) exit=(\d+) .* exe=(\S+).*/) {
46
if ($exitcode > 255) {
47
# We normalize the maximum to 255
51
if ($success =~ m/yes/) {
52
print " time=\"$time\", syscall=\"$syscall\", exit=\"$exitcode\", exe=\"$exe\";\n";
54
print " time=\"$time\", syscall=\"$syscall\", exit=\"$exitcode\", exe=\"$exe\" [color=\"red\"];\n";