运行Frama-C命令时出现“ \ 226 \ 128 \ 147”错误

问题描述

当我尝试使用Frama-C运行C程序时出现此错误。如何解决错误

$ frama-c –wp 2.c
[kernel] Parsing FRAMAC_SHARE/libc/_fc_builtin_for_normalisation.i (no preprocessing)
[kernel] user error: source file "\226\128\147wp" does not exist
[kernel] user error: stopping on file "\226\128\147wp" that has errors. 
[kernel] Frama-C aborted: invalid user input. 

注意:最初的问题包括终端的屏幕截图,其中两个连字符之间的差异几乎看不见。

解决方法

“ \ 226 \ 128 \ 147”是Unicode EN DASH character的UTF-8序列,在视觉上看起来几乎与ASCII连字符相同。

当Frama-C解析命令行时,它仅搜索ASCII连字符,并且由于找不到一个连字符,因此它假定看起来的顺序类似于-wp是文件名,该文件名不存在,因此出现错误消息。

从PDF复制/粘贴代码时,通常会发生此错误。删除字符并用适当的连字符替换后,Frama-C可以按预期工作。