|
|
General Protection Fault ("Blue
Screen of Death")
Last updated: 4/25/03
Q. What
is a General Protection Fault (the infamous "Blue Screen of Death")
and how does one troubleshoot it?
A. A Windows General Protection Fault
(GPF) produces the infamous "Blue Screen of Death" (BSOD), which
is full screen with an error message, and locks-up a computer. Microsoft
defines it as:
"General Protection Fault (Interrupt 13)
All protection violations that do not cause another
exception cause a general protection exception. This includes, but is not
limited to:
- Exceeding the segment limit when using the
CS, DS, ES, FS, or GS segments. This is a very common problem in programs;
it is usually caused by miscalculating how much memory is required in an
allocation.
- Transferring execution to a segment that is
not executable (for example, jumping to a location that contains garbage).
- Writing to a read-only or a code segment.
- Loading a bad value into a segment register.
- Using a null pointer. A value of 0 is defined
as a null pointer. In Protected mode, it is always invalid to use a segment
register that contains 0."
When I see one of these errors and I do not know
the cause, and the error message includes the name of the task/module producing
the interrupt, I usually search Microsoft's
Knowledge Base with the version of Windows and the error message. If
that does not produce an answer, I search Google with
the error message. If that doesn't do it, I search again with just
the task/module name. Finally, one can resort to Microsoft's troubleshooting,
tips, etc. for these kinds of problems.
One thing that can cause "jumping to a location
that contains garbage" is bad memory or other hardware problems such
as a noisy power supply. Whereas, Microsoft emphasizes software problems
as the cause of BSOD's, I have seen a lot computers where the real cause
was defective hardware or faulty/dated hardware device drivers.
Larry
Windows FAQ Index
Also, see Windows
Tips and Tricks.
|
|