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