aboutsummaryrefslogtreecommitdiff
path: root/mmalloc/mmtrace.awk
diff options
context:
space:
mode:
authorFred Fish <fnf@specifix.com>1992-03-15 02:16:01 +0000
committerFred Fish <fnf@specifix.com>1992-03-15 02:16:01 +0000
commit63abb1e790d634cba4162c2997f2ae330d63b703 (patch)
treee95a308c52d1b1693bc29e74cf3073330edec0a7 /mmalloc/mmtrace.awk
parent009898fddb9210e230163940ac173ec681574ccc (diff)
downloadfsf-binutils-gdb-63abb1e790d634cba4162c2997f2ae330d63b703.zip
fsf-binutils-gdb-63abb1e790d634cba4162c2997f2ae330d63b703.tar.gz
fsf-binutils-gdb-63abb1e790d634cba4162c2997f2ae330d63b703.tar.bz2
New memory malloc malloc library, based on GNU malloc.
Diffstat (limited to 'mmalloc/mmtrace.awk')
-rw-r--r--mmalloc/mmtrace.awk36
1 files changed, 36 insertions, 0 deletions
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];
+ }