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

Re: Verify classfile



Thanks for the help. Even though not thinking about the stack simplifies many 
transformations, I agree with James that it is possible to generate 
non-verifying bytecode using SOOT. For example, one pathological example would 
be having the following code fragment

tmp1 = new Java.Util.Vector;
virtualinvoke tmp1.<java.util.Vector: void addElement(java.lang.Object)>($foo);

in which case the verifier would complain - trying to using a vector instance 
without initializing it.

-amit

> Patrick LAM wrote:
> > Soot doesn't really provide any tools to check that the output of your
> > transformation's going to have any desirable properties.  At least,
> > being 3-address code, you can't generate stack height imbalances and
> > non-verifying bytecode, if that's any consolation at all.
> 
> Not sure this is true - I've generated non-verifying bytecode using SOOT.
> 
> - James
>