>Ed,
>
>Thanks for the additional explanation. I knew the C5 error was being trapped by the OS, but was lamenting how little the OS seemed to know about the cause.
>
>Isn't this sort of memory management one of the primary functions of the OS? Why doesn't it anticipate the memory access error instead of waiting for the CPUs memory management to report the problem? When the problem is intermittent and linked to apparently trivial VFP code (such as a WAIT WINDOW), are there any other strategies beyond updating all drivers and OS patches?
>
Well, since the CPU handles the translation of a flat 32 bit pointer into a physical or virtual memory page, it sees the error before anyone else does or can (you'd end up spending a number of cycles in the OS to examine each machine instruction that might contain a pointer (or several), while the current GDT and LDT are present inside the CPU, and are actually at work decoding the next few instructions while the current instruction executes as a result of the superscalar implementation used by Intel and equivalent processors.)
As far as other strategies, unless you're extremely comfortable getting deep down close to the sand, you're poking at cockroaches with a blunt stick; most of the time where updating drivers/OS components fixes the issue, what you're seeing as a VFP flaw may well be a flaw in the component you've replaced - the classic example is the HP printer driver problems, which although manifested in VFP apps, were really caused by HP not following the guidelines on preserving machine states after returning from a call to their drivers.
>Any further thoughts would be appreciated. I hate C5 errors because I feel so helpless to solve them. Almost any other error seems much more in my control.
>
>-- Larry
>
>>>The problem is, there really isn't a way to do this - the problem is being trapped by the operating system, not by VFP; the "C5" error is actually a memory access error trapped by the CPU's memory management section, which raises an exception that's handled by the operating system,
not by VFP itself. The exception is a memory access error - an attempt by the program to access memory that's undefined, that it does not own, or does not have sufficient privilege to access as requested.<<