3rd (269008768) exception with no resolution
Posted: Sun Feb 22, 2004 12:00 am
Hello everybody !
I'm a newbie in osdev and I'm trying to transform my first mono kernel into a micro kernel architecture. I am also using GRUB and creating a multiboot compliant kernel (http://www.gnu.org/software/grub/manual/multiboot).
But as creating a new kernel initialization, my emulator (Bochs) throws an exception (I think a triple fault, even if I don't know what is it![Smile :)](./images/smilies/icon_smile.gif)
Here is the log:
00008365740e[CPU ] exception(): 3rd (13) exception with no resolution, shutdown status is 00h, resetting
========================================================================
Event type: ERROR
Device: [CPU ]
Message: exception(): 3rd (269008768) exception with no resolution, shutdown status is 7fffd710h, resetting
A ERROR has occurred. Do you want to:
cont - continue execution
alwayscont - continue execution, and don't ask again.
This affects only ERROR events from device [CPU ]
die - stop execution now
abort - dump core
Choose one of the actions above: [die] die
00008365740i[SYS ] Last time is 1077442389
00008365740i[XGUI ] Exit.
00008365740i[CPU ] protected mode
00008365740i[CPU ] CS.d_b = 32 bit
00008365740i[CPU ] SS.d_b = 32 bit
00008365740i[CPU ] | EAX=00000000 EBX=0002bdc0 ECX=000003c6 EDX=00000006
00008365740i[CPU ] | ESP=001059bc EBP=001059d4 ESI=0002bed9 EDI=0002beda
00008365740i[CPU ] | IOPL=0 NV UP EI PL ZR NA PE NC
00008365740i[CPU ] | SEG selector base limit G D
00008365740i[CPU ] | SEG sltr(index|ti|rpl) base limit G D
00008365740i[CPU ] | DS:0010( 0002| 0| 0) 00000000 000fffff 1 1
00008365740i[CPU ] | ES:0010( 0002| 0| 0) 00000000 000fffff 1 1
00008365740i[CPU ] | FS:0010( 0002| 0| 0) 00000000 000fffff 1 1
00008365740i[CPU ] | GS:0010( 0002| 0| 0) 00000000 000fffff 1 1
00008365740i[CPU ] | SS:0010( 0002| 0| 0) 00000000 000fffff 1 1
00008365740i[CPU ] | CS:0008( 0001| 0| 0) 00000000 000fffff 1 1
00008365740i[CPU ] | EIP=001000e4 (001000e4)
00008365740i[CPU ] | CR0=0x60000011 CR1=0x00000000 CR2=0x00000000
00008365740i[CPU ] | CR3=0x00000000 CR4=0x00000000
00008365740i[ ] restoring default signal behavior
The exception is thrown when I try to activate the interruptions via sti:
/* Kernel initialization. */
void cmain (unsigned long address) {
init_printk () ;
printk ("Esperanza version 0.0.1\n") ;
// Init the GDT
init_gdt () ;
// Verify the GDT
kgdtr.size = 0 ;
kgdtr.address = 0 ;
asm("sgdtl (kgdtr)");
printk("GDT address: 0x%x, size: 0x%x\n",
kgdtr.address, kgdtr.size) ;
// Init the IDT
init_idt () ;
// Verify the GDT
kidtr.size = 0 ;
kidtr.address = 0 ;
asm("sidtl (kidtr)");
printk("IDT address: 0x%x, size: 0x%x\n",
kidtr.address, kidtr.size) ;
init_pic () ;
init_pit () ;
// Enable interruptions
printk ("Back\n") ;
sti () ; // <-- EXCEPTION
// Infinite loop
for (;;) ;
}
Don't know if anybody had got the same error, or have suggestions, but please help! (And excuse my poor english!)
I'm a newbie in osdev and I'm trying to transform my first mono kernel into a micro kernel architecture. I am also using GRUB and creating a multiboot compliant kernel (http://www.gnu.org/software/grub/manual/multiboot).
But as creating a new kernel initialization, my emulator (Bochs) throws an exception (I think a triple fault, even if I don't know what is it
![Smile :)](./images/smilies/icon_smile.gif)
Here is the log:
00008365740e[CPU ] exception(): 3rd (13) exception with no resolution, shutdown status is 00h, resetting
========================================================================
Event type: ERROR
Device: [CPU ]
Message: exception(): 3rd (269008768) exception with no resolution, shutdown status is 7fffd710h, resetting
A ERROR has occurred. Do you want to:
cont - continue execution
alwayscont - continue execution, and don't ask again.
This affects only ERROR events from device [CPU ]
die - stop execution now
abort - dump core
Choose one of the actions above: [die] die
00008365740i[SYS ] Last time is 1077442389
00008365740i[XGUI ] Exit.
00008365740i[CPU ] protected mode
00008365740i[CPU ] CS.d_b = 32 bit
00008365740i[CPU ] SS.d_b = 32 bit
00008365740i[CPU ] | EAX=00000000 EBX=0002bdc0 ECX=000003c6 EDX=00000006
00008365740i[CPU ] | ESP=001059bc EBP=001059d4 ESI=0002bed9 EDI=0002beda
00008365740i[CPU ] | IOPL=0 NV UP EI PL ZR NA PE NC
00008365740i[CPU ] | SEG selector base limit G D
00008365740i[CPU ] | SEG sltr(index|ti|rpl) base limit G D
00008365740i[CPU ] | DS:0010( 0002| 0| 0) 00000000 000fffff 1 1
00008365740i[CPU ] | ES:0010( 0002| 0| 0) 00000000 000fffff 1 1
00008365740i[CPU ] | FS:0010( 0002| 0| 0) 00000000 000fffff 1 1
00008365740i[CPU ] | GS:0010( 0002| 0| 0) 00000000 000fffff 1 1
00008365740i[CPU ] | SS:0010( 0002| 0| 0) 00000000 000fffff 1 1
00008365740i[CPU ] | CS:0008( 0001| 0| 0) 00000000 000fffff 1 1
00008365740i[CPU ] | EIP=001000e4 (001000e4)
00008365740i[CPU ] | CR0=0x60000011 CR1=0x00000000 CR2=0x00000000
00008365740i[CPU ] | CR3=0x00000000 CR4=0x00000000
00008365740i[ ] restoring default signal behavior
The exception is thrown when I try to activate the interruptions via sti:
/* Kernel initialization. */
void cmain (unsigned long address) {
init_printk () ;
printk ("Esperanza version 0.0.1\n") ;
// Init the GDT
init_gdt () ;
// Verify the GDT
kgdtr.size = 0 ;
kgdtr.address = 0 ;
asm("sgdtl (kgdtr)");
printk("GDT address: 0x%x, size: 0x%x\n",
kgdtr.address, kgdtr.size) ;
// Init the IDT
init_idt () ;
// Verify the GDT
kidtr.size = 0 ;
kidtr.address = 0 ;
asm("sidtl (kidtr)");
printk("IDT address: 0x%x, size: 0x%x\n",
kidtr.address, kidtr.size) ;
init_pic () ;
init_pit () ;
// Enable interruptions
printk ("Back\n") ;
sti () ; // <-- EXCEPTION
// Infinite loop
for (;;) ;
}
Don't know if anybody had got the same error, or have suggestions, but please help! (And excuse my poor english!)