[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: is baf really first?



Patrick LAM <plam@sable.mcgill.ca> wrote:
> Well, if you don't split locals, then you get things that are untypeable.
> It's hard to give bytecode which has untypeable locals...  -p jb verbatim
> does work.

I suppose that was a bad example (I was trying to achieve a baf output
that would match the bytecode), but I did try others, including
verbatim -- which didn't work.

Looking at JimpleBody, I think Nathan is right when he says verbatim
automatically means no-splitting.  The documentation is a bit
ambiguous about this.

And now that I'm trying more phase options, I do indeed find some that
work and some that don't, so I'm sure it does make sense on a closer
look.

Thanks,
-N.

] soot -p jb verbatim -b A
Soot started on Sat Mar 02 20:03:06 EST 2002
Transforming A... java.lang.RuntimeException: Invalid type: .unknown
        at soot.baf.Baf$1.defaultCase(Baf.java:519)
        at soot.TypeSwitch.caseUnknownType(TypeSwitch.java:92)
        at soot.UnknownType.apply(UnknownType.java:71)
        at soot.baf.Baf.bafDescriptorOf(Baf.java:474)
        at soot.baf.internal.AbstractOpTypeInst.toString(AbstractOpTypeInst.java:129)
        at soot.AbstractUnit.toBriefString(AbstractUnit.java:128)
        at soot.jimple.DefaultStmtPrinter.printStatementsInBody(DefaultStmtPrinter.java:145)
        at soot.Body.printToImpl(Body.java:533)
        at soot.Body.printTo(Body.java:435)
        at soot.SootClass.printTo(SootClass.java:904)
        at soot.Main.handleClass(Main.java:1844)
        at soot.Main.run(Main.java:1557)
        at java.lang.Thread.run(Thread.java:484)

Soot finished on Sat Mar 02 20:03:16 EST 2002
Soot has run for 0 min. 10 sec.