Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 30 Sep 2002 15:16:17 -0400 (EDT)
From:      John Baldwin <jhb@FreeBSD.org>
To:        freebsd-current@FreeBSD.ORG
Subject:   Re: Fatal trap 12
Message-ID:  <XFMail.20020930151617.jhb@FreeBSD.org>
In-Reply-To: <20020930201513.A318@snoopy.cablecom.ch>

next in thread | previous in thread | raw e-mail | index | archive | help

On 30-Sep-2002 Hanspeter Roth wrote:
>   On Sep 30 at 11:59, John Baldwin spoke:
> 
>> 
>> These messages above that you left out are very important. :(
>> Also, if you can get a trace by typing 't' at the db> prompt
>> that can be very helpful as well.
> 
> Ok. I hope there aren't to many mistakes.
> 
> vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa
> unknown: <PNP0401> can't assign resources (port)
> unknown: <PNP0501> can't assign resources (port)
> unknown: <PNP0501> can't assign resources (port)
> unknown: <PNP0700> can't assign resources (port)
> unknown: <PNP0f13> can't assign resources (irq)
> unknown: <PNP0303> can't assign resources (port)
> unknown: <PNP0c02> can't assign resources (port)
> Tiemcounters tick every 10.000 msec
> ad0: 76351MB <SAMSUNG SP8004H> [155127/16/63] at ata0-master UDMA100
> acd0: CD-RW <Memorex SixteenMAXX 1040> at ata1-master PIO4
> acd1: CD-RW <PLEXTOR CD-R PX-W4012A> at ata2-master PIO4
> acd2: CD-RW <PLEXTOR CD-R PX-W4012A> at ata3-master PIO4
> acd3: CD-RW <PLEXTOR CD-R PX-W4012A> at ata4-master PIO4
> acd4: CD-RW <PLEXTOR CD-R PX-W4012A> at ata5-master PIO4
> Mounting root from ufs:/dev/ad0s3a
> 
> 
> Fatal trap 12: page fault while in kernal mode
> fault virtual address = 0xdeadc0de

This means someone is trying to access memory that has been free'd.

> fault code            = supervisor write, page not present
> instruction pointer   = 0x8:0xc044d03e
> stack pointer         = 0x10:0xcd214a94
> frame pointer         = 0x10:0xcd214c9a
> code segment          = base 0x0, limit 0xfffff, type 0x1b
>                       = DPL 0, pres 1, def32 1, gran 1
> processor eflags      = interrupt enabled, resume, IOPL = 0
> current process               = 1 (init)
> kernel: type 12 trap, code=0
> Stopped at    generic_bcopy+0x1a:     repe movsl      (%esi),%es:(%edi)
> db> Context switches not allowd in the debugger.
> db> 
> db> trace
> generic_bcopy(c0f079c0,cd214cf0,0,0,cd214cd8) at generic_bcopy+0x1a
> start_init(0,cd214d48,c04b26b1,348,0) at start_init+0x45e

This is:

(kgdb) l *start_init+0x45e
0xc02448de is in start_init (../../../kern/init_main.c:663).
663                     if ((error = execve(td, &args)) == 0) {

Hmm, unfortunately generic_bcopy() is in asm, and so it doesn't have
a "true" frame and we end up skipping over the frame in execve()
where it is called from.  There are only 3 bcopy's in execve(), but
I'm not sure which is likely to have been the problematic one.

-- 

John Baldwin <jhb@FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.20020930151617.jhb>