about summary refs log tree commit diff homepage
AgeCommit message (Collapse)Author
2016-09-26Modified logging information to steer the usage of klee_message, ↵Andrea Mattavelli
klee_warning, and klee_error
2016-09-20Merge pull request #443 from MartinNowack/feat_assembler_raisingCristian Cadar
Extended support for assembler raising
2016-09-16Avoid internalization of non-standard entry point (i.e. not the main ↵Andrea Mattavelli
function) (#455)
2016-09-15Merge pull request #372 from delcypher/stp_z3_crosscheckDan Liew
Allow cross checking of solvers
2016-09-15Rename `-debug-cross-check-core-solver` option toDan Liew
`-debug-crosscheck-core-solver` as requested by Cristian
2016-09-15Correct out of date comments for some of the klee error handlingDan Liew
functions.
2016-09-15Add ``-debug-cross-check-core-solver`` option to allow cross-checkingDan Liew
with another solver. For example the core solver can be STP and the cross checking solver can be Z3. Unfortunately a few fragile tests don't pass when actually using this option.
2016-09-15Clang-format ``ConstructSolverChain.cpp``Dan Liew
2016-09-15Check the existence of the entry point during the initialization of the ↵Andrea Mattavelli
POSIX runtime. If the check fails, exit with an error. (#457)
2016-09-02Merge pull request #463 from delcypher/fix_gtest_buildDan Liew
Try to unbreak the TravisCI and Docker builds.
2016-09-01Try to unbreak the TravisCI and Docker builds.Dan Liew
GTest has moved from googlecode to GitHub so update URL and directory name used in source archive as appropriate.
2016-08-19Merge pull request #453 from andreamattavelli/fix_save_writes_docCristian Cadar
Document -save-all-writes to klee_init_env help message
2016-08-19Added -save-all-writes to klee_init_env help messageAndrea Mattavelli
2016-08-19Merge pull request #462 from giacomoguerci/masterCristian Cadar
[Klee Web] Link libkleeRuntest library to fix coverage report
2016-08-16[Klee Web] Link libkleeRuntest library to fix coverage reportGiacomo Guerci
2016-08-10Extended support for assembler raisingMartin Nowack
Improved support for assembler handling. Providing additional triple information to raise assembler for supported architectures only. Implemented support for raising full assembly memory fence. Added initial support for memory fences in Executor.
2016-08-10Merge pull request #451 from andreamattavelli/fix_ub_ptreeMartinNowack
Fix to PTree pointer use-after-delete
2016-08-09Fix to PTree pointer use-after-delete undefined behaviorAndrea Mattavelli
2016-08-08Merge pull request #447 from hutoTUM/fix-klee_get_obj_sizeMartinNowack
Fix for klee_get_obj_size() crashing on 64-bit, resolves #446
2016-08-08Fix for klee_get_obj_size() crashing on 64-bit, resolves #446hutoTUM
2016-08-08Merge pull request #450 from andreamattavelli/fix_to_strerrorCristian Cadar
Fix to #449 by using sys::StrError(errno) to print error messages.
2016-08-08Use LLVM-based functions to print errnoAndrea Mattavelli
2016-08-06Merge pull request #448 from andreamattavelli/fix_query_compressionMartinNowack
Fix to #445
2016-08-06Fix to #445Andrea Mattavelli
2016-08-04Merge pull request #441 from jirislaby/exit-on-error-typeCristian Cadar
add --exit-on-error-type option
2016-08-04klee: add exit-on-error-type parameterJiri Slaby
It allows stopping the execution on some conditions like assertions. The use is like: klee -exit-on-error-type=Assert -exit-on-error-type=External file.llvm This is especially useful in the SV-COMP. A test to cover the new parameter was added too. Signed-off-by: Jiri Slaby <jslaby@suse.cz>
2016-08-03Merge pull request #439 from jirislaby/fprintfCristian Cadar
fprintf: convert to klee_warning
2016-08-03fprintf: convert to klee_warningJiri Slaby
In some Solver sources, some error outputs were missing \n. Instead of adding a new line to all of them, convert the fprintf's to klee_warning which adds \n automatically. ErrorHandling.h had to be included in MetaSMTSolver.cpp to have klee_warning declared there. Signed-off-by: Jiri Slaby <jslaby@suse.cz>
2016-08-02Merge pull request #438 from jirislaby/memuseMartinNowack
MemoryUsage: handle ill-designed mallinfo
2016-08-02MemoryUsage: fix GetTotalMallocUsageJiri Slaby
The mallinfo() interface is ill-designed. It returns 'int' as occupied memory. This means at most 2G. This causes troubles when capping the memory to 3G by -max-memory=3000 for example. We cannot fix the interface, but we can at least extend the space to 4G. So cast those 'int's to 'unsigned int's to avoid sign extension. Then do the addition on 'size_t' to count on 64bit values (on 64 bit). Apart from that, the original 'int' + 'int' led to overflow which is undefined on 'signed int's in C. Also, when klee is run under valgrind, generic.current_allocated_bytes from gperftools does not touch the passed pointer and in that case, we return garbage from GetTotalMallocUsage. So initialize 'value' to 0 to avoid the problem. And since GetNumericProperty accepts 'size_t', let's define 'value' as such. It was 'uint64_t' previously and they differ on 32 bit. Signed-off-by: Jiri Slaby <jslaby@suse.cz>
2016-07-31Merge pull request #422 from ccadar/div-zero-testCristian Cadar
Added test case exposing division by zero failure reported by @kren1 and made division total in STP to fix it.
2016-07-29Explicitely making division total in STP.Cristian Cadar
2016-07-22Merge pull request #425 from jirislaby/globalsCristian Cadar
Executor: do not crash on non-sized globals
2016-07-11Executor: do not crash on non-sized globalsJiri Slaby
Sometimes, globals are not sized and ->getTypeStoreSize on such type crashes inside the LLVM. Check whether type is sized prior to calling the function above. A minimalistic example of Y being unsized with no effect on the actual code is put to tests. [v2] Use klee_warning for printing. And use %.*s formatting string given StringRef.data() need not be null terminated. Signed-off-by: Jiri Slaby <jslaby@suse.cz>
2016-07-10Merge pull request #428 from MartinNowack/fix_determ_addressMartinNowack
Fix parsing of the address for the deterministic memory area.
2016-07-10Fix parsing of deterministic address.Martin Nowack
Allows to provide 0 as an address to allocate deterministic memory area at any free space.
2016-07-09Merge pull request #377 from MartinNowack/fix_div_constantMartinNowack
Fix generation of STP shift operations with variable shift
2016-07-09Fix variable shifting behavior with different sizesMartin Nowack
Generated STP equality expressions have to be the same type. If a shift with different types as operands was used, therefore equality expressions of different width were generated. Beside avoiding the different sizes, this patch restores the original behavior to extract just the part involved in shifting and therefore should generate smaller expressions. Enable sdiv test case
2016-07-09Merge pull request #363 from MartinNowack/feat_determ_allocatorMartinNowack
Add support for deterministic allocation
2016-07-08Clang-formated MemoryManagerMartin Nowack
2016-07-08Add deterministic allocation of memoryMartin Nowack
Deterministic allocation provides an internal allocator which mmaps memory to a fixed static address. This way, same allocation is assured across different KLEE runs for the same application assuming a deterministic searcher. In addition, this patch provides following options: -allocate-determ: switch on/off deterministic allocation -allocate-determ-size: adjust preallocated memory -null-on-zero-malloc: returns null pointer in case a malloc of size 0 was requested. According to standard, also a non-null pointer can be returned (which happens with the default glibc malloc implementation) -allocation-space: space between allocations can be adjusted. KLEE is not able to detect out-of-bound accesses which are inside another but wrong object. Due the implementation of typical allocators adjacent mallocs have space in between for management purposes. This spaces helped KLEE to detect off-by-1/2 accesses. For higher numbers, the allocation space has to be increased. -allocate-determ-start-address: adjust deterministic start address. The addres has to be page aligned. KLEE fails if it cannot acquire this address
2016-07-08Handle aligned varargs allignment correctlyMartin Nowack
For vararg handling, arguments of size bigger than 64 bit need to be handled 128bit aligned according to AMD calling conventions AMD64-ABI 3.5.7p5. To handle that case correctly, we do: 1) make sure that every argument is aligned correctly in an allocation for function arguments 2) the allocation itself is aligned correctly
2016-07-08Merge pull request #362 from MartinNowack/feat_determ_state_selectionMartinNowack
Deterministic state addition and removing
2016-07-08Generate forked states for switch instructions deterministicallyMartin Nowack
This patch generates the states based on the order of switch-cases. Before, switch-constraints were randomly assigned to forked states. As generated code might be different between LLVM versions, we use the case values, order them, and iterate in that order over the cases. This way we can also support deterministic execution of older LLVM versions.
2016-07-08Use vector instead of set to add/remove statesMartin Nowack
Deterministic adding/removing of states.
2016-07-08IterativeDeepeningTimeSearcher: Fix using wrong iteratorMartin Nowack
2016-07-08Refactoring: Extract method to dump remaining statesMartin Nowack
2016-07-08Merge pull request #391 from MartinNowack/feat_zipstream_compressMartinNowack
Support gzip-based compression of raw_outstreams
2016-07-08Merge pull request #410 from MartinNowack/feat_log_after_stepsMartinNowack
Add options to dump istats and stats statistics every n instructions.
2016-07-08Support gzip-based compression of raw_outstreamsMartin Nowack
Provide initial zlib-based compression support for raw_outstreams. Replacing llvm::raw_fd_outstreams with compressed_fd_outstreams automatically compresses data in gzip format before writing to file. Options added: * --compress-log to compress all query log files (e.g. *.pc, *.smt2) on the fly. Every query log file gets extended with .gz. * --debug-compress-instructions to compress logfile for instruction stream on the fly.