[Soot-list] soot

mbatch at cs.mcgill.ca mbatch at cs.mcgill.ca
Sat Oct 7 04:12:20 EDT 2006


> I am using soot to find all the methods which have the returned value in
> one class(com.oreilly.struts.storefront.security.LoginAction). From the
> code, we can find there is only one  method ("execute") which has returned
> value . However, when I run my program, besides the method "execute",
> there is another method called "class$", which returns "r0", the signature
> is "< com.oreilly.struts.storefront.security.LoginAction: java.lang.Class
> class$( java.lang.String)>". My program is ok for all other 5 classes.

I highly doubt that Soot is just making up a method for the fun of it.
Therefore, the obvious answer is that the method "class$" actually exists.
Are you sure you are using a classfile generated from the source code you
displayed, or are you operating on a classfile that was distributed to you
(i.e. you did not compile it yourself)?

If you want to know for sure use the "javap" disassembler tool to print
out a list of methods in the class. javap comes with the JDK. It will give
you method bytecode as well, if you want, with the -c option.

I'm pretty sure you are going to find that the class you are instrumenting
actually does have a "class$" method.

Hope this helps,

Michael

P.S. Meaningful email subject lines are nice.




More information about the Soot-list mailing list