If this is your product, you can request to edit it here.
Version Reviewing: fantastic tool
"save the time "
Summary:
Avalanche is a very cool tool for the business solution.
Version Reviewing: 3.5
"suprb tool"
Summary:
high performance
"awesome tool"
Summary:
high performance
Version Reviewing: 0.4
"Transparency is a plus!"
Summary:
Avalanche is an open source tool that they present as detecting “inputs of death,” or bugs that are fatal to your Linux-based programs. They released v.0.4 about six months ago, using a recent release of Valgrind, which is also free. The website advertises some interesting bugs that it has caught, such as infinite loops and segmentation faults, either of which could really ruin your day if the application was deployed unchecked. Avalanche is generally useful, but it is not without its faults. Luckily, Avalanche is pretty good about being transparent, communicating their own faults and their potential fixes. It used to crash when run from PATH, which was a huge headache. A recent patch updated that, and I haven’t seen that problem for several months. It doesn’t catch everything, and they don’t profess to. It isn’t a static analysis tool, and dynamic checking can still take over a week to complete.
"No other tool offers the reliability & sophistication"
Summary:
We love Avalanche at my company because we feel that it is among the best dynamic program analysis tools developed in ISP RAS that performs symbolic execution in order to generate input data that causes an analyzed program to crash. Avalanche uses the dynamic binary instrumentation framework provided by Valgrind to collect a set of constraints which are then solved by STP constraint solver – and we believe that it functions very well at this task. No other tool offers us the reliability, sophistication, ease of use, and speed that Avalanche provides. When we were deciding which tool to use for these tasks the following features were our main targets: 1. The analysis should be as complete as possible. 2. The bugs should be detected effectively and without any false positives. 3. The input data which reproduces detected bugs should be generated. Each of Avalanche’s four main components functions well: the two Valgrind plugins, Tracegrind and Covgrind, the constraint checking solver STP and the driver module. Tracegrind dynamically tracks the flow of tainted data in the program and collects conditions for traversing previously not traversed parts of the program and for the execution of dangerous operations – and it does so with speed and reliability. The driver passes these conditions to STP to check their satisfiability. If some condition is satisfiable, then STP determines the values of all the variables involved (including the values of the bytes of the input file) that turn those conditions true. The process works like magic. It should be noted that, in our work, Avalanche is restricted to analysis of only the programs that read input data from a single input file. Any data received from other sources (other files, network sockets, environment variables) is ignored. We assume that the program under analysis deals with a single input file. In other cases, this tool may not function with the level of efficiency as it does in our specific setting.
|
What does this code do?
public class Demo { public void method1() { synchronized (String.class) { System.out.println("on String.class object"); synchronized (Integer.class) { System.out.println("on Integer.class object"); } } }
Programming Language: Java