Monday, January 12, 2009

Fatal Exception Error

How to fix a fatal exception error.

Additional information:

Windows and software now commonly use exceptions which allow Windows or other software to communicate in layers and communicate errors or exceptions. If a program is given an exception that is invalid or unknown, the program or operating system will generate a fatal exception. Fatal exceptions are also commonly referred to as a Fatal OE, as the OE error is one of the more commonly experienced fatal exception error messages.

Fatal exception error messages are generated when one of the below situations occur.

* Access to an illegal software instruction has occurred.
* Invalid data or code has been accessed.
* The privilege level of an operation is invalid.

When a fatal exception is encountered the error will be in the below format.

A fatal exception has occurred at xxxx:xxxxxxxx

In the above example of the fatal exception the YZ represents the actual processor exception, this can range from 00 to 0F. Each of theses processor exceptions are explained under Extended information.

After the processor exception is the enhanced instruction pointer to the code segment and the 32-bit address. This is exactly where the error exception has occurred.

Cause:

Fatal exception errors are generally caused by incompatibility issues, errors in the code, heat related issues, and/or other hardware / software issues. Because of the wide range of possibilities, we have created this document to help determine or resolve your issue.
Solution:

Remove all TSRs

Disable or unload any TSRs or programs currently running before running the program or attempting to recreate the error.


Delete all program temporary files

Delete all temporary files that may still be residing on the hard disk drive from currently or previously running programs.

Run Scandisk / Defrag

Attempt to run scandisk / defrag on the hard disk drive as it could be possible your hard disk drive may have an issue causing the swap file or data files to become corrupt or invalid

Disable External Cache in CMOS

If the option is available, attempt to enter your computer's CMOS setup and disable the external cache. If this resolves your issue it is likely that you are encountering a heat related issue.

Heat related issue

Verify that all fans in and on your computer are properly working. Possibly attempt to add an additional case fan, if there is available space.

Overclocked computer

If you have overclocked any component within the computer, set the computer to its factory settings to verify that the overclocked component is not causing the issue.

Update software or check for software patches

If you are experiencing invalid page faults in only one program, verify that the software program is compatible with the operating system you are running the program within. Also verify with the manufacturer or vendor of the software program that there are no available patches or updates for the program that may help or resolve your issue.

Verify your computer has more than 200 MB available

If your computer is running low on hard disk space, your Windows swap file will be unable to increase in size when needed, causing programs to be swapped between memory and the hard disk drive more frequently. When this occurs it is more likely that a GPF can occur.

Recently installed software / hardware

If you have recently installed new software or hardware attempt to uninstall or reinstall that software / hardware to verify it is not causing your issue.

CPU Core Voltage

If available, verify within your CMOS or by jumper that your CPU core voltage is set to factory specification. This may require that you consult your documentation or motherboard manufacturer.

Bad Memory, invalid bits or physically bad memory

It is possible that bad memory can cause a Fatal Exception. If you have recently added memory to the computer, it is recommended that it first be removed to verify that you are not experiencing conflicts with the recently installed memory.

Extended Information:

Below is a listing of the more commonly experienced processor exceptions ranging from 00 to 0F. If you have not already, please review the Additional Information section of this document explaining the basic information about the Fatal Exception errors and the layout of the Fatal Exception.

00 = Divide Fault
Occurs if division by zero is attempted or if the result of the operation does not fit in the destination operand.

02=NMI interrupt
Interrupt 2 is reserved for the hardware Non-Maskable-Interrupt condition. No exceptions trap through interrupt 2.

04=Overflow trap
Occurs after an INTRO instruction has executed and the OF bit is set to 1.

05=Bounds Check fault
The array Index is out of range

06=Invalid Opcode fault
This error can be caused by one of the below conditions.

1. Processor attempting to decode a bit pattern that does not correspond to any legal computer instruction.
2. Processor attempts to execute an instruction that contains invalid operands.
3. Processor attempts to execute a protected-mode instruction while running in virtual 8086 mode.
4. Processor attempts to execute a LOCK prefix with an instruction that cannot be locked.

07=Copressor not available fault.
This error can occur if no math coprocessor is present. This error can also occur when the math coprocessor is used and a task switch is executed.

08=Double Fault.
This error occurs when processing an exception triggers a second exception.

09(OD)=Copressor Segment Overrun.
Floating point operand is outside the segment.

10(0Ah/0A)=Invalid Task State Segment Fault
Can be caused by a number of possibilities as Task State Segment contains a number of descriptors.

11(0Bh)=Not Present Fault
The Not Present interrupt allows the operating system to implement virtual memory through the segmentation mechanism. 0B fault occurs when this segment is not available.

12(0Ch)=Stack Fault
Occurs when instruction refers to memory beyond the limit of the stack segment.

13(Odh)=General Protection Fault
Caused by any condition that is not covered by any of the other processor exceptions. The exception indicates that this program has been corrupted in memory generally resulting in the immediate termination of the program. Also see document CH000224 for additional information about GPFs.

14(Oeh)=Page Fault
Occurs when a paging protection rule is violated (when the retrieve fails, data retrieved is invalid or the code that issued the fault broke the protection rule for the processor).

16(10h)=Coprocessor error fault
Occurs when an unmasked floating-point exception has signaled a previous instruction.

17(11h)=Alignment Check Fault
Only used on 80486 computers. Caused when code executing at ring privilege 3 attempts to access a word operand that is not divisible by four, or a long real or temp real whose address is not divisible by eight.

No comments:

Post a Comment