diff options
author | 2006-09-30 14:31:28 +0000 | |
---|---|---|
committer | 2006-09-30 14:31:28 +0000 | |
commit | 4c0aa4c686ca5ef0cd8585d4c2ade32a69bf68ce (patch) | |
tree | 7f4358992a15afb2b9c75dde00a59a514723a09b /sys/kern/kern_malloc.c | |
parent | Reset device on errors. (diff) | |
download | wireguard-openbsd-4c0aa4c686ca5ef0cd8585d4c2ade32a69bf68ce.tar.xz wireguard-openbsd-4c0aa4c686ca5ef0cd8585d4c2ade32a69bf68ce.zip |
no malloc debug but configured kmemstats allow 'sh mal' to print smth useful; miod@ ok
Diffstat (limited to 'sys/kern/kern_malloc.c')
-rw-r--r-- | sys/kern/kern_malloc.c | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/sys/kern/kern_malloc.c b/sys/kern/kern_malloc.c index 0fceaa850c4..040ea782114 100644 --- a/sys/kern/kern_malloc.c +++ b/sys/kern/kern_malloc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kern_malloc.c,v 1.62 2005/11/28 00:14:28 jsg Exp $ */ +/* $OpenBSD: kern_malloc.c,v 1.63 2006/09/30 14:31:28 mickey Exp $ */ /* $NetBSD: kern_malloc.c,v 1.15.4.2 1996/06/13 17:10:56 cgd Exp $ */ /* @@ -618,3 +618,33 @@ malloc_roundup(size_t sz) return (1 << BUCKETINDX(sz)); } + +#if defined(DDB) +#include <machine/db_machdep.h> +#include <ddb/db_interface.h> +#include <ddb/db_output.h> + +void +malloc_printit(int (*pr)(const char *, ...)) +{ +#ifdef KMEMSTATS + struct kmemstats *km; + int i; + + (*pr)("%15s %5s %6s %7s %6s %9s %8s %8s\n", + "Type", "InUse", "MemUse", "HighUse", "Limit", "Requests", + "Type Lim", "Kern Lim"); + for (i = 0, km = kmemstats; i < M_LAST; i++, km++) { + if (!km->ks_calls || !memname[i]) + continue; + + (*pr)("%15s %5ld %6ldK %7ldK %6ldK %9ld %8d %8d\n", + memname[i], km->ks_inuse, km->ks_memuse / 1024, + km->ks_maxused / 1024, km->ks_limit / 1024, + km->ks_calls, km->ks_limblocks, km->ks_mapblocks); + } +#else + (*pr)("No KMEMSTATS compiled in\n"); +#endif +} +#endif /* DDB */ |