ref: ed035ae1730f79db6c179b75db60e716a08dab02
parent: cef4deb99e572656cd8411f346bedc2a2ede70e3
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Thu Feb 26 17:33:03 EST 2015
leak: report alloc size mismatch
--- a/sys/lib/acid/leak
+++ b/sys/lib/acid/leak
@@ -9,6 +9,8 @@
complex Pool p;
a = p.arenalist;
+ allocsize = 0;
+
print("A: ", p.arenalist\A, "\n"); while a != 0 do {complex Arena a;
@@ -15,6 +17,13 @@
dumparena(a, sum);
a = a.down;
}
+ if sum then {+ emitsum();
+ }
+
+ if allocsize != p.curalloc then {+ print("found alloc size mismatch ", allocsize, " != ", p.curalloc, "\n");+ }
}
defn
@@ -91,6 +100,7 @@
x = fmt(addr+sizeofBhdr, 'X');
if addr.magic == ALLOC_MAGIC then {+ allocsize = allocsize+a.size;
// for mallocalign()
while *x == ALIGN_MAGIC do {x = x + 4;
@@ -199,7 +209,6 @@
{ print("==BLOCK BEGIN==\n");dumppool(*mainmem, 1);
- emitsum();
print("==BLOCK END==\n");}
--
⑨