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