FAKE_VM X01-005 23-May-1989 Mark Bramhall Digital Equipment Corporation 110 Spit Brook Road Nasuha, NH 03062 The only "documentation" for FAKE_VM is the initial block comment that lives at the beginning of the module's source code. Please read those comments carefully. There is a lot of helpful information, even if it is hard to dig out. Quite useful and often overlooked are the settings of 3 and 5 in the location FAKE_VM_REAL_FREE_OFF. If you suspect "stale" pointers (pointers still pointing at deallocated memory) and/or other memory corruption problems then the setting of 3 is very useful. This forces each memory allocation to be on a unique page (or set of pages) and will actually delete the page(s) from your address space upon deallocation. This forces ACCVIOs when stale pointers are used (instead of memory corruption). If you have soo many bugs that you get immediate ACCVIOs when using the setting of 3 then you can try the setting of 5. This purposely keeps (avoids reusing) deallocated memory so that stale pointers, etc. will not be clobbering active memory. The 5 setting is there to let you debug a specific problem in an otherwise totally buggy program! One final note, FAKE_VM announces errors as soon as it detects them. This means that you might get an error announcement seemingly unconnected with what your program was doing. For example, if your program is deallocation some piece of memory, FAKE_VM runs through its still-allocated memory list to find said piece. But, if while looking for the piece being returned, it finds another piece that has been corrupted FAKE_VM will announce the corrupted bit. Just carefully look at the error message. Messages about corruption can occur at almost any time. In fact, to force this type of error announcement to happen as soon as possible, you can set FAKE_VM_CHECK_ACTIVE_LIST to 1.