XP Guest GPF in WIN87EM.DLL at 0001:02C9 or 0001:02C6 => Fixed in SVN
|Reported by:||SteveDeveloper||Owned by:|
|Guest type:||Windows||Host type:||Windows|
When running 16 bit Apps in XP, there is an occasional GPF in WIN87EM.DLL at 0001:02C9 or 0001:02C6. Same app sometimes works OK. For me, this problem did not exist through many version of VB through 4.2.18 and started with 4.3.4.
The only web research I have was from a VMWare post that may or may not apply here (quoted from cwsault original post):
"There are a few applications which may fail with this error when executed in a VM. The problem is that the library tries to read the instruction bytes of the last FPU instruction executed based on the code segment and instruction pointer saved in the FPU environment. Unfortunately, the code segment saved in the FPU environment may be NULL.
When we switch between the virtual machine monitor and the host operating system, we use the primitive hardware instructions to save and restore the FPU state. These instructions were not really designed for an environment that mixes 32-bit and 64-bit execution. When the instructions are executed in 64-bit mode, they don't keep track of the code segment, since segments have little meaning in 64-bit mode. The virtual machine monitor, which saves and restores the FPU state for the guest VM, executes in 64-bit mode. Hence, the FPU code segment is lost.
Fortunately, there is a workaround for this issue. If you add the following option to your configuration file, we will make sure that the FPU code segment is properly saved and restored when switching between the virtual machine monitor and the host operating system (at some small performance penalty): monitor_control.enable_rigorous_fpu_save_restore = TRUE"
Change History (14)
comment:1 by , 9 years ago
|Summary:||XP Guest GPF in WIN87EM.DLL at 0001:02C9 or 0001:02C6 → XP Guest GPF in WIN87EM.DLL at 0001:02C9 or 0001:02C6 => Fixed in SVN|
comment:3 by , 4 years ago
|Status:||closed → reopened|