问题标签 [klee]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
666 浏览

ubuntu - C 编译器无法在使用 LLVM 构建 Coreutils 期间创建可执行文件

我正在寻找一些帮助,以解决在使用 llvm 的 Coreutils 配置命令期间弹出的错误的解决方案。

我使用命令:

CC=wllvm ../configure --disable-nls CFLAGS="-g -O1 -Xclang -disable-llvm-passes -D__NO_STRING_INLINES -D_FORTIFY_SOURCE=0 -U__OPTIMIZE__"

并收到错误:

我已经export LLVM_COMPILER=clang事先运行了命令

我已经使用命令在我的 Ubuntu 操作系统上安装并设置了clang-6.0clang++-6.0

可以在此处查看生成错误的 config.log 文件,该文件还显示 wllvm: command not found

https://drive.google.com/open?id=1ExbLhT2tWRyGSAb67mAgu6D9y3AknZ2v

0 投票
0 回答
202 浏览

llvm - 在 KLEE Docker 上配置错误:C 编译器无法创建可执行文件

我正在尝试使用基于https://klee.github.io/tutorials/testing-coreutils/上的步骤 3 的 klee docker 使用 LLVM 构建 Coreutils 。

但是我在运行时发现了一个问题:

它说

在运行上面的代码之前,我已经安装了 wllvm

并且已经安装

但是虽然我已经安装了它,它仍然会产生错误,我不知道如何处理它,我使用了C 编译器中提供的解决方案 cannot create executables during build of Coreutils with LLVM,但没有什么不同,

之后,我按照https://github.com/travitch/whole-program-llvm/issues/68中的说明进行操作,据说使用 clang 而不是 wllvm。之后程序正在运行,但执行时再次出错

那说

搜索任何来源后,我仍然无法解决。

这是未找到 wllvm 时 config.log 的一部分

0 投票
1 回答
64 浏览

echo - 如何在 klee 中使用 max-time 标签

我正在尝试在 coreutils 的编译字节码版本上运行 klee,这在某种程度上复制了 klee 不久前所做的实验。

我在弄清楚如何使用 --max-time 标志时遇到了一些麻烦。

当我运行这个命令时,它需要大约 3 分钟,尽管最大时间是 10 秒:

当我运行这个命令时,大约需要 3 秒。该命令是相同的,除了文件名和 --max-time 标志被切换的事实。

最后,当我在没有 --max-time 标志的情况下运行它时

至少需要30分钟,此时我放弃并杀死了它。

显然,文件名前后的标志都在做某事,但我不确定是什么。根据文档, --max-time 的标准用法将其放在文件名之前。谁能帮我理解发生了什么?

0 投票
0 回答
61 浏览

c++ - LLVM 对通过 KLEE 代码中的指针访问的结构的内容进行交互

我对 LLVM 和 KLEE 很陌生,我试图了解是否可以访问指针引用的结构的内容。我正在处理的代码很长而且很复杂,但问题如下:

在其中一门课中,我有以下陈述:

到目前为止,我可以使用以下代码访问其他简单全局变量的内容:

ExecutionStateMemoryObjectObjectState是 KLEE 中定义的类。该函数os->getValue(strType)是用户定义的函数,用于获取 ObjectState 的内容。

我可以pointer2Structure根据变量名看到,但由于它是一个指针(PointerType)我不知道如何访问它的内容。

有没有办法在知道指向结构的指针的名称的情况下迭代结构的元素?如果是这样,是否可以递归检查嵌套结构的内容?

我正在使用 LLVM 9.0,并且正在使用 -O0 -d 编译代码以启用调试信息。

非常感谢您的帮助。

0 投票
1 回答
97 浏览

swift - KLEE:需要链接具有不同对齐方式的附加变量

我正在尝试将 KLEE 与一些 Swift 代码一起使用。为了简单起见,我创建了一个基本的 hello world 文件。

我能够成功编译 Swift 文件(使用klee_make_symbolic),但是当我尝试实际运行 KLEE 时遇到了问题。以下是我遵循的步骤:

  1. 创建main.swift文件内容如下
  2. 将其编译为位码 -swiftc -import-objc-header /home/klee/klee_src/include/klee/klee.h main.swift -emit-bc -target x86_64-pc-linux-gnu
  3. klee main.bc

当我从第 3 步运行命令时,我收到许多警告 + 错误:

我还尝试使用--libc-uclibc(full command: klee --libc=uclibc main.bc) 运行 KLEE,它解决了警告但给我一个不同的错误:


main.swift

0 投票
1 回答
47 浏览

cmake - 构建 s2e 时对 klee 的未定义引用

我正在尝试开始一个新项目并在新目录中构建 s2e。但是在 100% 左右,它给了我一个未定义的参考错误。相关部分(imo)是这样的:

我的目录结构是这样的:

我按照这里的步骤操作:http: //s2e.systems/docs/s2e-env.html我按照所有步骤s2e build操作,直到出现这个问题。

作为参考,我得到的(截断的)输出s2e build &> log