[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
How do soot distinguish lib classes and app classes
>>>>> "chenfu" == CHEN FU <chenfu@paul.rutgers.edu> writes:
chenfu> Silly question but could you tell me what's the
chenfu> criteria used by soot to distinguish lib classes and
chenfu> app classes. Is it just consider everything from
chenfu> rt.jar is lib and others as app?
For the just-released Soot 2.0.1, there is an explanation of
library versus application classes in the DESCRIPTION section of
http://www.sable.mcgill.ca/soot/tutorial/usage/
The description does fudge a bit, saying that in --app mode a
library class is one whose "package name indicates that it is
part of the standard Java runtime system".
Soot 2.0.1 designates as a library class any class whose package
name begins with one of:
java
sun
javax
com.sun
com.ibm
org.xml
org.w3c
org.apache
(From soot.Scene.prepareClasses(); the list has evolved over
Soot's lifetime, and the vagueness in the documentation serves to
allow further evolution.)
You can change the set of library package names using the -i and
-x options, documented further down on the same web page.
While the behaviour of some options has changed as of 2.0, I
believe that of -i and -x has not, so you should be able to use
these instructions to change the set of library classes even
before you upgrade Soot.
--
John Jorgensen jjorge1@cs.mcgill.ca