Scalable error detection using boolean satisfiability
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
EXE: automatically generating inputs of death
Proceedings of the 13th ACM conference on Computer and communications security
Valgrind: a framework for heavyweight dynamic binary instrumentation
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Flayer: exposing application internals
WOOT '07 Proceedings of the first USENIX workshop on Offensive Technologies
A decision procedure for bit-vectors and arrays
CAV'07 Proceedings of the 19th international conference on Computer aided verification
Static secure page allocation for light-weight dynamic information flow tracking
Proceedings of the 2012 international conference on Compilers, architectures and synthesis for embedded systems
Hi-index | 0.00 |
The article presents Avalanche--a dynamic analysis defect detection tool. Avalanche uses dynamic instrumentation provided by Valgrind [1] to collect and analyze the trace of program execution. The result of such an analysis is a set of input data which either shows an error in the program or allows next iteration to cover fragments of the program that were not yet executed and, therefore, checked. Thus, starting from a single test case, Avalanche implements iterative dynamic analysis, repeatedly executing the program with various automatically generated test data, while each execution increases the coverage of code. The article describes Avalanche internals, and discusses the results of analysis of several open source projects with Avalanche, which resulted in detection of over 15 bugs. Many of the detected bugs are confirmed and fixed by developers.