我正在研究基于klee工具的符号执行。我通过docker管理klee。我创建了一个目录并将c程序文件保存在该目录中。但在从klee退出后,如果我再次尝试重新进入klee,则表明没有这样的目录,并且我保存的程序丢失了。请帮我解决这个问题。希望你能帮忙。提前感谢!!
我已经发现了问题。问题是我在保存文件后删除了容器。我以前使用过以下命令。
$ docker run --rm -ti --ulimit='stack=-1:-1' klee/klee
它由rm
组成,用于移除容器。这就是为什么在删除容器时,目录和保存的文件都被删除了。为了解决这个问题,我们必须创建一个容器并将您的文件保存在该容器中。不要取出容器。以下是我所遵循的步骤:
- 创建一个docker容器。给出要创建的容器的名称。我的容器的名称是
my_first_klee_container
$ docker run -ti --name=my_first_klee_container --ulimit='stack=-1:-1' klee/klee
现在您可以创建一个目录并键入c程序并保存它。
使用llvm编译器编译并使用klee运行它。
现在通过键入exit命令退出klee。
尝试通过以下命令重新启动您的容器:
$ docker start -ai my_first_klee_container
- 键入命令
ls
。现在,您可以查看和访问您创建的文件
有关详细信息,请访问https://klee.github.io/docker/