about summary refs log tree commit diff homepage
path: root/tools/klee-replay
AgeCommit message (Collapse)Author
2023-03-26fix unused variables warningDaniel Schemmel
2023-03-23Remove model_version from the POSIX runtime, as we have never used it.Cristian Cadar
2023-03-17Fix building of runtime library and klee-replayMartin Nowack
Former build system provided additional flags for building bitcode while they were not required, e.g. under BSD or MacOS.
2023-03-17[MemSan] Mark memory objects modified by syscalls as initialisedMartin Nowack
2023-03-17[cmake] Use LLVM's CMake functionality onlyMartin Nowack
LLVM became more complex, use LLVM's CMake functionality directly instead of replicating this behaviour in KLEE's build system. Use the correct build flags provided by LLVM itself. This is influenced by the way LLVM is built in the first place. Remove older CMake support (< 3.0).
2022-12-09Fixed some leaks in klee-replayCristian Cadar
2021-04-18klee-replay: Fix -Wformat-truncation warningLukas Zaoral
Increase the size of the buffer to PATH_MAX in create_link as that is the maximal possible length of fname and check whether output truncation occurred. Fixes: tools/klee-replay/file-creator.c: In function 'create_file': tools/klee-replay/file-creator.c:55:31: warning: '%s' directive output may be truncated writing up to 4095 bytes into a region of size 64 [-Wformat-truncation=] 55 | snprintf(buf, sizeof(buf), "%s.lnk", fname); | ^~ ...... 344 | target = tmpname; | ~~~~~~~ In file included from /usr/include/stdio.h:866, from tools/klee-replay/file-creator.c:16: /usr/include/bits/stdio2.h:70:10: note: '__snprintf_chk' output between 5 and 4100 bytes into a destination of size 64 70 | return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 71 | __bos (__s), __fmt, __va_arg_pack ()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-11-11Do not redefine fgetc_unlocked and fputc_unlocked unconditionally.Gleb Popov
2020-04-30Removed the Internal directory from include/kleeCristian Cadar
2019-11-07Allow main with 3 argumentsCristian Cadar
2019-10-29[klee-replay] Fix relative executable pathsTimotej Kapus
2019-08-15replace fprintf with fputs/fputcFrank Busse
2019-08-14Delete functions delete_file() and delete_dir() which are not needed now ↵Cristian Cadar
that klee-replay creates a temporary directory for replay
2019-08-14Replace sprintf with snprintf throughout codebaseCristian Cadar
2019-08-14Create all files in the replay directory and chdir to this directory before ↵Cristian Cadar
executing the program.
2019-08-14Added an option to klee-replay to keep replay directoryCristian Cadar
2019-08-14Cleaned up messages emitted by klee-replay, and prefixed them all with ↵Cristian Cadar
"KLEE-REPLAY:" to distinguish them from those printed by the replayed program
2019-08-14Changed klee-replay to create a temporary directory with a random name in ↵Cristian Cadar
/tmp instead of using a fixed name in the current directory.
2019-06-04Fixed identifiers used in ifdefs to (1) not use reserved names and (2) use a ↵Cristian Cadar
consistent naming convention
2019-04-02Fix klee-replay tool on FreeBSD.Gleb Popov
2018-10-08cleanup headers, whitespaces, and typesFrank Busse
2018-10-08add support for klee-replay on OSXFrank Busse
* also adds klee-replay as dependency for systemtests
2018-09-10POSIX: Add invocation of klee_init_env into wrapper before calling mainMartin Nowack
To enable the POSIX support, the former implementation instrumented the main function and inserted a call to `klee_init_env` at the beginning. This has multiple disadvantages: * debugging information was not correctly propagated leaving the call to `klee_init_env` without debug information * the main function always required `int arg, char**` as part of the function definition of `main` Based on the new linking infrastructure, we can now add an additional wrapper `__klee_posix_wraper(int, char**)` that gets always called when POSIX support is enabled. It executes `klee_init_env` and after that calls the `main` function. Enabling POSIX support only requires the renaming of the user provided `main` into `__klee_posix_wrapped_main` in addition to linking.
2017-10-04Remove Autoconf/Makefile build system and adjust the TravisCIDan Liew
configuration, TravisCI scripts and Dockerfile build appropriately. There are a bunch of clean ups this enables but this commit doesn't attempt them. We can do that in future commits.
2016-11-07Implement a CMake based build system for KLEE.Dan Liew
This is based off intial work by @jirislaby in #481. However it has been substantially modified. Notably it includes a separate build sytem to build the runtimes which is inspired by the old build system. The reason for doing this is because CMake is not well suited for building the runtime: * CMake is configured to use the host compiler, not the bitcode compiler. These are not the same thing. * Building the runtime using `add_custom_command()` is flawed because we can't automatically get transitive depencies (i.e. header file dependencies) unless the CMake generator is makefiles. (See `IMPLICIT_DEPENDS` of `add_custom_command()` in CMake). So for now we have a very simple build system for building the runtimes. In the future we can replace this with something more sophisticated if we need it. Support for all features of the old build system are implemented apart from recording the git revision and showing it in the output of `klee --help`. Another notable change is the CMake build system works much better with LLVM installs which don't ship with testing tools. The build system will download the sources for `FileCheck` and `not` tools if the corresponding binaries aren't available and will build them. However `lit` (availabe via `pip install lit`) and GTest must already be installed. Apart from better support for testing a significant advantage of the new CMake build system compared to the existing "Autoconf/Makefile" build system is that it is **not** coupled to LLVM's build system (unlike the existing build system). This means that LLVM's autoconf/Makefiles don't need to be installed somewhere on the system. Currently all tests pass. Support has been implemented in TravisCI and the Dockerfile for building with CMake. The existing "Autoconf/Makefile" build system has been left intact and so both build systems can coexist for a short while. We should remove the old build system as soon as possible though because it creates an unnecessary maintance burden.
2015-06-03Added an option --readable-posix-inputs which is used to turn on/off the CEX ↵Cristian Cadar
preferences added in the POSIX model. Removed option --prefer-cex which controlled all CEX preferences.
2014-09-12Do not require <sys/capability.h>, which is Linux specific.Daniel Dunbar
2013-12-08Add chroot jail support in klee-replay.Lei Zhang
2010-10-01Fix a build warning, patch by nobled!Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/klee/trunk@115315 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-28Applied Stefan Bucur's patch fromCristian Cadar
http://llvm.org/bugs/show_bug.cgi?id=6690. The patch adds specialized versions of klee_get_value for different types, fixing the previous klee_get_value function that sometimes truncated 64bit parameters to 32bit. git-svn-id: https://llvm.org/svn/llvm-project/klee/trunk@107006 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-28Fixed bug reported at:Cristian Cadar
http://llvm.org/bugs/show_bug.cgi?id=7515 Bug was caused by the different behavior of klee_range during KLEE execution vs. replay mode, for the case when start==end: during KLEE execution, klee_range returns start, while during replay it called klee_make_symbolic. git-svn-id: https://llvm.org/svn/llvm-project/klee/trunk@107005 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-05klee-replay: Support running multiple tests in one invocation, and tweak outputDaniel Dunbar
slightly. git-svn-id: https://llvm.org/svn/llvm-project/klee/trunk@78166 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-05Add klee-replay tool.Daniel Dunbar
- Not yet enabled as part of the build, and not recently tested. - This has also been trimmed down significantly from the version which is able to fail system calls, that functionality was too experimental to be generally useful. git-svn-id: https://llvm.org/svn/llvm-project/klee/trunk@78148 91177308-0d34-0410-b5e6-96231b3b80d8