[Soot-list] Multiple runs of Soot

Campbell Morrison cammorr at gmail.com
Wed Jul 22 06:42:28 EDT 2009


Yes something's definitely funky on my side.  Thank you for your help

On Wed, Jul 22, 2009 at 12:18 PM, Eric Bodden <eric.bodden at mail.mcgill.ca>wrote:

> Hi Campbell.
>
> I don't know what, but you must be doing something wrong.
>
> For me, Soot produces from this class...
>
>
> public class Foo {
>
>        public static void main(String[] args) {
>                System.err.println("soso");
>        }
>
> }
>
>
> ... this file...
>
> public class Foo extends java.lang.Object
> {
> /*Foo.java*/
>
> /*[args]*/
>    public static void main(java.lang.String[])
>    {
>        java.lang.String[] args;
>        java.io.PrintStream temp$0;
>
>        args := @parameter0: java.lang.String[];
> /*Source Line Pos Tag: sline: 4 eline: 4 spos: 26 epos: 38 file: Foo.java*/
>        temp$0 = <java.lang.System: java.io.PrintStream err>;
> /*Source Line Pos Tag: sline: 5 eline: 5 spos: 3 epos: 29 file: Foo.java*/
>        virtualinvoke temp$0.<java.io.PrintStream: void
> println(java.lang.String)>("soso");
> /*Source Line Pos Tag: sline: 5 eline: 5 spos: 3 epos: 29 file: Foo.java*/
>        return;
> /*Source Line Pos Tag: sline: 5 eline: 5 spos: 3 epos: 29 file: Foo.java*/
>    }
>
> /*[]*/
>    public void <init>()
>    {
>        Foo this;
>
>        this := @this: Foo;
> /*2*/
>        specialinvoke this.<java.lang.Object: void <init>()>();
> /*2*/
>        return;
> /*2*/
>    }
> }
>
>
> .... using this command line:
>
> -f J -cp
> .:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/classes.jar
> -keep-line-number -print-tags -src-prec java Foo
>
> I guess something must be wrong with your soot-class-path or
> something. Note that Soot must be able to find your *source* files on
> the soot-class-path.
>
> Eric
>
> 2009/7/21 Campbell Morrison <cammorr at gmail.com>:
> > I'm currently bypassing my program and running Soot as a standalone
> > program.  I run Soot with the command:
> > java soot.Main -f J -d /foo/bar --soot-classpath /class/path
> > -keep-line-number -print-tags -src-prec java testClass and then look in
> the
> > output file testClass.jimple.  From what I see it's still just
> > LineNumberTag, and not SourceLnPosTag.
> >
> > On Mon, Jul 20, 2009 at 6:37 PM, Eric Bodden <eric.bodden at mail.mcgill.ca
> >
> > wrote:
> >>
> >> I think a LineNumberTag in cases where a class is loaded from
> >> bytecode. In that case, there is no column information available, and
> >> hence Soot uses another Tag. Are you sure that Soot loads classes from
> >> source code in your case?
> >>
> >> This may help:
> >> http://www.sable.mcgill.ca/pipermail/soot-list/2005-July/000313.html
> >>
> >> Eric
> >>
> >> 2009/7/20 Campbell Morrison <cammorr at gmail.com>:
> >> > I already have -keep-line-number and -keep-offset as arguments to
> >> > soot.Main.main(..) for some of the operations I do, but SourceLnPosTag
> >> > is
> >> > never added to the Jimple units.  The only tags added are
> >> > http://www.sable.mcgill.ca/soot/doc/soot/tagkit/LineNumberTag.htmland
> >> >
> http://www.sable.mcgill.ca/soot/doc/soot/tagkit/BytecodeOffsetTag.html
> >> >
> >> > I followed Soot's code around a bit and found that in
> >> > http://www.sable.mcgill.ca/soot/doc/soot/PackManager.html a
> >> >
> >> >
> http://www.sable.mcgill.ca/soot/doc/soot/jimple/toolkits/annotation/LineNumberAdder.html
> >> > is instantiated and run.  This adder only adds the LineNumberTag to
> >> > units.
> >> > I can't find where or how
> >> > http://www.sable.mcgill.ca/soot/doc/soot/tagkit/SourceLnPosTag.htmlis
> >> > added
> >> > to Jimple units.
> >> >
> >> > Perhaps it has to do with where my transformer is added?  Before
> running
> >> > Soot, I add my own transformer with this line:
> >> > PackManager.v().getPack( "jtp" ).add( new Transform( "jtp.trueexec",
> >> > SymbolicTransformer.v()));
> >> >
> >> >
> >> > On Mon, Jul 20, 2009 at 2:15 PM, Eric Bodden
> >> > <eric.bodden at mail.mcgill.ca>
> >> > wrote:
> >> >>
> >> >> Hi again.
> >> >>
> >> >> > I use Soot to read in the Java class files and generate Jimple, so
> I
> >> >> > never
> >> >> > directly look at the Java source code or the AST.  I only work with
> >> >> > the
> >> >> > resulting Jimple code.  Can I add the SourceLnPosTag to the Jimple
> >> >> > statements without creating another transformer?  (For example
> using
> >> >> > -keep-line-number input command for line number tag)
> >> >>
> >> >> Yes, simply pass -keep-line-number as an argument to
> >> >> soot.Main.main(..) when you call it.
> >> >>
> >> >> Eric
> >> >> --
> >> >> Eric Bodden
> >> >> Sable Research Group, McGill University
> >> >> Montréal, Québec, Canada
> >> >
> >> >
> >>
> >>
> >>
> >> --
> >> Eric Bodden
> >> Sable Research Group, McGill University
> >> Montréal, Québec, Canada
> >
> >
>
>
>
> --
> Eric Bodden
> Sable Research Group, McGill University
> Montréal, Québec, Canada
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.cs.mcgill.ca/pipermail/soot-list/attachments/20090722/4fa25033/attachment.html 


More information about the Soot-list mailing list