A software program first written Rich Skrenta in 1982 who was a 15-year old high school student. Known as The Elk Cloner this virus
spread to other computers by monitoring the floppy drive and copying
itself to any floppy diskette that was inserted into the computer. Once a
floppy diskette became infected it would infect all other computers
that disk was inserted into, each computer that was infected would then
infect every floppy diskette inserted into it. A computer that was
infected would also display a short poem on every 50th boot.
The concept of a computer program capable of reproducing itself was first mentioned by John von Neumann in his 1949 "Theory of self-reproducing automata" essay. Later, Fred Cohen in 1983 later coined the term virus in a 1984
research paper as "a computer program that can affect other computer
programs by modifying them in such a way as to include a (possibly
evolved) copy of itself." Today, a computer virus is a software program,
script, or macro that has been designed to infect, destroy, modify, or cause other problems with a computer or software programs. Users can protect themselves and remove any viruses on the computer by installing an antivirus protection program, which is designed to detect, protect, and clean any computer viruses.
Microsoft Windows and software 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 you'll encounter a fatal exception. Fatal
exceptions are also commonly referred to as a Fatal 0E (or improperly as Fatal OE) and is one of the most common fatal exceptions.
When a fatal exception is encountered the error will be in the below format.
A fatal exception <YZ> 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.
Search for the error
Often the easiest and fastest method to locate the
cause of a fatal exception is to search for the error. However, for some
users it may be difficult to know exactly what to search for because of
the cryptic fatal exception messages. Below are tips on how to search
for these errors.
- As mentioned above the fatal exception has a two character code, for example "0E," if this code is present use this as part of your search.
- Next, the error message will contain a pointer such as "0028:c001e36", although this can often be found by also adding this to your search query it's important to realize that this pointer can vary from computer to computer. If you're not finding results exclude this from your search.
- Finally, many fatal exception error messages also contain a file that generated the error, almost always this is a VXD file. If the fatal exception error contains a .VXD definitely include this as part of your search. The VXD file may also be listed as "VXD VWIN32", which is "vwin32.vxd".
If searching
for the fatal exception error does not return results or help resolve
your continue reading through this document for general recommendations
in resolving fatal exception error messages.
Revert Windows back to an earlier copy
If this has just started occurring and you're running Windows XP or later restore Windows back to an earlier copy.
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.
It is also important that you have all the latest Windows updates.
Hardware drivers
If you are getting a fatal exception when using a
hardware device, for example, when you print. It's likely that it's the
drivers related to that device that are either conflicting or have
errors.
Video drivers are also notorious for causing
fatal exception error messages. Because your video card is being used
all the time it's difficult to know for certain if it's the cause of the
error. Therefore we always recommend users have the latest video
drivers on their computer.
Visit the manufacturers web page and get the latest software and drivers from them. See the computer drivers page for a listing of hardware companies.
Recently installed software or hardware
If you have recently installed new software or hardware
uninstall or reinstall that software or hardware to verify it is not
causing your issue. In the case of a hardware device it's suggested
instead of installing the software or drivers that came with the device
that you visit the manufacturers web page and get the latest software or
drivers from them. See the computer drivers page for a listing of hardware companies.
Remove all TSRs
Disable any TSRs or programs running in the background as many times fatal exception errors can be caused by conflicts between two or more open programs.
Delete all program temporary files
Delete all temporary files that may still be residing on the hard drive from currently or previously running programs.
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.
Verify your computer has more than 200 MB available
If your computer is running low on hard drive space, your Windows swap file will be unable to increase in size when needed, which can cause errors.
- Determining available hard drive space.
Run ScanDisk and Defrag
Run Scandisk and run Defrag
on the hard drive as it could be possible your hard drive may have an
issue causing the swap file or data files to become corrupt or invalid.
Heat related issue
Verify that all fans in and on your computer are
properly working. If not all fans are working or you do not have enough
fans and your computer is overheating, any number of issues including
fatal exceptions can occur.
- Is there a way to tell how hot my CPU is running?
Disable External Cache in CMOS
If the option is available, 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.
CPU Core Voltage
If available, verify within your CMOS Setup
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
Bad computer memory is also a common cause for fatal
exception errors. 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.
If no memory has been recently added to the computer and you have tried all the above recommendations test your computer memory for errors.
Extended Information
Below is a listing of the more commonly experienced processor exceptions ranging from 00 to 0F.
00 = Divide Fault
Occurs if division by zero is attempted or if the result of the operation does not fit in the destination operand.
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.
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.
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
The array Index is out of range
06=Invalid Opcode fault
This error can be caused by one of the below conditions.
This error can be caused by one of the below conditions.
- Processor attempting to decode a bit pattern that does not correspond to any legal computer instruction.
- Processor attempts to execute an instruction that contains invalid operands.
- Processor attempts to execute a protected-mode instruction while running in virtual 8086 mode.
- 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.
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.
This error occurs when processing an exception triggers a second exception.
09(OD)=Copressor Segment Overrun.
Floating point operand is outside the segment.
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.
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.
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.
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, resulting in the immediate termination of the program.
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, resulting in the immediate termination of the program.
- How to fix a general protection fault.
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).
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.
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.
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.