Page 1 of 1
General protection fault leading to triple fault
Posted: Thu May 31, 2012 8:41 am
by hegde1997
In my kernel i am getting hell lots of general protection faults which is leading to triple fault.
I believe that no where i have given cli and missed to give sti and yet no interrupts would occur. so in my kernel i gave a sti and the screen is full of message "General protection fault" and finally triple fault and so machine reset within about 10 secs of execution of my kernel.
I know that it might be hard to tell without having a look at the code. But do any one have ideas why this might have happened?
Re: General protection fault leading to triple fault
Posted: Thu May 31, 2012 8:51 am
by Combuster
Because you refuse to blame your lack of coding skill
and therefore repeat the question, possibly in the hope people do not realize the association and accidentally give you an answer?
You have enough homework to do. Just get to it.
Re: General protection fault leading to triple fault
Posted: Sat Jun 02, 2012 5:10 pm
by vjain20
Refer to Intel Software Developer Manual Vol 3 or
http://en.wikipedia.org/wiki/General_protection_fault.
Intel manual is a must read for developing a kernel.
Re: General protection fault leading to triple fault
Posted: Thu Jun 14, 2012 11:33 am
by hegde1997
Something wrong with cs register. bochs says fetch raw descriptor. i recompiled my kernel and this time it didn't install a new gdt after grub and now bochs tells check_cs not a valid segment. i am unable to find out wth has gone wrong.
Code: Select all
00076710677e[CPU0 ] fetch_raw_descriptor: GDT: index (af) 15 > limit (27)
00076712194e[CPU0 ] fetch_raw_descriptor: GDT: index (af) 15 > limit (27)
00076714301e[CPU0 ] check_cs(0x11ad): not a valid code segment !
00076716021e[CPU0 ] check_cs(0x11ad): not a valid code segment !
00076717741e[CPU0 ] check_cs(0x11ad): not a valid code segment !
00076719461e[CPU0 ] check_cs(0x11ad): not a valid code segment !
00076721181e[CPU0 ] check_cs(0x11ad): not a valid code segment !
00076722901e[CPU0 ] check_cs(0x11ad): not a valid code segment !
00076724621e[CPU0 ] check_cs(0x11ad): not a valid code segment !
00076726341e[CPU0 ] check_cs(0x11ad): not a valid code segment !
00