One of the most advanced features of Dr. Watson enables an application to continue even after a general protection (GP) fault occurs. Because a GP fault means that a bug has been encountered, continuing is dangerous. However, some application developers requested the ability to continue running an application even after a GP fault. If the GPContinue entry is used, Dr. Watson performs the following tests when a GP fault occurs. If each of the following four conditions is true, Dr. Watson allows the application to continue:
1.Bit 0 of GPContinue is set.
2.The faulting instruction is one that can be allowed to continue.
The following example, which happens to be beyond the end of a segment, would be allowed to continue:
mov ax,[ffff]
The following instruction, which involves an invalid address, would not be allowed to proceed:
jmp seg:offs
3.The fault is not in KERNEL or USER. (Or the fault is in KERNEL or USER, and you have set the appropriate bit in the GPContinue value to continue in spite of the risk.)
4.The user wants to continue. Dr. Watson displays the following dialog box so that the user can decide.
If the user chooses the Close button, an error message box appears.
Although it is very risky, you can also allow continuation in KERNEL or USER by setting GPContinue as required. Following are the bits and values for the GPContinue entry:
Bit | Value | Meaning |
0 | 1 | Allow continuation. (This is the default setting.) |
1 | 2 | Write only three-line reports. |
2 | 4 | Continue even if the fault is in KERNEL. |
3 | 8 | Continue even if the fault is in USER. |
You must combine these values. The following example permits continuation after a GP fault in USER:
set GPContinue=9