Contents of the README.DOC file
Contents:Bug fixes for the Virtual Memory Manager of MS C 7.00
Source:Guillermo Gallo, Leica - MEXICO (cis: 70153,2630)
Date:February 8, 1993
Revised:August 7, 1993 - Updated for Visual C++ 1.0 (bug still there!)
This ZIP file contains the documentation for two bugs found in the VMM,
along with the patch information to correct the problems, and a patched copy
of 'vmphys.obj' (the VM library module with the problem), renamed as
'pvmphys.obj' (object modules included with the consent of MicroSoft).
The bug founds are:
- Bad UMB allocation.
- Memory corruption.
The problem starts when there are UMBs available for allocation when the
_vheapinit() is called. The initialization routines then will corrupt random
spots along all the low memory space. In my case I have problems with DOS that
from time to time forgot to flush BUFFERS and the like. Before I discover
this, I was on the conclusion of having developed a 'magic' sequence of file
access that fools DOS and makes it forget its duties. Temporarily I
surrounded the problem 'commit()'ing the problematic file (a temp swap file)
but few weeks later the problem popped somewhere else. (Bounds Checker reported
that the vm initializing code was reading its code in some cases). If you are
using the MSC 7.00 VMM and are experimenting strange random problems in your
application here can be answer.
The file 'vmbigbug.doc' included contain the necessary information to patch the
library module your self if you wish, with the help of the venerable DEBUG.
The file 'pvmphys.obj' contains the patch already done, and is ready to replace
the original 'vmphys.obj' build in the VM library. The patched module is now
running at several customer sites without a glitch for two weeks.
Once you have the patched module you have to replace it in your libraries
with the help of the LIB manager deleting the original one and inserting the
new one. Remember to do it for all memory models.
- readme.docThis file.
- vmbigbug.docCodeView listing extract with bug patch info.
- pvmphys.objPatched library module.
Update for VISUAL C++ 1.0 (C/C++ compiler version 8.00)
Unfortunately, it seems that the report of the cited bugs ware too late to get
in on time for the new compiler release, and the libraries coming with the
Visual C++ compiler still have the same bugs.
Although the code shows some revision work done on it, the bugs where not
removed at all. I included a new patched object file and its documentation.
If you are using Visual C++ or switch to it, you have to replace the new
patched file in all DOS libraries.
THE PATCH FOR VERSION 7.00 WILL NOT WORK IN VERSION 8.00 OF THE LIBRARIES!.
- pvmphys8.objpatch for Visual C++ (c/c++ compiler 8.00)
- pvmphys8.docpatch documentation
- repvmp8.bata batch to replace the patch in the libraries.