Frama-c Magnesium:无法在 Windows 上执行 WP 插件

Frama-c Magnesium : Unable to execute WP plugin on Windows

我使用提供的说明安装了 frama-c Magnesium 版本 here。在 Cygwin 打印的 Frama-c 版本中安装和执行命令 frama-c -version 期间我没有收到任何错误:Magnesium-20151002。但是当我在一个非常小的例子上执行 -wp 插件时,对于使用 alt-ergo 的目标,我得到以下错误:

1 [main] frama-c 8168 child_info_fork::abort: unable to map C:\cygwin\usr\local\lib\frama-c\plugins\Users.cmxs, Win32 error 998 1 [main] frama-c 7956 child_info_fork::abort: unable to map C:\cygwin\usr\local\lib\frama-c\plugins\Value.cmxs, Win32 error 998

0 [main] frama-c 300 child_info_fork::abort: unable to map C:\cygwin\usr\local\lib\frama-c\plugins\Value.cmxs, Win32 error 998 [wp] [Alt-Ergo] Goal typed_changeCase_assert_rte_signed_overflow_2 : Failed Error: Resource temporarily unavailable

值插件执行成功。我搜索错误并找到了这个post。所以我也执行了 rebaseall -v 命令,但这也没有帮助。为了确认我的 Cygwin 没有损坏,我再次安装了 Frama-c Sodium 版本并且能够成功执行 WP 插件。

谁能帮我解决这个问题,我们希望能够在 Windows 上使用 Frama-c Magnesium 版本?

编辑: 机器详细信息: 我在我的电脑上和虚拟机上都试过了。在 VM 上,我执行命令 ./configure && make and make install 来安装 frama-c Magnesium。

我在两台机器上都有 32 位 Cygwin。 Windows 都是 64 位的。

  1. 我机器上的 Ocaml 版本:4.02.3,VM 上的 Ocaml 版本:4.01.0
  2. 我的机器和 VM 上的 Cygwin 版本:CYGWIN_NT-6.1-WOW64 1.7.27(0.271/5/3) 2013-12-09 11:57 i686 Cygwin

在 Frama-C Magnesium 发布时,alt-ergo 1.01 还不存在。所以当 WP manual for Magnesium 提到与 alt-ergo 的兼容性时 0.99.1+,它无法预见与 alt-ergo 的未来版本不兼容。

幸运的是,下一个版本(Aluminium)将与 alt-ergo 1.01 兼容,所以这在未来应该不是问题。

同时,您应该可以使用 alt-ergo 0.99.1。

编辑:根据错误信息和进一步的细节,它可能与你的Cygwin版本有关,它看起来比较旧,从 2013 年开始;你的是 1.7.27,而我使用的是 2.4.1.