How do I fix XXXX problem ?
First things to try:
1. Virus check and do a RAM check.
2. Update device drivers to the latest versions.
3. See below about the System File Checker.
4. Enter a simple keyword into our
Search box.
Fatal Exception Errors, WHAT THE ????
You have seen them "0E at 0167:BFF7544D" or "OE at 0028:00000304".
Those little codes are just where the processor "stopped" in memory
and really
don't tell you much about anything.
If you were hoping to decode them, see below "Decoding Stupid Error
Codes".
You are not the only one having these problems! Search the net and
for years
and years now I have watched these problems continue with Windows.
New
versions are not helping, so throwing money at it is not the solution.
You probably don't want to hear this, but the real problem is in the
attitude of the
people who develop your Operating System (OS). If it's hard for programmers
to
develop stable code because of a lack of documentation or OS source
code to look
at, then you get very crappy software.
It's also the structure of the OS. It started out wrong and just kept
going.
I won't go on and on about this, but please consider using a Open Source
Operating
System for any serious applications you have. I am a programmer, I
know.
My advice is to move slowly over to the new OS. Get a second computer,
or a set
of $15 hard drive removable bays so you can easily switch hard drives.
It's easy
to install the latest Red Hat or Mandrake OS's and they are very "windows"
like
and very, very stable - meaning NO BLUE SCREEN CRASHES!!
Search
the KnowledgeBase with keywords of what you think is the problem,
the
name of the program you have or video board type for starts.
Who cares about codes, why does my computer crash??
It's most likely a software, virus or OS problem. However, in some cases
it could be a hardware problem. If you have bad RAM or loose plug in boards
this can cause random problems at random times. If you have a condition
that happens randomly, check your RAM and/or try re-seating your
plug in cards inside the computer. People have reported that cleaning
off the gold contacts with a soft pencil eraser (and blowing off any
remaining
eraser bits) has cleared up many problems.
If your computer was fine 'till you installed some new software, then
I
would seriously consider that software the problem. Software conflicts
happen all the time, you install one thing and it breaks another.
This is a fault with the idea of a central "registry" that every installed
program writes to. This is a BAD OS design, better OS's are available.
OK, OK, so what can I do?
Seriously consider the paragraph above about installing a Open Source OS and start
moving towards a crash free life.
Second, use the System File Checker (SFC).
System File Checker is a part of a utility program that is available
in win 98. It is located in
a program called System Information.
You can open System File Checker by clicking Start, pointing to Programs,
pointing to
ACCESSORIES, pointing to System Tools, and then clicking System Information.
In
System Information, click Tools, and then click System File Checker,
follow the
instructions. You should go to the settings tab and select always backup
before restoring
and take note of the backup folder location in case you need it. You
should also checkmark
"check for deleted files" and "check for changed files" if they aren't
already checked. It's
best to leave all other settings in their default mode. Now you can
run the system file
checker.
Click on "scan for altered files" then start. If it finds any problems
you will be instructed on
what to do. If any files are corrupted you will need your windows98
CD to restore them.
You will find other utilities in the tool tab..a very useful one is
the system configuration
utility...this utility provides a quick and convenient way to see autoexe.bat,
config.sys, win.ini,
start up and system.ini files and turn them off and on at will to correct
problems at bootup.
System Information is a very useful hidden windows program..there is
lots more to it than
just what I've mentioned ..check it out and read it's help file to
discover more.
Search
the KnowledgeBase with keywords of what you think is the problem,
the
name of the program you have or video board type for starts.
Run a RAM test. You can find these in many places on the net for FREE
or your computer
store may test it for free.
Scan for viruses. Quit using Outlook for mail! Don't open "EXE" or
"BAS" files!
Update as many "drivers" as you can and update your software.
See the KnowledgeBase here for more hints, there are many more.
Remove software or start over installing Windows, then only install what you
need, leave it alone
and do any serious stuff or e-mail / browsing on a new OS (see the paragraph above).
What about KERNEL32.DLL or SYSTEM32 or USER.DLL ?
Kernel32 is loaded into memory and is called by many programs. It has
been known
to be infected by viruses and the like, so scan for viruses. If a program
tries to
access the memory space that Kernel32 is in you will get a error message.
Search
the KnowledgeBase with keywords of what you think is the problem,
the
name of the program you have or video board type for starts.
Decoding Stupid Error Codes
The error "0E at 0167:BFF7544D" let's call it "XX at YYYY:ZZZZZZZZ".
XX = The Processor Exception Code, why it stopped
YYYY = The "upper" part of a memory address where things happened.
ZZZZZZZ = The "lower" part of memory.
The memory part is a "enhanced instruction pointer" to the code segment,
it's a 32-bit address where the exception occurred.
Since we don't know how many programs you had loaded into memory
or where they are in memory, this address varies from computer to
computer, with a few exceptions such as bootup of a totally "new"
system or some addresses that might be "locked down" such as
DLL's.
However, here's a list of the Processor Exception Codes:
00: Divide Fault
The processor returns this exception when it encounters a divide fault.
A
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
The overflow trap occurs after an INTO instruction has executed and
the 0F
bit is set to 1.
05: Bounds Check Fault
The BOUND instruction compares the array index with an upper and lower
bound. If the index is out of range, then the processor traps to interrupt
05.
06: Invalid Opcode Fault
This error is returned if any one of the following conditions exists:
- The processor tries to decode a bit pattern that does not correspond
to any
legal computer instruction.
- The processor attempts to execute an instruction that contains
invalid operands.
- The processor attempts to execute a protected-mode instruction
while running
in virtual 8086 mode.
- The processor tries to execute a LOCK prefix with an instruction
that cannot
be locked.
07: Coprocessor Not Available Fault
This error occurs if the computer does not have a math coprocessor and
the
EM bit of register CR0 is set indicating that Numeric Data Processor
emulation is being used. Each time a floating point operation is executed,
an interrupt 07 occurs.
This error also occurs when a math coprocessor is used and a task switch
is
executed. Interrupt 07 tells the processor that the current state of
the
coprocessor needs to be saved so that it can be used by another task.
08: Double Fault
Processing an exception sometimes triggers a second exception. In the
event
that this occurs, the processor will issue a interrupt 08 for a double
fault.
09: Coprocessor Segment Overrun
This error occurs when a floating point instruction causes a memory
access
that runs beyond the end of the segment. If the starting address of
the
floating point operand is outside the segment, then a General Protection
Fault occurs (interrupt 0D).
0A: Invalid Task State Segment Fault
Because the Task State Segment contains a number of descriptors, any
number
of conditions can cause exception 0A. Typically, the processor can
gather
enough information from the Task State Segment to issue another fault
pointing to the actual problem.
0B: Not Present Fault
The Not present interrupt allows the operating system to implement virtual
memory through the segmentation mechanism. When a segment is marked
as "not
present," the segment is swapped out to disk. The interrupt 0B fault
is
triggered when an application needs access to the segment.
0C: Stack Fault
A Stack Fault occurs with error code 0 if an instruction refers to memory
beyond the limit of the stack segment. If the operating system supports
expand-down segments, increasing the size of the stack should alleviate
the
problem. Loading the Stack Segment with invalid descriptors will result
in
a general protection fault.
0D: General Protection Fault
Any condition that is not covered by any of the other processor exceptions
will result in a general protection fault. The exception indicates
that
this program has been corrupted in memory, usually resulting in immediate
termination of the program.
0E: Page Fault
The Page Fault interrupt allows the operating system to implement virtual
memory on a demand-paged basis. An interrupt 0E usually is issued when
an access to a page directory entry or page table with the present
bit set
to 0 (Not present) occurs. The operating system makes the page present
(usually retrieves the page from virtual memory) and re-issues the
faulting
instruction, which then can access the segment. A page fault also occurs
when a paging protection rule is violated (when the retrieve fails,
or data
retrieved is invalid, or the code that issued the fault broke the
protection rule for the processor). In these cases the operating system
takes over for the appropriate action.
10: Coprocessor Error Fault
This interrupt occurs when an unmasked floating-point exception has
signaled a previous instruction. (Because the 80386 does not have access
to
the Floating Point unit, it checks the ERROR\ pin to test for this
condition.) This is also triggered by a WAIT instruction if the Emulate
Math Coprocessor bit at CR0 is set.
11: Alignment Check Fault
This interrupt is only used on the 80486 CPUs. An interrupt 11 is issued
when code executing at ring privilege 3 attempts to access a word operand
that is not on an even-address boundary, a double-word operand that
is not
divisible by four, or a long real or temp real whose address is not
divisible by eight. Alignment checking is disabled when the CPU is
first
powered up and is only enabled in protected mode.