to "struct trapframe" (the minimal frame) because in most cases, all we
care about is the minimal, invariant part. Further, if the declaration
says we have an arg of type "frame" (big union), then KGDB will try to
print the whole bloody thing out whether you want to see it or not.
trap.c:trap_kdebug() so it can be C code instead of assembly.
Make sure the initial frame pointer is zero so KGDB will know when to
stop trying to follow frame pointers during backtrace.
to "struct trapframe" (the minimal frame) because in most cases, all we
care about is the minimal, invariant part. Further, if the declaration
says we have an arg of type "frame" (big union), then KGDB will try to
print the whole bloody thing out whether you want to see it or not.
Also add the function trap_kdebug() which takes care of calling one of:
kgdb_trap (for KGDB), or kdb_trap, (for DDB) or the Sun PROM monitor.
This logic used to be in locore, but it is better as C code.
to "struct trapframe" (the minimal frame) because in most cases, all we
care about is the minimal, invariant part. Further, if the declaration
says we have an arg of type "frame" (big union), then KGDB will try to
print the whole bloody thing out whether you want to see it or not.
quotes. E.g. if left quote was "``" and right quote was "''", then
"``foo ``bar'' baz''" would yield "foo `bar' baz" when it should yield
"foo ``bar'' baz".
it uses pbstr() instead of doing the characters individually (in
reverse order) with putback().
Fix dodiv() so that divert(<out-of-range stream>) doesn't cause "divnum" to
return 0, but rather the stream number specified to divert(). Macros
like PUSHDIVERT/POPDIVERT rely on this. The new behaviour is compatible
with vendor m4 implementations.
* Define RECOVER to something faster.
* Check for a valid softc in scnsoft. When there is
a "hole" (e.g. you have scn0,scn1, scn4, scn5) the
old code would panic. Thank's to Phil Budne for
finding and fixing this bug.