April 1998
|
|
| Friendly advice |
| Whenever this document suggests you modify a file, it is a good idea to make a backup (copy under another name or onto a floppy) before doing so! |
The document is divided into two parts: a more or less Netscape specific part, and the "Grab Bag". The first, Netscape specific, part contains things you can try, more or less in order of ease-of-doing. For example, checking certain lines in CONFIG.SYS is pretty simple. Doing the same in WIN.INI and SYSTEM.INI is a bit more difficult, but still not to terrifying. The section about Netscape DLL's, at the end of the Netscape-specific part, on the other hand starts to be reasonably involved.
So go through the netscape-specific part first. If that doesn't work, try browsing the grab-bag. It has some things that are easy to do, some that are more difficult.
A General Protection Fault (GPF) in Windows 3.1 can occur when one program in memory attempts to access another area of memory not assigned to it. In other words, something running within the Windows environment has made a call to a location in memory that it did not have access to, potentially overwriting and corrupting other program code in that area of memory. When Windows detects this, it closes down the offending program and announces that a GPF has occurred.
Another situation where a GPF may occur involves the passing of parameters between applications and the Windows environment. Invalid parameters affect the performance of Windows and its applications by forcing an invalid instruction. This is usually the result of an application's internal program code incorrectly passing specific data that could not be correctly interpreted for Windows or another Windows application. The result is often a GPF.
If you have experienced a GPF, you may derive some cold comfort from the knowledge that you are not alone. Here are some quotes:
Microsoft Windows can sometimes be prone to a wide variety of crashes, glitches, GPF's, and other assorted weirdness.And (from another source):
(From Netscape documentation)
To some extent, these WILL occur from time to time. It's just the nature of Windows and its interface with Netscape.However, there are some things you can try.
The remarks in parenthesis are helpful explanations.DEVICE=himem.sys (Make sure there is a reference to 'himem.sys'.) DEVICE=emm386.exe (Make sure the reference is there.) buffers=60 (or more) stacks=9,256 (or try 18,128) files=80 (or more, try 120) SHELL=C:\DOS\COMMAND.COM C:\ /E:2048 /P (Make sure COMMAND.COM is there.)
DEVICE=C:\DOS\HIMEM.SYS /M:1
Here are a few simple things you might try:
Note: Certain commands in the AUTOEXEC.BAT file, such as WIN or MENU, prevent any subsequent lines in that file from being read. If a PATH or TEMP statement follows such an entry, move it above the line in question. If there are multiple temp= statements, only the last one is effective.
This puts SMARTDrive into low memory and writes all write-behind information to your hard drive. For more information, refer to the Microsoft Windows User's Guide.c:\windows\smartdrv.exe /C /L
This command will exclude certain memory mapping addresses if you are using EMM386.WIN /3 /D:X
After you've made changes to AUTOEXEC.BAT and/or CONFIG.SYS you have to reboot.
Windows may start up a number of programs automatically. This is done in WIN.INI. Check the "LOAD=" and "RUN=" lines in WIN.INI, and comment out any of them that start up programs that you do not really need running. Then restart windows.
Some examples of programs that run automatically in the background: fancy screen savers like After Dark or Sherman's Lagoon, antivirus programs. Try if the problem persists without them.
First try using the standard VGA driver from Microsoft. This can be found in the Main Group under Windows Setup. If you video driver is anything other than VGA then change it (and restart Windows). If your problem goes away, then check the manufacturer's ftp or web-site for an updated driver.
You can also change your video driver by running SETUP from the WINDOWS directory, under DOS. This is useful if you have changed to a driver that is incompatible with your card/monitor, and are getting a garbled screen under windows. In that case, make sure that windows is not started up automatically by AUTOEXEC.BAT (pressing F8 during boot-up should result in a step-by step execution of CONFIG.SYS and AUTOEXEC.BAT, so that you can say NO to certain steps, including the WIN step at the and of AUTOEXEC.BAT).
For earlier versions type inscandisk /AUTOFIX /NOSAVE
chkdsk /f
Make sure your swap file is permanent:
MAIN icon click on CONTROL PANEL.
CONTROL PANEL click on 386 Enhanced.
VIRTUAL MEMORY (Swap File) to make sure it
says "Permanent".
defrag" at least once a
month.
Now restart Windows.
MSD.EXE. Search for
WINSOCK.DLL, starting at the root of your system drive (e.g. C:\).
Make sure you search sub-directories.
If you have more than one drive, search these as well.
If you have more than one copy under win3.xx then you have a problem. One Winsock directory should be in your PATH statement in your AUTOEXEC.BAT. For instance, if you have one WINSOCK.DLL in your Windows directory and another in your Winsock directory and both are in your PATH, you will run into problems. To solve this problem just remove the WINSOCK.DLL that you don't want to use or correct your PATH statement. Then reboot.
General Protection Faults are often caused by conflicts between the library files used by Netscape and the library files used by other applications on your computer. These library files, known as .DLL files, often contain information which is used by a number of programs. For example, a .DLL file may contain the code that allows an application on your computer to interface with the sound card and play sound.
When you install the Netscape, 11 system files, including several .DLL files are installed on your computer--unless those files are already there. If another piece of software, Microsoft Office for example, has already installed one or more of the .DLL files used by Netscape, the installer may not overwrite the older .DLL file.
This is not usually a problem, however, occasionally two .DLL files will have the same name, but not actually be the same file. When the installer encounters the old .DLL file, and the file is not overwritten, then the necessary .DLL file is never actually installed. Unfortunately, this means that when Netscape tries to use that .DLL file, it does not find what it needs, or worse finds something other than what it went looking for, and the Netscape program crashes, leaving you with a general protection fault message.
This process can work in reverse. If you install Netscape and all of the .DLL files install correctly, and then install a new program that overwrites the .DLL files used by Netscape with .DLL files that conflict with the .DLL files used by Netscape, Netscape will crash, and you will get a general protection fault message.
The following 11 files are the files Netscape installs in the C:\WINDOWS\SYSTEM directory on your computer:
In order to eliminate conflicts between .DLL files, begin by copying these files from your C:\WINDOWS\SYSTEM directory to diskette as a backup. Next, delete all 11 of these files. Finally you will need to re-install Netscape.COMPOBJ.DLL, MFCOLEUI.DLL, OLE2.DLL, OLE2.REG, OLE2CONV.DLL, OLE2DISP.DLL, OLE2NLS.DLL, OLE2PROX.DLL, STDOLE.TLB, STORAGE.DLL, TYPELIB.DLL
It may that there are corrupt files on your PC. Dynamic link library (DLL) files are likely to make up the majority of corrupted files on your hard disk. This is simply because DLL files are constantly in use and thus more susceptible to write errors. A damaged DLL will often produce a general protection fault (GPF) in Windows. Regardless of the type of file, if there is corruption, a simply copy procedure will unearth any problems. Do this outside of Windows, just to be on the safe side. And to avoid disk fragmentation and duplication of files, copy the files to NUL. This is essentially the same as copying the files to nowhere, which will save you from having to remove the files from another directory after verification.
Thus, from the directory in which the files are likely to be located, usually /Windows or /Windows/System directories, do the following:
copy *.* nul
Because there is no physical target drive and DOS does not have to write to a hard disk, the copied files will move in quick succession down your screen. DOS will display an error if it detects a corrupted file.
If these suggestions fail you should use some undocumented Windows programs which should give us more detailed information about the error.
To use Windows' Bootlog feature, load Windows by typing WIN /B at the DOS command line. When Windows finishes loading, open the ASCII text file called BOOTLOG.TXT in the Windows directory using any text editor. It should contain lines like the following ones:
LoadStart=OEMFONTS.FON
LoadSuccess=OEMFONTS.FON
Init=Mouse
Status=Mouse Driver Installed
InitDone=Mouse
If one of the lines includes the phrase InitFail or LoadFailure, you've found the culprit. To fix the problem, reinstall the file that failed to load by copying it from your original Windows floppies. Use the Expand program from your Windows directory in order to extract the original file from the distribution disks.
Dr. Watson monitors the "health" of your Windows system. If a General Protection Fault occurs, Dr. Watson records detailed information about the problem in the file DRWATSON.LOG. It also prompts you to note precisely what was happening at the time the error occurred. Dr. Watson lets you choose to close the problem program or ignore the error. If you choose to ignore, save your work (if possible) and exit the offending program right away.
To run Dr. Watson, it should be added to your Startup group.
For more abour Dr. Watson, see the section
Dr. Watson: Where do I Find it?.
| If the error occurs in | The problem could be | Begin troubleshooting with |
| KRNL386.EXE | Memory management | DOS Memory Management and Windows Memory Management |
| GDI.EXE | Windows setup | Windows Setup & Configuration. |
| USER.EXE | System configuration and/or I/O devices | System Setup & Configuration and Windows Setup & Configuration |
| An application executable (e.g., FILENAME.EXE) or DLL (e.g., WINSOCK.DLL) | Improper installation, duplicate DLLs, or data corruption | Application Setup & Configuration. |
Check that HIMEM.SYS is version 3.01 or higher. Use SETVER.EXE to determine version numbers.
Make sure that the correct A20 handler is used or autodetected when
loaded in CONFIG.SYS. A20 handlers
allow access to extended memory. If the A20 handler used is incorrect,
Windows will not be able to use
extended memory effectively. If an A20 handler is not specified with
the
syntax DEVICE=HIMEM.SYS /M:? in CONFIG.SYS, refer to the chart below and
test.
Remove any RAM drive configurations. Test the system without the RAM drive. If the problem disappears, consider removing the RAM drive or reinstalling the driver. Make sure that the latest version of RAMDRIVE.SYS is used.A20 Name Computer Type Number 1 at IBM AT or 100% compatible 2 ps2 IBM PS/2 or compatible 3 ptlcascade Phoenix Cascade BIOS 4 hpvectra HP Vectra (A and A+) 5 att6300plus AT&T 6300 Plus 6 acer1100 Acer 100 7 toshiba Toshiba 1600 and 1200XE 8 wyse Wyse 12.5 mHz 286
Check memory exclusions in CONFIG.SYS. Make sure there are no overlapping addresses and that the exclusions are correct. Refer to hardware and software documentation for correct memory configuration information.
Remove any 3rd party memory managers (e.g., QEMM). Load EMM386.EXE in CONFIG.SYS instead. If system performance is severely affected, run DOS 6.22's MEMMAKER.EXE to streamline memory configurations.
Check CONFIG.SYS to make sure that HIMEM.SYS is the first memory-related device driver loading. No other commands utilizing upper memory should be loaded before HIMEM.SYS, e.g, EMM386.EXE. Any other commands or devices not managing or allocating memory (including SET and SHELL) may be loaded first.
Remove the swap file. Defragment the hard drive. A complete file and directory reorder is optimal. Reset the swap drive.
Check EMMEXCLUDE= in the [386Enh] section of SYSTEM.INI. Are there any overlapping memory addresses? Is this setup consistent with the memory setup in CONFIG.SYS?
Add MaxBPS=768 to [386Enh] section of SYSTEM.INI. This will raise the system's tolerance to crashes.
Run Windows with the following syntax: WIN /S. This will load Windows in standard mode. If this works, go to the next step.
Run Windows with the following syntax: WIN /D:XSV. This will do the following: exclude all of the adapter area from free memory scans performed by Windows; exclude the ROM address between F000:0000 for break points; and change ROM routine to handle interrupts from hard drive controller. If this works, go to the next step.
Run Windows with the following syntax: WIN /D:XS. If the problem does
not reoccur, add the following to
[386Enh] in SYSTEM.INI: VirtualHDIrq=OFF. This can be caused by
incompatibility with SCSI drives or
nonstandard hardware.
Run Windows with the following syntax: WIN /D:X. If the problem does
not reoccur, try adding the following
to [386Enh] in SYSTEM.INI: SystemROMBreakpoint=False.
Run Windows with the following syntax: WIN /3 /d:x. This will exclude the entire upper memory area. If the problem does not reoccur, it is possible that a page mapping conflict exists. This generally occurs when a third party memory manager is being used and Windows fails to recognize the other memory manager. Load EMM386.EXE in CONFIG.SYS instead. If that does not solve the problem, from the DOS prompt do: MEM /C | MORE. This will show the programs loaded in upper memory. Check for drivers and programs that can be removed or that may be attempting to use the same memory space.
Check for IRQ conflicts, particularly for mouse setup problems. Refer to system documentation for correct IRQ settings. Check these settings in CMOS. Diagnostic software not specific to the hardware, e.g., Windows' MSD.EXE, may have problems correctly identifying settings and configurations. Check the chart below of common IRQ settings against CMOS configuration information. Confirm settings for devices not mentioned here in the hardware documentation before making changes.
Check the BIOS as the system boots or in CMOS setup. Write down the name and version number. Contact the manufacturer to determine if there is an upgrade needed to fix the problem. Several older BIOS versions from different vendors have bugs that would increase GPF occurences, including PEAK/DM BIOS v1.10.IRQ# Purpose 0 Timer Interrupt 1 Keyboard Interrupt 2 Programmable Interrupt Controller Cascade 3 COM2 and COM4 4 COM1 and COM3 5 LPT2 (Parallel Printer Port) 6 Floppy Disk 7 LPT1 (Parallel Printer Port) 8 Real-Time Clock 9 Cascade to IRQ2 10 Reserved/Open 11 Reserved/Open 12 Mouse port on PS/2 or Reserved/Open 13 80x87 Math Coprocessor 14 Hard Disk 15 Reserved/Open
Clean up temporary files with the following commands: DELETE *.TMP. This can be executed from the Windows directory, or if temporary files are stored elsewhere on the system, with /S appended to clear up temporary files on the entire hard drive. This command should not be executed within Windows.
Check CONFIG.SYS or AUTOEXEC.BAT for network settings. REM out any references to network drivers, mappings, or settings. Reboot and test the system. If the problem does not reoccur, readd each one of the network settings and drivers until the problem is isolated.
All applications should be compatible with Windows 3.0 or higher. Any application that is incompatible with Windows 3.x should be identified as incompatible with Windows by Program Manager. When in doubt, check the documentation or call the manufacturer. Upgrade the software or run Windows in real mode (WIN /R).
If you are receiving a GPF in a DLL, check to make sure that only one
copy of that DLL exists on your system in any directory. Duplicate
copies of the same DLL can cause problems if other copies are a
different
version. How to tell: check file size and time/date stamp.
If the GPF occurs in DOS applications, create or edit the PIF with
PIFEDIT.EXE. If a PIF does not already
exist for the progran experiecing GPFs, create a new one. Change the
memory requirements to reflect -1. This
will give the DOS application all available memory while running
exclusively.
When GPFs consistently occur in a program executable (e.g., WINWORD.EXE), reinstall the application.
Check for shareware utilities, shells including Norton Desktop, screen savers, autoloading toolbars, wallpaper, and other non-Microsoft TSRs, particularly when autoloaded in Startup. Remove all of the non-Microsoft applications and TSRs, then replace one at a time, testing after each readdition. Once the problem is isolated, try reinstalling the application or contacting the software manufacturer.
Contact the software manufacturer to determine if the problem is a documented bug. Request an upgrade or bug fix if one is available.
Make sure system resources are above 60% when the problem occurs. When troubleshooting GPF problems, open all applications normally open when the problem occurs. To determine system resources and other helpful information at the time of a GPF, load DRWATSON.EXE into Startup. Check DRWATSON.LOG after a GPF. (For more abour Dr. Watson, see the section Dr. Watson: Where do I Find it?.)
If the problem occurs, try WIN /B. Examine BOOTLOG.TXT to determine if there are any load failures that could be causing the problem.
To test for problem drivers, create a vanilla system configuration by changing the following settings in [boot]:
shell=progman.exe system.drv=system.drv keyboard.drv=keyboard.drv mouse.drv=mouse.drv display.drv=vga.drv comm.drv=comm.drv sound.drv=mmsound.drvIf this new configuration works and eliminates the problem, compare with the old SYSTEM.INI and replace the drivers one at a time in the new SYSTEM.INI until the problem is isolated. Reinstall driver or contact manufacturer for a possible bug fix or upgraded driver.
Remove all applications in Startup group. If taking the applications out of Startup seems to cure the problem, add the applications one at a time, testing thoroughly between each addition in order to determine which application is causing the problem. Once the problem has been isolated the problem, changing the loading order in the group or reinstalling may help.
REM out LOAD= and RUN= statements in WIN.INI. Test. Add each statement, one at a time, until the problem program is determined. Try reinstalling the problem program or contacting the manufacturer for a bug fix or an upgrade.
Remove any non-Microsoft mouse drivers. Install the latest version of the Microsoft mouse driver.
Reinstall printer and video drivers. Always use the most recent versions of drivers. When in doubt, contact the manufacturer.
Rename WIN.INI to WIN.OLD. Run Windows. If the problem does not reoccur after the WIN.INI has been renamed, it is possible that the WIN.INI has been corrupted. Try reinstalling Windows. After installation, make a backup of the *.INI files before attempting to duplicate the problem. If the problem reoccurs, the corrupted WIN.INI was probably a sympton and not the cause of the GPFs. Continue troubleshooting but keep the backup WIN.INI as a reference.
As a last resort, reinstall Windows. Attempt first to save the old
desktop configurations from the original
installation. Install Windows into a new directory. Make sure to
remove all references to the old Windows
program files from the AUTOEXEC.BAT and CONFIG.SYS. After installation,
rename the new .INI and
.GRP files to .IN2 and .GR2. Copy over the old .INI and .GRP files
from the original Windows directory.
Test. If this does not work, a complete reinstallation is recommended
without saving .GRP and .INI files.
B. Check for multiple copies of other system files. You need one
and only one copy of every system file to run Windows, and multiple
copies can cause problems on your system. Some of the files that might
be duplicated on your system are the System.ini and Autoexec.bat file,
or the printer drivers and other device drivers.
C. Make sure you only have one version of Windows installed.
D. Turn off all type managers. Running more than one type manager
at the same time or running a damaged or outdated type manager may cause
GPFs. Turn off all type managers and restart Windows to see if you still
get an error. If you're using multiple type managers, try running each
type manager separately, and then in combination, to see if one is
causing problems. Call the manufacturer of the type manager in question
for additional suggestions.
E. Ensure your screen fonts aren't damaged. Screen fonts can be
installed through a type manager or through Windows. To check the
Windows screen fonts, open the Windows Control Panel and double-click on
the Fonts icon to display your list of installed screen fonts. Click on
the name of each font to see if it displays properly in the box below.
If any font causes a GPF, gives an error or doesn't display, delete the
font and reinstall it.
F. Run Windows in Standard mode. To do this, exit Windows and type
"win/s" at the DOS prompt. If the error does not occur in
Standard mode, you may have a damaged permanent swap file or one that is
larger than the size recommended by Windows. For information about
deleting and recreating permanent Swap files, refer to your Windows
documentation.
NOTE: Windows for Workgroups cannot run in Standard mode.
G. Run Windows by typing "win/D:X" at a DOS prompt. If
this eliminates the GPF, you may have a mapping conflict in a particular
adapter segment of memory. Adding the line
"EMMExclude=A000-EFFF" under the [386Enh] section of the
System.ini file can keep this memory segment from being used by
Windows.
NOTE: Make a backup copy of your Win.ini and System.ini files
before making changes.
H. Change the resolution of your video card. If you are running a
high-resolution card, change the driver setting to Standard VGA and run
the program again. Some high-resolution cards are not written to Windows
specifications, and may have interface problems with complex Windows
applications. If changing the video driver fixes the problem, contact
your video card manufacturer to see if updated drivers are
available.
I. Rename the font summary file if you're using a PCL printer. This
file is named "FSxxport.PCL", where "xx" is the
printer driver identifier and "port" is the name of the port
your printer is using (such as LPT1 or COM2). The next time you use that
printer, the file will be rebuilt.
J. Make sure you have a proper target device as a default in your
applications. Sometimes a default may be set to a printer that has been
removed, or to a driver that is damaged. Change to a different default
to see if the problem is corrected.
Dr. Watson is on floppy disk no. 4 of the Microsoft Windows 3.1 Operating System floppy kit. To get this to the internal hard disk, put the floppy in the drive (probably A:), and from the File Manager, choose File:Run menu, type the following commands:
This will place the .exe file on the internal hard drive.a:\expand.exe a:\drwatson.ex_ c:\drwatson.exe
Another option is to
download drwatson.exe from
http://www.pointcast.com/support/tech_docs/drwatson.exe
Note: Remember where you saved the download file).
After downloading, start Dr. Watson by clicking on the drwatson.exe and it will show up on the desktop. Now try and reproduce the error. If you want to have Dr. Watson running continuously, you can place the icon in the Startup group of the Program Manager. You can click on the Dr. Watson icon to see if any errors have been logged.
Log File
Dr. Watson will place a log file called DRWATSON.LOG in the \WINDOWS directory. This is the log you need for further investigations.
Once you have a Dr. Watson log file, you
may view the log file using Notepad or MS Write.
© 1998, The University of Western Ontario. Permission is granted to copy in whole or in part provided that due credit is given to the authors, the Division of Information Technology Services, and The University of Western Ontario.