| # | |
| # 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]; | |
| } |