summaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2003-07-05 23:21:58 +0000
committermarcel <marcel@FreeBSD.org>2003-07-05 23:21:58 +0000
commit14925f9a36e64e845453b06cbb70062456babab4 (patch)
treee2bb5d615a630a383fd3b199caec93942dad8dcf /share
parent59addbcbd245add35cd2906afcbf4f137e684e3e (diff)
downloadFreeBSD-src-14925f9a36e64e845453b06cbb70062456babab4.zip
FreeBSD-src-14925f9a36e64e845453b06cbb70062456babab4.tar.gz
Don't call malloc() and free() while in the debugger and unwinding
to get a stacktrace. This does not work even with M_NOWAIT when we have WITNESS and is generally a bad idea (pointed out by bde@). We allocate an 8K heap for use by the unwinder when ddb is active. A stack trace roughly takes up half of that in any case, so we have some room for complex unwind situations. We don't want to waste too much space though. Due to the nature of unwinding, we don't worry too much about fragmentation or performance of unwinding while in the debugger. For now we have our own heap management, but we may be able to leverage from existing code at some later time. While here: o Make sure we actually free the unwind environment after unwinding. This fixes a memory leak. o Replace Doug's license with mine in unwind.c and unwind.h. Both files don't have much, if any, of Doug's code left since the EPC syscall overhaul and the import of the unwinder. o Remove dead code. o Replace M_NOWAIT with M_WAITOK for all remaining malloc() calls.
Diffstat (limited to 'share')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud