[Soot-list] getThisLocal(), CHA on soot.Main

Ondrej Lhotak olhotak at sable.mcgill.ca
Sun Oct 10 00:07:28 EDT 2004


On Sat, Oct 09, 2004 at 07:31:28PM -0400, Saswat Anand wrote:
> 
> > > Secondly, CHA based call graph construction crashes when applied to
> > > soot.Main. This is soot2.1 -- so the problem may have been fixed in the
> CVS?
> >
> > Do you have steps to reproduce this bug?
> 
> It occurs when I use jdk1.3. With JDK1.4 it runs to completion, although it
> takes quite sometime (28 mins) on a 2.8 GHz P4 with 512m. But since soot 2.1
> needs JDK1.4, this may not be a bug -- it crashes with a msg saying unable
> to resolve super class or interface for some jdk class.

Soot in general should work with the 1.3 JDK. The Java to Jimple part
might depend on 1.4, but I'm not sure.

> Currently I am bothered by this "-i" option. Please help me out. I am trying
> to compile all classes of antlr with soot. Java files are in antlr,
> antlr\collections, antlr\debug and antlr\preprocessor. I am saying-
> 
> java -mx400m soot.Main -soot-classpath .\antlr.jar;%SOOTCLASSPATH%
> antlr.Tool -i antlr
> But it compiles just a subset of java files from each of the above
> directories. How do I compile all of them?

Use the option:
  -process-dir DIR             Process all classes found in DIR 

The -i option only controls whether the classes of certain packages will
be treated as library or application classes. An explanation of what
these mean, as well as of all the options, appears in the command-line
options document at:
http://www.sable.mcgill.ca/soot/tutorial/usage/index.html
The definition of library/application classes is at the beginning of
this document.

Phase options are at:
http://www.sable.mcgill.ca/soot/tutorial/phase/index.html

> Also the usage tutorial is probably a little unclear about this -i option.
> In the above example, "-i antlr." and "-i antlr" have different effects,
> which I realized when I tried them by accident. If I am misreading the doc,
> please ignore.

The -i option prevents any class whose full name (including package)
begins with the specified string from being turned into a library
class. So, antlr.Foo will be matched by both "antlr." and "antlr", but
antlrfoo.Bar will be matched by "antlr" but not "antlr.".

> Also I see that in src/soot/options I have just two java files -
> OptionsBase.java and one more. But there are many classes in
> classes/soot/options ( where "-i" is taken care of ). Why are these java
> files missing? I downloaded soot2.1 released bundles.

These files are generated by the build script and are not intended to
be edited. They can be found in soot/generated/options/soot/options.

Ondrej

> 
> Thanks,
> Saswat
> 
> _______________________________________________
> Soot-list mailing list
> Soot-list at sable.mcgill.ca
> http://www.sable.mcgill.ca/mailman/listinfo/soot-list
> 


More information about the Soot-list mailing list