mirror of
git://sourceware.org/git/glibc.git
synced 2024-11-21 01:12:26 +08:00
51 lines
1.3 KiB
Awk
51 lines
1.3 KiB
Awk
|
#
|
||
|
# Awk program to analyze mtrace.c output.
|
||
|
#
|
||
|
{
|
||
|
if ($1 == "@") {
|
||
|
where = " (" $2 ")"
|
||
|
n = 3
|
||
|
} else {
|
||
|
where = ""
|
||
|
n = 1
|
||
|
}
|
||
|
if ($n == "+") {
|
||
|
if (allocated[$(n+1)] != "")
|
||
|
print "+", $(n+1), "Alloc", NR, "duplicate:", allocated[$(n+1)], wherewas[$(n+1)], where;
|
||
|
else {
|
||
|
wherewas[$(n+1)] = where;
|
||
|
allocated[$(n+1)] = $(n+2);
|
||
|
}
|
||
|
} else if ($n == "-") {
|
||
|
if (allocated[$(n+1)] != "") {
|
||
|
wherewas[$(n+1)] = "";
|
||
|
allocated[$(n+1)] = "";
|
||
|
if (allocated[$(n+1)] != "")
|
||
|
print "DELETE FAILED", $(n+1), allocated[$(n+1)];
|
||
|
} else
|
||
|
print "-", $(n+1), "Free", NR, "was never alloc'd", where;
|
||
|
} else if ($n == "<") {
|
||
|
if (allocated[$(n+1)] != "") {
|
||
|
wherewas[$(n+1)] = "";
|
||
|
allocated[$(n+1)] = "";
|
||
|
} else
|
||
|
print "-", $(n+1), "Realloc", NR, "was never alloc'd", where;
|
||
|
} else if ($n == ">") {
|
||
|
if (allocated[$(n+1)] != "")
|
||
|
print "+", $(n+1), "Realloc", NR, "duplicate:", allocated[$(n+1)], where;
|
||
|
else {
|
||
|
wherewas[$(n+1)] = $(n+2);
|
||
|
allocated[$(n+1)] = $(n+2);
|
||
|
}
|
||
|
} else if ($n == "=") {
|
||
|
# Ignore "= Start"
|
||
|
} else if ($n == "!") {
|
||
|
# Ignore failed realloc attempts for now
|
||
|
}
|
||
|
}
|
||
|
END {
|
||
|
for (x in allocated)
|
||
|
if (allocated[x] != "")
|
||
|
print "+", x, allocated[x], wherewas[x];
|
||
|
}
|