X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=mmalloc%2Fmmtrace.awk;fp=mmalloc%2Fmmtrace.awk;h=d7689cec3ff53fc3793f0fab1f3471c2106af91b;hb=d70485fb7a2776fbfeccdabc568aa98ab3a80225;hp=0000000000000000000000000000000000000000;hpb=70ed84c05dfe890425592cc207f7a866f0afb04e;p=ocaml-ancient.git diff --git a/mmalloc/mmtrace.awk b/mmalloc/mmtrace.awk new file mode 100644 index 0000000..d7689ce --- /dev/null +++ b/mmalloc/mmtrace.awk @@ -0,0 +1,36 @@ +# +# 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]; + }