I'm installing my IDT, setting my ISRs, and etc.
But when I divide by 0, nothing happens! Well, not EXACTLY. It just continues to run as if nothing ever happened.
Also, I've used:
Code: Select all
__asm__ __volatile__ ("int $0");
I've also tried not defining any ISR except the double fault. Then I'd do a divide by zero, and as logic would follow:
It would try to divide by 0 (fault #1)
It would lookup the exception (0) and find it not their, causing a double fault. But double fault never gets called either!
Any general ideas of what might cause this? My IDT also is known to work for other software interrupts (eg. define interrupt 55 to call MyFunc). Also, I'm not so sure that anyone would want to look through 150+ lines of C code and at least 100 lines of ASM code unless required to do so, so I'd like to see if it's a general problem first.
Also, I've checked the Troubleshooting area of the OS-Faq for this, found nothing to be of use.