Added WALA config and Troubleshooting sections.

This commit is contained in:
Michael Herzberg 2016-09-11 12:51:22 +01:00
parent 78a12e0e5b
commit 060d25f225
1 changed files with 25 additions and 0 deletions

View File

@ -39,6 +39,14 @@ wget https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.0.0.jar
mvn install:install-file -Dfile=apktool_2.0.0.jar -DgroupId=apktool -DartifactId=apktool -Dpackaging=jar -Dversion=2.0.0
```
### WALA configuration
WALA needs to know the location of the Java 6 JDK. This is configured in the ``wala.properties`` file, e.g.
```
cd DASCA/
echo "java_runtime_dir = /usr/lib/jvm/java-6-jdk" >> externals/WALA/com.ibm.wala.core/dat/wala.properties
```
Don't forget to adjust the path to the Java 6 JDK accordingly.
### How to Compile
First resolve the dependencies using maven:
```
@ -53,6 +61,23 @@ workspace using `File -> Import -> Maven -> Existing Maven Projects`:
While some Wala projects may contain compilation errors, all DASCA
projects (i.e., `eu.aniketos.dasca.*`) should compile without errors.
## Troubleshooting
### Unavailable external JARs
The build process for WALA uses Ant scripts to download JAR libraries from third-party web sites, which might
become unavailable. This leads to Maven throwing errors when compiling WALA due to unavailable JAR files, e.g.
```
[ERROR] DASCA/externals/WALA/com.ibm.wala.cast.js.test.data/build.xml:45: Can't get http://ajaxslt.googlecode.com/files/ajaxslt-0-7.tar.gz to DASCA/externals/WALA/com.ibm.wala.cast.js.test.data/temp.folder/ajaxslt-0-7.tar.gz
```
If the affected sub-project is not needed for the DASCA projects (such as the com.ibm.wala.cast.js.test.data
project), the error might be resolved by skipping the compilation of a few WALA projects, e.g.
```
mvn -P wala -pl '!:com.ibm.wala.cast.js.test.data,!:com.ibm.wala.cast.js.html.nu_validator,!:com.ibm.wala.cast.js.test,!:com.ibm.wala.cast.js.rhino.test' install -DskipTests=true -q
```
### WALA throws errors such as ``java.lang.Error: unexpected dynamic invoke type 8``
Make sure the ``wala.properties`` file is correctly configured with the path to the Java 6 JDK. By default,
WALA uses the JDK that is runs with also for the analysis, which is likely to be Java 8.
## Team
Main contact: [Achim D. Brucker](http://www.brucker.ch/)