diff --git a/source/tools/detect/memleak/check.c b/source/tools/detect/memleak/check.c index bdf422df6c8e9226f26a495d31710c94ab4fdbce..4c21645f3a355707a3771d70252e93a1e8efc332 100644 --- a/source/tools/detect/memleak/check.c +++ b/source/tools/detect/memleak/check.c @@ -96,7 +96,7 @@ int read_meminfo(struct meminfo *mem) st_mem.huge2M = hugeTotal * hugeSize; st_mem.kernel = st_mem.tlmkb - st_mem.frmkb - st_mem.acmkb - st_mem.iamkb - st_mem.lock -\ - st_mem.bufkb - st_mem.slmkb - st_mem.huge2M - st_mem.huge1G; + /*st_mem.bufkb - */st_mem.slmkb - st_mem.huge2M - st_mem.huge1G; if (st_mem.kernel < 0) st_mem.kernel = (1 << 10); diff --git a/source/tools/detect/memleak/main.c b/source/tools/detect/memleak/main.c index 9be3a939b9e0b3bae6313de29291afc4961284e7..bb51e39cd1617b6030d31573075377ddffcf3b6e 100644 --- a/source/tools/detect/memleak/main.c +++ b/source/tools/detect/memleak/main.c @@ -44,6 +44,7 @@ static int memleak_check_only(struct meminfo *mi) read_meminfo(mi); vmalloc = vmalloc_main(0, NULL); printf("allocPages:%dM, uslab:%dM vmalloc:%dM\n", (mi->kernel)/1024, mi->uslabkb/1024, vmalloc/1024); + printf("诊断结论:"); if (mi->kernel < vmalloc) mi->kernel = vmalloc + 1; @@ -57,6 +58,8 @@ static int memleak_check_only(struct meminfo *mi) } else if (vmalloc > 2*1024 * 1024) { printf("vmalloc memleak\n"); return MEMLEAK_TYPE_VMALLOC; + } else { + printf(" no memleak\n"); } return 0; } diff --git a/source/tools/detect/memleak/user_api.h b/source/tools/detect/memleak/user_api.h index c2ce97a77e45dd2fa370eec0ca4595936de2bbcc..7f740db0d2da2c398d34d31f1ba153f4fcf10c88 100644 --- a/source/tools/detect/memleak/user_api.h +++ b/source/tools/detect/memleak/user_api.h @@ -20,7 +20,7 @@ struct meminfo { unsigned long comkb; unsigned long uslabkb; unsigned long slabkb; - unsigned long kernel; + long kernel; unsigned long huge2M; unsigned long huge1G; unsigned long lock;