[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