soot
Class Main

java.lang.Object
  |
  +--soot.Main
All Implemented Interfaces:
java.lang.Runnable

public class Main
extends java.lang.Object
implements java.lang.Runnable

Main class for Soot; provides Soot's command-line user interface.


Field Summary
static Timer aggregationTimer
           
static Timer assembleJasminTimer
           
static int assignLocalCount
           
static int assignStmtCount
           
static Timer assignTimer
           
static int B
           
static int BAF
           
static Timer buildJasminTimer
           
static int CLASS
           
static int cleanup1LocalCount
           
static int cleanup1StmtCount
           
static Timer cleanup1Timer
           
static int cleanup2LocalCount
           
static int cleanup2StmtCount
           
static Timer cleanup2Timer
           
static Timer cleanupAlgorithmTimer
           
static int COMPILATION_ABORTED
           
static int COMPILATION_SUCCEDED
           
static int conversionLocalCount
           
static int conversionStmtCount
           
static Timer conversionTimer
           
static Timer copiesTimer
           
static int DAVA
           
static Timer deadCodeTimer
           
static Timer defsAnalysisTimer
           
static Timer defsPostTimer
           
static Timer defsSetupTimer
           
static Timer defsTimer
           
 java.util.Date finish
           
static Timer graphTimer
           
static int GRIMP
           
static Timer grimpAggregationTimer
           
static int GRIMPLE
           
static boolean isInDebugMode
           
static boolean isProfilingOptimization
           
static boolean isVerbose
           
static int JASMIN
           
static int JIMP
           
static int JIMPLE
           
static boolean keepBytecodeOffsetInfo
           
static boolean keepLineNumberAttribute
           
static Timer liveAnalysisTimer
           
static Timer livePostTimer
           
static Timer liveSetupTimer
           
static Timer liveTimer
           
static int NJIMPLE
           
static int NO_OUTPUT
           
static int packLocalCount
           
static int packStmtCount
           
static Timer packTimer
           
static Timer propagatorTimer
           
static Timer resolverTimer
           
static Timer resolveTimer
           
static int splitLocalCount
           
static Timer splitPhase1Timer
           
static Timer splitPhase2Timer
           
static int splitStmtCount
           
static Timer splitTimer
           
 java.util.Date start
           
static long stmtCount
           
static int totalFlowComputations
           
static int totalFlowNodes
           
static Timer totalTimer
           
static Timer usePhase1Timer
           
static Timer usePhase2Timer
           
static Timer usePhase3Timer
           
static Timer usesTimer
           
static java.lang.String versionString
           
static int XML
           
 
Constructor Summary
Main()
           
 
Method Summary
static void addCompilationListener(soot.gui.ICompilationListener l)
           
static void addDynamicClasses(java.lang.String path)
           
static void addDynamicPackage(java.lang.String str)
           
static void addDynamicPath(java.lang.String path)
           
static void addExclude(java.lang.String str)
           
static void addInclude(java.lang.String str)
           
static void addProcessPath(java.lang.String path)
           
static java.lang.String getCacheDir()
           
static java.lang.String[] getCmdLineArgs()
           
static java.lang.String getExtensionFor(int rep)
           
static java.lang.String getFileNameFor(SootClass c, int rep)
           
static int getFinalRep()
           
static boolean getJavaStyle()
           
static java.lang.String getOutputDir()
           
static int getTargetRep()
           
static boolean getWithCache()
           
static void initApp()
          Initializes various Soot data and calls the PackAdjuster.
static boolean isAnalyzingLibraries()
           
static boolean isAppMode()
           
static boolean isDebug()
           
static boolean isJ2ME()
           
static boolean isOptimizing()
           
static boolean isOptimizingWhole()
           
static boolean isProfiling()
           
static boolean isSubstractingGC()
           
static boolean isVerbose()
           
static void main(java.lang.String[] args)
          Entry point for cmd line invocation of soot.
static void markPackageAsDynamic(java.lang.String str)
           
static java.lang.String paddedLeftOf(java.lang.String s, int length)
           
 void run()
          Entry point to the soot's compilation process.
static void setAnalyzingLibraries(boolean val)
           
static void setAnnotationPhases(java.lang.String opt)
           
static void setAppMode(boolean val)
           
static void setCacheDir(java.lang.String s)
           
static void setCmdLineArgs(java.lang.String[] args)
           
static void setDebug(boolean val)
           
static void setFinalRep(java.lang.String rep)
           
static void setJavaStyle(boolean val)
           
static void setLazyInvocation(boolean val)
           
static void setOptimizing(boolean val)
           
static void setOptimizingWhole(boolean val)
           
static void setOutputDir(java.lang.String dir)
           
static void setProfiling(boolean val)
           
static void setReservedNames()
           
static void setSrcPrecedence(java.lang.String prec)
           
static void setSubstractingGC(boolean val)
           
static void setTargetRep(int rep)
           
static void setVerbose(boolean val)
           
static void setWithCache(boolean val)
           
static double truncatedOf(double d, int numDigits)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

versionString

public static final java.lang.String versionString
See Also:
Constant Field Values

start

public java.util.Date start

finish

public java.util.Date finish

keepLineNumberAttribute

public static boolean keepLineNumberAttribute

keepBytecodeOffsetInfo

public static boolean keepBytecodeOffsetInfo

COMPILATION_ABORTED

public static final int COMPILATION_ABORTED
See Also:
Constant Field Values

COMPILATION_SUCCEDED

public static final int COMPILATION_SUCCEDED
See Also:
Constant Field Values

NO_OUTPUT

public static final int NO_OUTPUT
See Also:
Constant Field Values

BAF

public static final int BAF
See Also:
Constant Field Values

B

public static final int B
See Also:
Constant Field Values

JIMPLE

public static final int JIMPLE
See Also:
Constant Field Values

JIMP

public static final int JIMP
See Also:
Constant Field Values

NJIMPLE

public static final int NJIMPLE
See Also:
Constant Field Values

GRIMP

public static final int GRIMP
See Also:
Constant Field Values

GRIMPLE

public static final int GRIMPLE
See Also:
Constant Field Values

CLASS

public static final int CLASS
See Also:
Constant Field Values

DAVA

public static final int DAVA
See Also:
Constant Field Values

JASMIN

public static final int JASMIN
See Also:
Constant Field Values

XML

public static final int XML
See Also:
Constant Field Values

isVerbose

public static boolean isVerbose

isProfilingOptimization

public static boolean isProfilingOptimization

isInDebugMode

public static boolean isInDebugMode

totalFlowNodes

public static int totalFlowNodes

totalFlowComputations

public static int totalFlowComputations

copiesTimer

public static Timer copiesTimer

defsTimer

public static Timer defsTimer

usesTimer

public static Timer usesTimer

liveTimer

public static Timer liveTimer

splitTimer

public static Timer splitTimer

packTimer

public static Timer packTimer

cleanup1Timer

public static Timer cleanup1Timer

cleanup2Timer

public static Timer cleanup2Timer

conversionTimer

public static Timer conversionTimer

cleanupAlgorithmTimer

public static Timer cleanupAlgorithmTimer

graphTimer

public static Timer graphTimer

assignTimer

public static Timer assignTimer

resolveTimer

public static Timer resolveTimer

totalTimer

public static Timer totalTimer

splitPhase1Timer

public static Timer splitPhase1Timer

splitPhase2Timer

public static Timer splitPhase2Timer

usePhase1Timer

public static Timer usePhase1Timer

usePhase2Timer

public static Timer usePhase2Timer

usePhase3Timer

public static Timer usePhase3Timer

defsSetupTimer

public static Timer defsSetupTimer

defsAnalysisTimer

public static Timer defsAnalysisTimer

defsPostTimer

public static Timer defsPostTimer

liveSetupTimer

public static Timer liveSetupTimer

liveAnalysisTimer

public static Timer liveAnalysisTimer

livePostTimer

public static Timer livePostTimer

aggregationTimer

public static Timer aggregationTimer

grimpAggregationTimer

public static Timer grimpAggregationTimer

deadCodeTimer

public static Timer deadCodeTimer

propagatorTimer

public static Timer propagatorTimer

buildJasminTimer

public static Timer buildJasminTimer

assembleJasminTimer

public static Timer assembleJasminTimer

resolverTimer

public static Timer resolverTimer

conversionLocalCount

public static int conversionLocalCount

cleanup1LocalCount

public static int cleanup1LocalCount

splitLocalCount

public static int splitLocalCount

assignLocalCount

public static int assignLocalCount

packLocalCount

public static int packLocalCount

cleanup2LocalCount

