|
SandMark version 3.0 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--sandmark.watermark.ct.trace.callforest.Test
Nested Class Summary | |
static class |
Test.ClassHierarchy
|
static class |
Test.Stats
|
Constructor Summary | |
Test()
|
Method Summary | |
static void |
main(java.lang.String[] args)
Build the dynamic call-graph for methods test1, test2, test3, test4. |
(package private) static StackFrame |
mkFrame(java.lang.String name,
java.lang.String sig,
java.lang.String className,
long lineNumber,
long codeIndex,
long threadID,
long frameID)
|
(package private) static TracePoint |
mkTracePoint(java.lang.String data,
java.lang.String name,
java.lang.String sig,
java.lang.String className,
long lineNumber,
long codeIndex,
StackFrame[] frames)
|
(package private) static void |
test1(Test.ClassHierarchy classHierarchy,
Test.Stats stats,
java.util.Properties props)
Build the dynamic call-graph for this simple method: public class Simple1 { static void P() { sandmark.watermark.ct.trace.Annotator.sm$mark(); } public static void main(String args[]) { P(); } } |
(package private) static void |
test2(Test.ClassHierarchy classHierarchy,
Test.Stats stats,
java.util.Properties props,
boolean okToAddParam)
Build the dynamic call-graph for this simple method: public class Simple6 { static void P() { sandmark.watermark.ct.trace.Annotator.sm$mark(); } static void Q() { sandmark.watermark.ct.trace.Annotator.sm$mark(); } public static void main(String args[]) { P(); Q(); } } |
(package private) static void |
test3(Test.ClassHierarchy classHierarchy,
Test.Stats stats,
java.util.Properties props)
Build the dynamic call-graph for this simple class: class TTTApplication { void mark() { sm$mark(); } void move() { sm$mark(); mark(); } void actionPerformed () { move() } } These are the stack frames: TRACEPT[1,LOCATION[METHOD[move,(I)V,TTTApplication], LINE=98, BC=36]] FRAME[LOCATION[METHOD[sm$mark,(J)V,sandmark.watermark.ct.trace.Annotator], LINE=59, BC=6], ID=78] FRAME[LOCATION[METHOD[move,(I)V,TTTApplication], LINE=98, BC=36], ID=67] FRAME[LOCATION[METHOD[actionPerformed,(Ljava/awt/event/ActionEvent;)V,TTTApplication$1], LINE=32, BC=20], ID=66] TRACEPT[8,LOCATION[METHOD[mark,(I)V,TTTApplication], LINE=131, BC=49]] FRAME[LOCATION[METHOD[sm$mark,(J)V,sandmark.watermark.ct.trace.Annotator], LINE=59, BC=6], ID=80] FRAME[LOCATION[METHOD[mark,(I)V,TTTApplication], LINE=131, BC=49], ID=79] FRAME[LOCATION[METHOD[move,(I)V,TTTApplication], LINE=99, BC=41], ID=67] FRAME[LOCATION[METHOD[actionPerformed,(Ljava/awt/event/ActionEvent;)V,TTTApplication$1], LINE=32, BC=20], ID=66] |
(package private) static void |
test4(Test.ClassHierarchy classHierarchy,
Test.Stats stats,
java.util.Properties props)
Build the dynamic call-graph for this simple class: public class SimpleE { static void K() { sandmark.watermark.ct.trace.Annotator.sm$mark(); } static void L() { sandmark.watermark.ct.trace.Annotator.sm$mark(); } static void M() { sandmark.watermark.ct.trace.Annotator.sm$mark(); } static void N() { sandmark.watermark.ct.trace.Annotator.sm$mark(); } static void O() { sandmark.watermark.ct.trace.Annotator.sm$mark(); N(); } static void P() { sandmark.watermark.ct.trace.Annotator.sm$mark(); O(); } static void W() { L(); sandmark.watermark.ct.trace.Annotator.sm$mark(); M(); } static void R() { K(); } static void S() { P(); W(); R(); } public static void main(String args[]) { S(); } } These are the stack frames: TRACEPT[----,LOCATION[METHOD[P,()V,SimpleE,dynamic], LINE=25, BC=0]] FRAME[LOCATION[METHOD[sm$mark,()V,sandmark.watermark.ct.trace.Annotator,dynamic], LINE=45, BC=4], THRD=1, ID=3] FRAME[LOCATION[METHOD[P,()V,SimpleE,dynamic], LINE=25, BC=0], THRD=1, ID=2] FRAME[LOCATION[METHOD[S,()V,SimpleE,dynamic], LINE=40, BC=0], THRD=1, ID=1] FRAME[LOCATION[METHOD[main,([Ljava/lang/String;)V,SimpleE,dynamic], LINE=46, BC=0], THRD=1, ID=0] TRACEPT[----,LOCATION[METHOD[O,()V,SimpleE,dynamic], LINE=20, BC=0]] FRAME[LOCATION[METHOD[sm$mark,()V,sandmark.watermark.ct.trace.Annotator,dynamic], LINE=45, BC=4], THRD=1, ID=5] FRAME[LOCATION[METHOD[O,()V,SimpleE,dynamic], LINE=20, BC=0], THRD=1, ID=4] FRAME[LOCATION[METHOD[P,()V,SimpleE,dynamic], LINE=26, BC=3], THRD=1, ID=2] FRAME[LOCATION[METHOD[S,()V,SimpleE,dynamic], LINE=40, BC=0], THRD=1, ID=1] FRAME[LOCATION[METHOD[main,([Ljava/lang/String;)V,SimpleE,dynamic], LINE=46, BC=0], THRD=1, ID=0] TRACEPT[----,LOCATION[METHOD[N,()V,SimpleE,dynamic], LINE=16, BC=0]] FRAME[LOCATION[METHOD[sm$mark,()V,sandmark.watermark.ct.trace.Annotator,dynamic], LINE=45, BC=4], THRD=1, ID=7] FRAME[LOCATION[METHOD[N,()V,SimpleE,dynamic], LINE=16, BC=0], THRD=1, ID=6] FRAME[LOCATION[METHOD[O,()V,SimpleE,dynamic], LINE=21, BC=3], THRD=1, ID=4] FRAME[LOCATION[METHOD[P,()V,SimpleE,dynamic], LINE=26, BC=3], THRD=1, ID=2] FRAME[LOCATION[METHOD[S,()V,SimpleE,dynamic], LINE=40, BC=0], THRD=1, ID=1] FRAME[LOCATION[METHOD[main,([Ljava/lang/String;)V,SimpleE,dynamic], LINE=46, BC=0], THRD=1, ID=0] TRACEPT[----,LOCATION[METHOD[L,()V,SimpleE,dynamic], LINE=8, BC=0]] FRAME[LOCATION[METHOD[sm$mark,()V,sandmark.watermark.ct.trace.Annotator,dynamic], LINE=45, BC=4], THRD=1, ID=10] FRAME[LOCATION[METHOD[L,()V,SimpleE,dynamic], LINE=8, BC=0], THRD=1, ID=9] FRAME[LOCATION[METHOD[W,()V,SimpleE,dynamic], LINE=30, BC=0], THRD=1, ID=8] FRAME[LOCATION[METHOD[S,()V,SimpleE,dynamic], LINE=41, BC=3], THRD=1, ID=1] FRAME[LOCATION[METHOD[main,([Ljava/lang/String;)V,SimpleE,dynamic], LINE=46, BC=0], THRD=1, ID=0] TRACEPT[----,LOCATION[METHOD[W,()V,SimpleE,dynamic], LINE=31, BC=3]] FRAME[LOCATION[METHOD[sm$mark,()V,sandmark.watermark.ct.trace.Annotator,dynamic], LINE=45, BC=4], THRD=1, ID=11] FRAME[LOCATION[METHOD[W,()V,SimpleE,dynamic], LINE=31, BC=3], THRD=1, ID=8] FRAME[LOCATION[METHOD[S,()V,SimpleE,dynamic], LINE=41, BC=3], THRD=1, ID=1] FRAME[LOCATION[METHOD[main,([Ljava/lang/String;)V,SimpleE,dynamic], LINE=46, BC=0], THRD=1, ID=0] TRACEPT[----,LOCATION[METHOD[M,()V,SimpleE,dynamic], LINE=12, BC=0]] FRAME[LOCATION[METHOD[sm$mark,()V,sandmark.watermark.ct.trace.Annotator,dynamic], LINE=45, BC=4], THRD=1, ID=13] FRAME[LOCATION[METHOD[M,()V,SimpleE,dynamic], LINE=12, BC=0], THRD=1, ID=12] FRAME[LOCATION[METHOD[W,()V,SimpleE,dynamic], LINE=32, BC=6], THRD=1, ID=8] FRAME[LOCATION[METHOD[S,()V,SimpleE,dynamic], LINE=41, BC=3], THRD=1, ID=1] FRAME[LOCATION[METHOD[main,([Ljava/lang/String;)V,SimpleE,dynamic], LINE=46, BC=0], THRD=1, ID=0] TRACEPT[----,LOCATION[METHOD[K,()V,SimpleE,dynamic], LINE=4, BC=0]] FRAME[LOCATION[METHOD[sm$mark,()V,sandmark.watermark.ct.trace.Annotator,dynamic], LINE=45, BC=4], THRD=1, ID=16] FRAME[LOCATION[METHOD[K,()V,SimpleE,dynamic], LINE=4, BC=0], THRD=1, ID=15] FRAME[LOCATION[METHOD[R,()V,SimpleE,dynamic], LINE=36, BC=0], THRD=1, ID=14] FRAME[LOCATION[METHOD[S,()V,SimpleE,dynamic], LINE=42, BC=6], THRD=1, ID=1] FRAME[LOCATION[METHOD[main,([Ljava/lang/String;)V,SimpleE,dynamic], LINE=46, BC=0], THRD=1, ID=0] |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public Test()
Method Detail |
static StackFrame mkFrame(java.lang.String name, java.lang.String sig, java.lang.String className, long lineNumber, long codeIndex, long threadID, long frameID)
static TracePoint mkTracePoint(java.lang.String data, java.lang.String name, java.lang.String sig, java.lang.String className, long lineNumber, long codeIndex, StackFrame[] frames)
static void test1(Test.ClassHierarchy classHierarchy, Test.Stats stats, java.util.Properties props)
public class Simple1 { static void P() { sandmark.watermark.ct.trace.Annotator.sm$mark(); } public static void main(String args[]) { P(); } }
static void test2(Test.ClassHierarchy classHierarchy, Test.Stats stats, java.util.Properties props, boolean okToAddParam)
public class Simple6 { static void P() { sandmark.watermark.ct.trace.Annotator.sm$mark(); } static void Q() { sandmark.watermark.ct.trace.Annotator.sm$mark(); } public static void main(String args[]) { P(); Q(); } }
classHierarchy
- the class hierarchystats
- statisticsprops
- propertiesokToAddParam
- 'false' if we should name one of the methods "Q",
meaning that its argument list cannot be changed.static void test3(Test.ClassHierarchy classHierarchy, Test.Stats stats, java.util.Properties props)
class TTTApplication { void mark() { sm$mark(); } void move() { sm$mark(); mark(); } void actionPerformed () { move() } }
These are the stack frames:
TRACEPT[1,LOCATION[METHOD[move,(I)V,TTTApplication], LINE=98, BC=36]] FRAME[LOCATION[METHOD[sm$mark,(J)V,sandmark.watermark.ct.trace.Annotator], LINE=59, BC=6], ID=78] FRAME[LOCATION[METHOD[move,(I)V,TTTApplication], LINE=98, BC=36], ID=67] FRAME[LOCATION[METHOD[actionPerformed,(Ljava/awt/event/ActionEvent;)V,TTTApplication$1], LINE=32, BC=20], ID=66] TRACEPT[8,LOCATION[METHOD[mark,(I)V,TTTApplication], LINE=131, BC=49]] FRAME[LOCATION[METHOD[sm$mark,(J)V,sandmark.watermark.ct.trace.Annotator], LINE=59, BC=6], ID=80] FRAME[LOCATION[METHOD[mark,(I)V,TTTApplication], LINE=131, BC=49], ID=79] FRAME[LOCATION[METHOD[move,(I)V,TTTApplication], LINE=99, BC=41], ID=67] FRAME[LOCATION[METHOD[actionPerformed,(Ljava/awt/event/ActionEvent;)V,TTTApplication$1], LINE=32, BC=20], ID=66]
static void test4(Test.ClassHierarchy classHierarchy, Test.Stats stats, java.util.Properties props)
public class SimpleE { static void K() { sandmark.watermark.ct.trace.Annotator.sm$mark(); } static void L() { sandmark.watermark.ct.trace.Annotator.sm$mark(); } static void M() { sandmark.watermark.ct.trace.Annotator.sm$mark(); } static void N() { sandmark.watermark.ct.trace.Annotator.sm$mark(); } static void O() { sandmark.watermark.ct.trace.Annotator.sm$mark(); N(); } static void P() { sandmark.watermark.ct.trace.Annotator.sm$mark(); O(); } static void W() { L(); sandmark.watermark.ct.trace.Annotator.sm$mark(); M(); } static void R() { K(); } static void S() { P(); W(); R(); } public static void main(String args[]) { S(); } }
These are the stack frames:
TRACEPT[----,LOCATION[METHOD[P,()V,SimpleE,dynamic], LINE=25, BC=0]] FRAME[LOCATION[METHOD[sm$mark,()V,sandmark.watermark.ct.trace.Annotator,dynamic], LINE=45, BC=4], THRD=1, ID=3] FRAME[LOCATION[METHOD[P,()V,SimpleE,dynamic], LINE=25, BC=0], THRD=1, ID=2] FRAME[LOCATION[METHOD[S,()V,SimpleE,dynamic], LINE=40, BC=0], THRD=1, ID=1] FRAME[LOCATION[METHOD[main,([Ljava/lang/String;)V,SimpleE,dynamic], LINE=46, BC=0], THRD=1, ID=0] TRACEPT[----,LOCATION[METHOD[O,()V,SimpleE,dynamic], LINE=20, BC=0]] FRAME[LOCATION[METHOD[sm$mark,()V,sandmark.watermark.ct.trace.Annotator,dynamic], LINE=45, BC=4], THRD=1, ID=5] FRAME[LOCATION[METHOD[O,()V,SimpleE,dynamic], LINE=20, BC=0], THRD=1, ID=4] FRAME[LOCATION[METHOD[P,()V,SimpleE,dynamic], LINE=26, BC=3], THRD=1, ID=2] FRAME[LOCATION[METHOD[S,()V,SimpleE,dynamic], LINE=40, BC=0], THRD=1, ID=1] FRAME[LOCATION[METHOD[main,([Ljava/lang/String;)V,SimpleE,dynamic], LINE=46, BC=0], THRD=1, ID=0] TRACEPT[----,LOCATION[METHOD[N,()V,SimpleE,dynamic], LINE=16, BC=0]] FRAME[LOCATION[METHOD[sm$mark,()V,sandmark.watermark.ct.trace.Annotator,dynamic], LINE=45, BC=4], THRD=1, ID=7] FRAME[LOCATION[METHOD[N,()V,SimpleE,dynamic], LINE=16, BC=0], THRD=1, ID=6] FRAME[LOCATION[METHOD[O,()V,SimpleE,dynamic], LINE=21, BC=3], THRD=1, ID=4] FRAME[LOCATION[METHOD[P,()V,SimpleE,dynamic], LINE=26, BC=3], THRD=1, ID=2] FRAME[LOCATION[METHOD[S,()V,SimpleE,dynamic], LINE=40, BC=0], THRD=1, ID=1] FRAME[LOCATION[METHOD[main,([Ljava/lang/String;)V,SimpleE,dynamic], LINE=46, BC=0], THRD=1, ID=0] TRACEPT[----,LOCATION[METHOD[L,()V,SimpleE,dynamic], LINE=8, BC=0]] FRAME[LOCATION[METHOD[sm$mark,()V,sandmark.watermark.ct.trace.Annotator,dynamic], LINE=45, BC=4], THRD=1, ID=10] FRAME[LOCATION[METHOD[L,()V,SimpleE,dynamic], LINE=8, BC=0], THRD=1, ID=9] FRAME[LOCATION[METHOD[W,()V,SimpleE,dynamic], LINE=30, BC=0], THRD=1, ID=8] FRAME[LOCATION[METHOD[S,()V,SimpleE,dynamic], LINE=41, BC=3], THRD=1, ID=1] FRAME[LOCATION[METHOD[main,([Ljava/lang/String;)V,SimpleE,dynamic], LINE=46, BC=0], THRD=1, ID=0] TRACEPT[----,LOCATION[METHOD[W,()V,SimpleE,dynamic], LINE=31, BC=3]] FRAME[LOCATION[METHOD[sm$mark,()V,sandmark.watermark.ct.trace.Annotator,dynamic], LINE=45, BC=4], THRD=1, ID=11] FRAME[LOCATION[METHOD[W,()V,SimpleE,dynamic], LINE=31, BC=3], THRD=1, ID=8] FRAME[LOCATION[METHOD[S,()V,SimpleE,dynamic], LINE=41, BC=3], THRD=1, ID=1] FRAME[LOCATION[METHOD[main,([Ljava/lang/String;)V,SimpleE,dynamic], LINE=46, BC=0], THRD=1, ID=0] TRACEPT[----,LOCATION[METHOD[M,()V,SimpleE,dynamic], LINE=12, BC=0]] FRAME[LOCATION[METHOD[sm$mark,()V,sandmark.watermark.ct.trace.Annotator,dynamic], LINE=45, BC=4], THRD=1, ID=13] FRAME[LOCATION[METHOD[M,()V,SimpleE,dynamic], LINE=12, BC=0], THRD=1, ID=12] FRAME[LOCATION[METHOD[W,()V,SimpleE,dynamic], LINE=32, BC=6], THRD=1, ID=8] FRAME[LOCATION[METHOD[S,()V,SimpleE,dynamic], LINE=41, BC=3], THRD=1, ID=1] FRAME[LOCATION[METHOD[main,([Ljava/lang/String;)V,SimpleE,dynamic], LINE=46, BC=0], THRD=1, ID=0] TRACEPT[----,LOCATION[METHOD[K,()V,SimpleE,dynamic], LINE=4, BC=0]] FRAME[LOCATION[METHOD[sm$mark,()V,sandmark.watermark.ct.trace.Annotator,dynamic], LINE=45, BC=4], THRD=1, ID=16] FRAME[LOCATION[METHOD[K,()V,SimpleE,dynamic], LINE=4, BC=0], THRD=1, ID=15] FRAME[LOCATION[METHOD[R,()V,SimpleE,dynamic], LINE=36, BC=0], THRD=1, ID=14] FRAME[LOCATION[METHOD[S,()V,SimpleE,dynamic], LINE=42, BC=6], THRD=1, ID=1] FRAME[LOCATION[METHOD[main,([Ljava/lang/String;)V,SimpleE,dynamic], LINE=46, BC=0], THRD=1, ID=0]
public static void main(java.lang.String[] args)
java -classpath .:../smextern3/BCEL.jar:../smextern/bloat-1.0.jar \ sandmark.watermark.ct.trace.callforest.Test
|
SandMark version 3.0 Wed Jan 29 10:30:05 MST 2003 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |