Commit 6c559f5c authored by Lukáš Marek's avatar Lukáš Marek

Merged changes from stable branch disl_1.0.x -r 588:598

parent 54df6cf5
Exception in thread "main" java.lang.VerifyError: (class: ..., method: ... signature: ... Expecting to find object/array on stack Exception in thread "main" java.lang.VerifyError: (class: ..., method: ... signature: ... Expecting to find object/array on stack
- error occurs if an instrumentation uses uninitialized object - CAUSE: The instrumentation attempts to access an uninitialized object.
- how to fix: disable java verifier or fix the instrumentation - HOW TO FIX: Fix the instrumentation or disable the Java verifier (-noverify
commmand line option).
Java process ends with SEGFAULT
- CAUSE: The instrumentation instruments one of the java.lang.* classes and
disturbs the java initialization
- HOW TO FIX: Fix the instrumentation or exclude the class causing the problem
in the exclusion list (-Ddisl.exclusionList=exclusion.lst command line
option of DiSL server).
Build failure: java.lang.UnsupportedClassVersionError: ch/usi/dag/disl/utilinstr/tlvinserter/ExtendThread : Unsupported major.minor version 51.0
- CAUSE: A version 1.7.x JRE is used; this version is not yet supported
- HOW TO FIX: Use a version 1.6.x JRE instead.
java process ends with SEGFAULT
- error occurs if an instrumentation instruments one of the java.lang.* classes
and disturbs the java initialization
- how to fix: change the instrumentation or exclude the class causing the
problem in the exclusion list
...@@ -23,7 +23,12 @@ The last command starts the application together with DiSL. The output of the ...@@ -23,7 +23,12 @@ The last command starts the application together with DiSL. The output of the
application and the applied instrumentation should be visible on command line. application and the applied instrumentation should be visible on command line.
NOTE: If you want to use "runApp.sh" to run your application, don't forget to set NOTE: If you want to use "runApp.sh" to run your application, don't forget to set
"DISL_LIB_P" variable correctly. Also, you can modify DiSL setting in "runServer.sh". "DISL_LIB_P" variable correctly. Also, you can modify DiSL setting in
"runServer.sh".
NOTE: If you want to include use some library in your instrumentation you shlould
insert it directly to the instrumentation jar using jarjar.
http://code.google.com/p/jarjar/
DIRECTORIES (FILES) DIRECTORIES (FILES)
=================== ===================
......
...@@ -21,7 +21,7 @@ export SERVER_FILE ...@@ -21,7 +21,7 @@ export SERVER_FILE
if [ -e ${SERVER_FILE} ] if [ -e ${SERVER_FILE} ]
then then
kill -KILL `cat ${SERVER_FILE}` kill -KILL `cat ${SERVER_FILE}`
rm .server.pid rm ${SERVER_FILE}
fi fi
export DISL_LIB_P export DISL_LIB_P
...@@ -40,4 +40,4 @@ sleep 1 ...@@ -40,4 +40,4 @@ sleep 1
# kill server # kill server
kill -KILL `cat ${SERVER_FILE}` 2> /dev/null kill -KILL `cat ${SERVER_FILE}` 2> /dev/null
rm .server.pid rm ${SERVER_FILE}
...@@ -541,7 +541,7 @@ public class DiSL { ...@@ -541,7 +541,7 @@ public class DiSL {
// Use compute frames for newer classes // Use compute frames for newer classes
// It is required for >= 1.7 // It is required for >= 1.7
final int COMPUTEFRAMES_VERSION = Opcodes.V1_6; final int COMPUTEFRAMES_VERSION = Opcodes.V1_7;
ClassWriter cw = null; ClassWriter cw = null;
if(classMajorVersion >= COMPUTEFRAMES_VERSION) { if(classMajorVersion >= COMPUTEFRAMES_VERSION) {
......
...@@ -20,7 +20,7 @@ import ch.usi.dag.disl.util.AsmHelper; ...@@ -20,7 +20,7 @@ import ch.usi.dag.disl.util.AsmHelper;
/** /**
* AbstractMarker eases the effort to implement new marker by providing mark * AbstractMarker eases the effort to implement new marker by providing mark
* method returning MarkedRegion class instead of Shadow. The MarkedRegion * method returning MarkedRegion class instead of Shadow. The MarkedRegion
* class itself supports automatic computation of weaving region based * class itself supports automatic computation of weaving region based on
* simplified region specification. * simplified region specification.
*/ */
public abstract class AbstractMarker implements Marker { public abstract class AbstractMarker implements Marker {
......
...@@ -23,9 +23,9 @@ import ch.usi.dag.disl.util.Constants; ...@@ -23,9 +23,9 @@ import ch.usi.dag.disl.util.Constants;
* packagename is the name of the package where the class containing the method * packagename is the name of the package where the class containing the method
* resides. The separator for inner packages is ".". Part of the package can be * resides. The separator for inner packages is ".". Part of the package can be
* substituted with "*" ("*" matches also "." in package name). * substituted with "*" ("*" matches also "." in package name).
* If the packagename is missing and the class is matched in all packages. * If the packagename is missing, the class is matched in all packages.
* The default package can be matched with "[default]". * The default package can be matched with "[default]".
* If the packagename is specified class name has to be specified also. * If the packagename is specified, class name has to be specified also.
* *
* classname is the name of the class where the matched method resides. Part of * classname is the name of the class where the matched method resides. Part of
* the classname can be substituted with "*". * the classname can be substituted with "*".
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment