/CTplus

Primary LanguageJava

Using the tool

Please, refer to the releases section of GitHub and download the lastest version.

If you play to contribute to the project you will need:

  1. The Scala IDE 2.12.3 (http://scala-ide.org/download/current.html)
  2. Import the project as a Maven project

To generate the output jar, do:

  1. mvn clean package

JAR usage:

Usage: <main class> [-ahpr] [--analysis-output-file=<analysisOutputFile>]
                    [--energy-profile-file=<energyProfileFile>]
                    [--points-to-analysis-file=<pointsToAnalysisFile>]
                    [--recommendation-output-file=<recommendationOutputFile>]
                    [-e=<exclusions>] [-t=<target>]
                    [--packages=<packages>...]...
      --analysis-output-file=<analysisOutputFile>
                             The name of the analysis output file. Defaults to
                               analysis.csv
      --energy-profile-file=<energyProfileFile>
                             The energy profile file to be used on the recommender
      --packages=<packages>...
                             Space separated packages to include in the scope of the
                               analysis
      --points-to-analysis-file=<pointsToAnalysisFile>
                             The points-to-analysis output file
      --recommendation-output-file=<recommendationOutputFile>
                             The name of the recommendation output file. Defaults to
                               recommendations.csv
  -a, --analyze              Run the analysis
  -e, --exclusions-file=<exclusions>
                             The path to the scope exclusion file
  -h, --help                 Displays this help
  -p, --points-to-analysis   If set, runs the points-to-analysis on the target
  -r, --recommend            Run the recommendation
  -t, --target=<target>      The target JAR or APK, this is required if the analyze
                               flag is set

Example usages:

Simple analysis of a jar

# Analyzing my.jar scoping the com.my.package
java -jar CECOtool-analyzer.jar --analyze --target "/path/to/my.jar" --packages com.my.package com.my.package.two --analysis-output-file "my-jar-analysis.csv"

Recommending for the my-jar-analysis.csv

# Recommending for the my-jar-analysis.csv using a energy-profile.csv, generated by the CECOTool profiler
java -jar CECOtool-analyzer.jar --recommend --analysis-output-file "my-jar-analysis.csv" --energy-profile-file "path/to/my/energy-profile.csv"

Error reporting

If you encounter any errors while using this tool, please open an issue and append the logs/app.log file. In case you find any analysis inconsistency, also open an issue describing the problem and your thought of a correct behavior.