1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| #!/usr/bin/awk -f
| #
| # Awk program to analyze mtrace.c output.
| #
| $1 == "+" { if (allocated[$2] != "")
| print "+", $2, "Alloc", NR, "duplicate:", allocated[$2];
| else
| allocated[$2] = $3;
| }
| $1 == "-" { if (allocated[$2] != "") {
| allocated[$2] = "";
| if (allocated[$2] != "")
| print "DELETE FAILED", $2, allocated[$2];
| } else
| print "-", $2, "Free", NR, "was never alloc'd";
| }
| $1 == "<" { if (allocated[$2] != "")
| allocated[$2] = "";
| else
| print "-", $2, "Realloc", NR, "was never alloc'd";
| }
| $1 == ">" { if (allocated[$2] != "")
| print "+", $2, "Realloc", NR, "duplicate:", allocated[$2];
| else
| allocated[$2] = $3;
| }
|
| # Ignore "= Start"
| $1 == "=" { }
| # Ignore failed realloc attempts for now
| $1 == "!" { }
|
|
| END { for (x in allocated)
| if (allocated[x] != "")
| print "+", x, allocated[x];
| }
|
|