public static int cleanup2LocalCount

conversionStmtCount

public static int conversionStmtCount

cleanup1StmtCount

public static int cleanup1StmtCount

splitStmtCount

public static int splitStmtCount

assignStmtCount

public static int assignStmtCount

packStmtCount

public static int packStmtCount

cleanup2StmtCount

public static int cleanup2StmtCount

stmtCount

public static long stmtCount
Constructor Detail

Main

public Main()
Method Detail

addCompilationListener

public static void addCompilationListener(soot.gui.ICompilationListener l)

getExtensionFor

public static java.lang.String getExtensionFor(int rep)

getFileNameFor

public static java.lang.String getFileNameFor(SootClass c,
                                              int rep)

setTargetRep

public static void setTargetRep(int rep)

getTargetRep

public static int getTargetRep()

setOptimizing

public static void setOptimizing(boolean val)

isOptimizing

public static boolean isOptimizing()

setOptimizingWhole

public static void setOptimizingWhole(boolean val)
                               throws CompilationDeathException
CompilationDeathException

isOptimizingWhole

public static boolean isOptimizingWhole()

setProfiling

public static void setProfiling(boolean val)

isProfiling

public static boolean isProfiling()

setVerbose

public static void setVerbose(boolean val)

isVerbose

public static boolean isVerbose()

setWithCache

public static void setWithCache(boolean val)

getWithCache

public static boolean getWithCache()

setCacheDir

public static void setCacheDir(java.lang.String s)

getCacheDir

public static java.lang.String getCacheDir()

setAppMode

public static void setAppMode(boolean val)

isAppMode

public static boolean isAppMode()

isJ2ME

public static boolean isJ2ME()

setLazyInvocation

public static void setLazyInvocation(boolean val)

setJavaStyle

public static void setJavaStyle(boolean val)

getJavaStyle

public static boolean getJavaStyle()

addExclude

public static void addExclude(java.lang.String str)
                       throws CompilationDeathException
CompilationDeathException

addInclude

public static void addInclude(java.lang.String str)
                       throws CompilationDeathException
CompilationDeathException

addDynamicClasses

public static void addDynamicClasses(java.lang.String path)
                              throws CompilationDeathException
CompilationDeathException

addDynamicPath

public static void addDynamicPath(java.lang.String path)
                           throws CompilationDeathException
CompilationDeathException

addDynamicPackage

public static void addDynamicPackage(java.lang.String str)
                              throws CompilationDeathException
CompilationDeathException

markPackageAsDynamic

public static void markPackageAsDynamic(java.lang.String str)

addProcessPath

public static void addProcessPath(java.lang.String path)
                           throws CompilationDeathException
CompilationDeathException

setDebug

public static void setDebug(boolean val)

isDebug

public static boolean isDebug()

setOutputDir

public static void setOutputDir(java.lang.String dir)

getOutputDir

public static java.lang.String getOutputDir()

setSrcPrecedence

public static void setSrcPrecedence(java.lang.String prec)
                             throws CompilationDeathException
CompilationDeathException

setFinalRep

public static void setFinalRep(java.lang.String rep)
                        throws CompilationDeathException
CompilationDeathException

getFinalRep

public static int getFinalRep()

setAnalyzingLibraries

public static void setAnalyzingLibraries(boolean val)

isAnalyzingLibraries

public static boolean isAnalyzingLibraries()

setSubstractingGC

public static void setSubstractingGC(boolean val)

isSubstractingGC

public static boolean isSubstractingGC()

setAnnotationPhases

public static void setAnnotationPhases(java.lang.String opt)

initApp

public static void initApp()
Initializes various Soot data and calls the PackAdjuster. Must be called!


getCmdLineArgs

public static java.lang.String[] getCmdLineArgs()

setCmdLineArgs

public static void setCmdLineArgs(java.lang.String[] args)

main

public static void main(java.lang.String[] args)
Entry point for cmd line invocation of soot.


setReservedNames

public static void setReservedNames()

run

public void run()
Entry point to the soot's compilation process. Be sure to call setCmdLineArgs before invoking this method.

Specified by:
run in interface java.lang.Runnable
See Also:
setCmdLineArgs(java.lang.String[])

truncatedOf

public static double truncatedOf(double d,
                                 int numDigits)

paddedLeftOf

public static java.lang.String paddedLeftOf(java.lang.String s,
                                            int length)