草庐IT

windows - 旧的 16 位应用程序间歇性地导致 WIN87EM.DLL 中的 GPF

我有一个旧的16位应用程序,它是为Windows3.1开发的。它执行一些计算并且是更复杂系统的一部分。系统为程序设置输入,并收集输出结果。不幸的是,16位程序在此期间仍然存在,因此我们必须解决它在现代操作系统上造成的问题。系统运行在WindowsXP上,在WindowsXP物理机上运行正常。我遇到问题的机器是在Debian机器上的VirtualBox(版本4.1.12)上运行的WindowsXP实例。物理计算机是HPProliant服务器,具有四核至强3.4Ghz。我正在使用远程桌面从我的Windows7机器访问计算机。我得到的错误是,“程序在地址为0001:02C9的WIN87EM.

windows - 一般性保护错误

如何检测导致GPF的进程? 最佳答案 我不确定我是否理解您的问题。GPF-是处理器发出中断的情况。如果这发生在用户模式​​-它会被转换为SEH异常,而该异常又可能由进程处理。如果不处理-过程“崩溃”。意味着-显示一个丑陋的消息框并终止进程(根据设置,还可以调试进程、生成调试转储等)如果这发生在内核模式中-有两种可能性。如果这发生在允许异常的上下文中-将引发并处理SEH异常(类似于用户模式)。但是,如果未处理异常,或者发生GPF的上下文不允许异常-操作系统关闭,并显示所谓的BSOD(蓝屏死机)。关于你的问题,我看到了几种可能性:操作系