Coder Social home page Coder Social logo

ppati000 / visualdfa Goto Github PK

View Code? Open in Web Editor NEW
12.0 7.0 4.0 28.37 MB

VisualDFA is a sophisticated educational tool for interactively visualizing data-flow analyses using Java/Jimple.

License: MIT License

TeX 22.24% Java 77.76%
data-flow-analysis education educational computer-science compilers compiler compiler-optimizations control-flow-graph

visualdfa's People

Contributors

anikanietzer avatar michaelschieber avatar mschieber avatar nilsjessen avatar ppati000 avatar sebastianrauch avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

visualdfa's Issues

Analysen

Constant Bits und Reaching-Definitions werfen Exceptions auf dem Beispiel, partielle Ergebnisse gibt es nicht. (den Konstruktor der Klasse kriegen sie analysiert, da passiert aber auch literally nichts.)
Taint-Analyse wirft sogar auf dem Konstruktor der Defaultklasse eine Exception.

Projekt compiliert noch immer nicht out of the box

Wenn ich das richtig sehe braucht man zuerst folgendes, damit maven die lokalen jars findet:

mvn install:install-file -Dfile=src/main/resources/libs/jgraphx-custom.jar -DgroupId=jgraphx -DartifactId=jgraphx-custom -Dversion=1.0 -Dpackaging=jar
mvn install:install-file -Dfile=src/main/resources/libs/soot-trunk.jar -DgroupId=soot -DartifactId=soot-trunk -Dversion=3.0.0 -Dpackaging=jar

Damit beschwert sich maven zwar immer noch darüber, dass es keine pom für die beiden Dependencies findet, aber zumindest ist das nur ne Warnung.

Des Weiteren versuche ich nun schon geschlagene zwei Stunden lang, die Reflections-Library glücklich zu machen, und kriege immer noch Fehler über eine fehlende iterator-Methode tief in Guava.
Ich weiß nicht welche arkanen Beschwörungen mir fehlen, aber wenn ich mehr machen muss als git clone...; cd ...; mvn install; java -jar target/..., muss da eine README her!

Taint-Analyse: Variable verliert Violation-Flag nach Inkrement

Folgender Testcode:

public class Example {
  public void helloWorld(boolean print, int xp) {
    int x = xp;
    __sensitive(x);
    __clean(x);
    x = x + 1;
  }
}

Im Pre-State der Zeile x = x + 1 ist (korrekt) x = clean (v). Im Post-State ist x = clean, hat also sein Violation-Flag verloren. Sollte das Flag nicht bis zum Programmende erhalten bleiben um zu zeigen, dass irgendwann einmal etwas Unsicheres mit dieser Variable getan wurde?

Join ist falsch in Reachingdefinitions

Wenn mehrere Definitionen für eine Variable über Kontrollfluss zusammenfließen, wirft der Join die Variable einfach aus dem State.
Beispiel:

  public void A(boolean print, int x) {
    if (print) {
      x = x + 1;
    }
    System.out.println(x);
  }

Der In-State vom println-Block sollte sowohl die @parameter1-Definition enthalten als auch die x=x+1-Definition, stattdessen fehlt x einfach darin

Delay=0 überspringt Breakpoints

Dies entspricht nicht dem Pflichtenheft, siehe K3, F20, T9.
Das aktuelle Verhalten ist kein kritischer Bug, aber irgendwie auch nicht das was ich erwarten würde wenn ich das Programm benutze

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.