Port-i386 archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: ddb: fatal breakpoint trap in supervisor mode
On Wed, Oct 10, 2012 at 02:20:33AM +0900, SAITOH Masanobu wrote:
> I've noticed that NetBSD/i386 -current's ddb has a bug.
>
> > # sysctl -w ddb.fromconsole=1
> > ddb.fromconsole: 0 -> 1
> (send BREAK)
> > # fatal breakpoint trap in supervisor mode <============
> > trap type 1 code 0 eip c02698a4 cs 8 eflags 202 cr2 bbb62da0 ilevel 8 esp
> > da980f6c
> > curlwp 0xc327ed20 pid 0 lid 2 lowest kstack 0xdaad4000
> > Stopped in pid 0.2 (system) at netbsd:breakpoint+0x4: popl %ebp
> > db{0}> c
>
> Is this trap intended?
I think it is. entering ddb is done via cpu_Debugger(), which calls
breakpoint(), which cause a breakpoint trap.
> One of my machine is recoverable from db> prompt by 'c' and
> another is not (with "spl not lowered...).
>
> The difference is:
>
> recoverable:
> serial console
>
> unrecoverable:
> USB keyboard
This may be a bug in the USB keyboard driver. Either with the cnpoll
implementation, which does tricks with the spl level; or maybe
just because the usb stack is MP-safe but ukbd is not (and wscons
is probably not either) so it should be called with KERNEL_LOCK held.
--
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
NetBSD: 26 ans d'experience feront toujours la difference
--
Home |
Main Index |
Thread Index |
Old Index