|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectchord.project.analyses.JavaAnalysis
chord.project.analyses.BasicDynamicAnalysis
chord.project.analyses.DynamicAnalysis
public class DynamicAnalysis
Generic implementation of a dynamic analysis that allows choosing from a limited but commonly-used set of events, such as method entry/exit, field reads/writes, lock acquires/releases, etc.
| Field Summary | |
|---|---|
protected InstrScheme |
scheme
The instrumentation scheme for this dynamic analysis. |
| Fields inherited from class chord.project.analyses.BasicDynamicAnalysis |
|---|
DEBUG, eventHandlerArgs, instrumentorArgs, runIDs |
| Fields inherited from class chord.project.analyses.JavaAnalysis |
|---|
consumes, controls, name, produces |
| Constructor Summary | |
|---|---|
DynamicAnalysis()
|
|
| Method Summary | |
|---|---|
boolean |
canReuseTraces()
|
java.util.Map<java.lang.String,java.lang.String> |
getEventHandlerArgs()
Arguments to be passed to the event handler. |
java.lang.Class |
getEventHandlerClass()
The class of the event handler to be used. |
InstrScheme |
getInstrScheme()
|
java.lang.String |
getInstrSchemeFileName()
|
java.util.Map<java.lang.String,java.lang.String> |
getInstrumentorArgs()
Arguments to be passed to the instrumentor. |
java.lang.Class |
getInstrumentorClass()
The class of the instrumentor to be used. |
java.util.List<java.lang.Runnable> |
getTraceTransformers()
Subclasses can override this method. |
void |
handleEvent(ByteBufferedFile buffer)
|
void |
processAcquireLock(int l,
int t,
int o)
|
void |
processAftMethodCall(int i,
int t,
int o)
|
void |
processAftNew(int h,
int t,
int o)
|
void |
processAloadPrimitive(int e,
int t,
int b,
int i)
|
void |
processAloadReference(int e,
int t,
int b,
int i,
int o)
|
void |
processAstorePrimitive(int e,
int t,
int b,
int i)
|
void |
processAstoreReference(int e,
int t,
int b,
int i,
int o)
|
void |
processBasicBlock(int b,
int t)
|
void |
processBefMethodCall(int i,
int t,
int o)
|
void |
processBefNew(int h,
int t,
int o)
|
void |
processEnterLoop(int w,
int t)
|
void |
processEnterMainMethod(int t)
|
void |
processEnterMethod(int m,
int t)
|
void |
processExplicitThrow(int p,
int t,
int o)
|
void |
processGetfieldPrimitive(int e,
int t,
int b,
int f)
|
void |
processGetfieldReference(int e,
int t,
int b,
int f,
int o)
|
void |
processGetstaticPrimitive(int e,
int t,
int b,
int f)
|
void |
processGetstaticReference(int e,
int t,
int b,
int f,
int o)
|
void |
processImplicitThrow(int p,
int t,
int o)
|
void |
processLeaveLoop(int w,
int t)
|
void |
processLeaveMethod(int m,
int t)
|
void |
processLoopIteration(int w,
int t)
|
void |
processNewArray(int h,
int t,
int o)
|
void |
processNotify(int i,
int t,
int o)
|
void |
processPutfieldPrimitive(int e,
int t,
int b,
int f)
|
void |
processPutfieldReference(int e,
int t,
int b,
int f,
int o)
|
void |
processPutstaticPrimitive(int e,
int t,
int b,
int f)
|
void |
processPutstaticReference(int e,
int t,
int b,
int f,
int o)
|
void |
processQuad(int p,
int t)
|
void |
processReleaseLock(int r,
int t,
int o)
|
void |
processReturnPrimitive(int p,
int t)
|
void |
processReturnReference(int p,
int t,
int o)
|
void |
processThreadJoin(int i,
int t,
int o)
|
void |
processThreadStart(int i,
int t,
int o)
|
void |
processWait(int i,
int t,
int o)
|
void |
run()
Executes this analysis in a "classic" project. |
| Methods inherited from class chord.project.analyses.BasicDynamicAnalysis |
|---|
doneAllPasses, donePass, getInstrKind, getTimeout, getTraceBlockSize, getTraceFileName, getTraceFileName, getTraceFileName, getTraceFileName, getTraceKind, haltOnErr, initAllPasses, initPass, processTrace, reuseTraces, useJvmti |
| Methods inherited from class chord.project.analyses.JavaAnalysis |
|---|
getName, run, setName, toString |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
protected InstrScheme scheme
| Constructor Detail |
|---|
public DynamicAnalysis()
| Method Detail |
|---|
public InstrScheme getInstrScheme()
public java.lang.String getInstrSchemeFileName()
public java.lang.Class getInstrumentorClass()
BasicDynamicAnalysisBasicInstrumentor.
getInstrumentorClass in class BasicDynamicAnalysispublic java.lang.Class getEventHandlerClass()
BasicDynamicAnalysisBasicEventHandler. Additionally, if the dynamic
analysis implemented by the subclass is multi-JVM (uses separate JVMs for
generating and handling events), then this method must return a class
which extends TraceEventHandler.
getEventHandlerClass in class BasicDynamicAnalysispublic java.util.Map<java.lang.String,java.lang.String> getInstrumentorArgs()
BasicDynamicAnalysisBasicDynamicAnalysis.useJvmti().
The value of BasicDynamicAnalysis.getEventHandlerClass().
The values of BasicDynamicAnalysis.getEventHandlerArgs().
Subclasses can override this method but must call
super.getInstrumentorArgs(), add any additional arguments to the
returned map, and return that same map.
getInstrumentorArgs in class BasicDynamicAnalysispublic java.util.Map<java.lang.String,java.lang.String> getEventHandlerArgs()
BasicDynamicAnalysisBasicDynamicAnalysis.getEventHandlerClass(). If this method returns a
subclass of TraceEventHandler, then it is multi-JVM;
otherwise, it is single-JVM.
The value of BasicDynamicAnalysis.getTraceBlockSize().
The value of BasicDynamicAnalysis.getTraceFileName(int).
Subclasses can override this method but must call
super.getEventHandlerArgs(), add any additional arguments to the
returned map, and return that same map.
getEventHandlerArgs in class BasicDynamicAnalysispublic java.util.List<java.lang.Runnable> getTraceTransformers()
BasicDynamicAnalysis
getTraceTransformers in class BasicDynamicAnalysispublic boolean canReuseTraces()
canReuseTraces in class BasicDynamicAnalysispublic void run()
ITaskClassicProject.runTask(String) or
ClassicProject.runTask(ITask), providing
this analysis either by its name or its object.
run in interface ITaskrun in class BasicDynamicAnalysis
public void handleEvent(ByteBufferedFile buffer)
throws java.io.IOException,
ReadException
handleEvent in class BasicDynamicAnalysisjava.io.IOException
ReadExceptionpublic void processEnterMainMethod(int t)
public void processEnterMethod(int m,
int t)
public void processLeaveMethod(int m,
int t)
public void processEnterLoop(int w,
int t)
public void processLoopIteration(int w,
int t)
public void processLeaveLoop(int w,
int t)
public void processBasicBlock(int b,
int t)
public void processQuad(int p,
int t)
public void processBefMethodCall(int i,
int t,
int o)
public void processAftMethodCall(int i,
int t,
int o)
public void processBefNew(int h,
int t,
int o)
public void processAftNew(int h,
int t,
int o)
public void processNewArray(int h,
int t,
int o)
public void processGetstaticPrimitive(int e,
int t,
int b,
int f)
public void processGetstaticReference(int e,
int t,
int b,
int f,
int o)
public void processPutstaticPrimitive(int e,
int t,
int b,
int f)
public void processPutstaticReference(int e,
int t,
int b,
int f,
int o)
public void processGetfieldPrimitive(int e,
int t,
int b,
int f)
public void processGetfieldReference(int e,
int t,
int b,
int f,
int o)
public void processPutfieldPrimitive(int e,
int t,
int b,
int f)
public void processPutfieldReference(int e,
int t,
int b,
int f,
int o)
public void processAloadPrimitive(int e,
int t,
int b,
int i)
public void processAloadReference(int e,
int t,
int b,
int i,
int o)
public void processAstorePrimitive(int e,
int t,
int b,
int i)
public void processAstoreReference(int e,
int t,
int b,
int i,
int o)
public void processReturnPrimitive(int p,
int t)
public void processReturnReference(int p,
int t,
int o)
public void processExplicitThrow(int p,
int t,
int o)
public void processImplicitThrow(int p,
int t,
int o)
public void processThreadStart(int i,
int t,
int o)
public void processThreadJoin(int i,
int t,
int o)
public void processAcquireLock(int l,
int t,
int o)
public void processReleaseLock(int r,
int t,
int o)
public void processWait(int i,
int t,
int o)
public void processNotify(int i,
int t,
int o)
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||