Page 3 of 4

Re: General Protection Fault in module WIN87EM.DLL at 0001:0

Posted: 15. Sep 2014, 15:12
by gleysson
win 7 64 is the host

Re: General Protection Fault in module WIN87EM.DLL at 0001:0

Posted: 15. Sep 2014, 16:51
by Ramshankar
gleysson wrote:I installed version 4.3.16 and still the same problem I believe has not been resolved yet.
Please attach VBox.log for this.

Re: General Protection Fault in module WIN87EM.DLL at 0001:0

Posted: 15. Sep 2014, 16:59
by gleysson
Four logs are attached and are in winrar.

Re: General Protection Fault in module WIN87EM.DLL at 0001:0

Posted: 16. Sep 2014, 15:31
by michaln
gleysson wrote:I installed version 4.3.16 and still the same problem I believe has not been resolved yet.
Okay, we looked into this. Unfortunately for you, you actually have a different problem caused by your CPU. Basically your CPU is too new for your old software.

The problem is that Intel decided that they wouldn't store segment information for the last instruction/data pointer that's part of the FPU state. When a floating-point exception occurs, Windows (WIN87EM.DLL) wants to examine the instruction causing the fault, but because the segments are zeroed, it will crash. It is highly likely that if you installed 32-bit Windows on the host system directly, you'd have the same problem (if not, we'd like to hear about it).

It's currently not clear what, if anything, we can do about this. At any rate, it'd require some engineering effort and won't happen immediately.

For your reference, this is indicated by CPUID.(EAX=07H,ECX=0H):EBX[bit 13] = 1. Bit 13 is documented as "Deprecates FPU CS and FPU DS values if 1." in Intel manuals. Details are in Vol. 1 section 8.1.8, "x87 FPU Instruction and Data (Operand) Pointers".

If you want a short-term solution, get a CPU which is compatible with your software. Ivy Bridge or older Intels will do, any AMD probably as well.

Re: General Protection Fault in module WIN87EM.DLL at 0001:0

Posted: 19. Sep 2014, 15:10
by gleysson
michaln,

actually the problem was the processor, tested the program on a core i5 Ivy Bridge and it worked, for now only solution is that we have not only performed the test on 32bit windows in the fourth generation processor but, so I'll post test results. thanks for the support and sorry for the google translator :D

Re: General Protection Fault in module WIN87EM.DLL at 0001:0

Posted: 14. Oct 2014, 00:42
by Mike_in_Oz
This problem (of legacy 16 bit Windows programs no longer executing on previously reliable virtual machines due to the hardware issues on the new host) ) is going to become huge as more and more folk transition to more modern CPUs. As being able to run some old software was one of the main reasons I use VirtualBox, this is a disaster to me! The idea of disabling the floating point processor seems to work but renders the program I run so slow that it becomes unusable. All I can hope for is that the VirtualBox 'community' will figure out a coding fix for this?

cheers
Mike_in_Oz

Re: General Protection Fault in module WIN87EM.DLL at 0001:0

Posted: 14. Oct 2014, 10:02
by michaln
Mike_in_Oz wrote:This problem (of legacy 16 bit Windows programs no longer executing on previously reliable virtual machines due to the hardware issues on the new host) ) is going to become huge as more and more folk transition to more modern CPUs.
That's something you need to tell Intel... they clearly think it's a non-issue.

We've had a brief look at the problem but it's not at all clear that the new/crippled hardware can be worked around in software.

Note that this is different from a bug in VirtualBox that produced more or less exactly the same symptomps on older CPUs (and which was the original subject of this thread), but that ought to be fixed now.

Re: General Protection Fault in module WIN87EM.DLL at 0001:0

Posted: 20. Mar 2015, 22:09
by DMDiegom
Hi im having problems with an old software called CAD ESTIMATOR works on the old machine on XP, But through "Virtual box on macbook pro 2014" it works until I Click on generate reports which is similar to spreadsheets that brings all the calculations on the program and this is what I get

"CADEST caused a general protection fault in module WIN87EM.DLL at 0001:02C9" I read through the posts, in some it says it has been fixed but I don't see how to fix it, maybe I don't understand it please help thank you.

Re: General Protection Fault in module WIN87EM.DLL at 0001:0

Posted: 21. Mar 2015, 00:07
by michaln
A VBox.log would help. If you have one of the affected Intel CPUs then nothing will help you, short of using a different computer with a fully functioning CPU. VBox.log will tell for certain if your CPU is problematic or not (98% chance it is).

Re: General Protection Fault in module WIN87EM.DLL at 0001:0

Posted: 22. Sep 2015, 09:38
by dukbilt
I'm experiencing this issue too (using VB 5.0.0 on MacBook Pro running Yosemite).

Any options to resolve this?

Re: General Protection Fault in module WIN87EM.DLL at 0001:0

Posted: 22. Sep 2015, 10:32
by mpack
dukbilt wrote:Any options to resolve this?
Depends what "this" is. The original (OP) problem was fixed, as you can see if you check the bug ticket.

If you have the latter (CPU) problem then you need new software or an older CPU.

Re: General Protection Fault in module WIN87EM.DLL at 0001:0

Posted: 22. Sep 2015, 13:07
by dukbilt
My Macbook Pro uses an Intel Core i5 processor - does that mean my current hardware limits the virtualisation options? That seems to be completely against what virtualisation is meant to provide...

Re: General Protection Fault in module WIN87EM.DLL at 0001:0

Posted: 22. Sep 2015, 13:30
by mpack
You think that virtualization doesn't care about the host hardware? If so then that would be incorrect. Have you actually read the posts in this topic? I would think the explanations were quite clear.

Re: General Protection Fault in module WIN87EM.DLL at 0001:0

Posted: 22. Sep 2015, 16:38
by michaln
dukbilt wrote:My Macbook Pro uses an Intel Core i5 processor - does that mean my current hardware limits the virtualisation options?
This problem has nothing to do with virtualization. The CPU simply behaves differently, but virtualization isn't emulation so the different behavior is visible in a VM just as much as it's visible on the host.
That seems to be completely against what virtualisation is meant to provide...
Not at all. Virtualization was never about exactly emulating a specific CPU, it was (and is) intended for resource sharing and management.

Basically if you think your Intel CPU is broken, you need to take that up with Intel. Although I'm sure they have some sense of how many of their customers are affected and decided that they didn't care.

Re: General Protection Fault in module WIN87EM.DLL at 0001:0

Posted: 29. Sep 2015, 01:31
by dukbilt
A possible solution:

1. Download "Winfloat.exe" (http://www.conradshome.com/win31/archiv ... nfloat.exe) to your VM.
2. Double-click on "Winfloat.exe" to extract files to C: drive.
3. Copy “HIDE87.com” to the c:\windows\system32 directory.
4. Open the “autoexec.nt” file (c:\windows\system32\autoexec.nt) with a text editor.
5. Add “lh c:\windows\system32\HIDE87.com” to the “autoexec.nt” file.
6. Save the file, and exit.
7. Reboot the Virtual Machine.
8. Done!