[Soot-list] java.lang.VerifyError

Cheng Zhang cheng.zhang.stap at gmail.com
Thu Sep 6 03:45:04 EDT 2012


Hi,

I do not think the java.lang.Object type could cause the problem.

You may use tools like javap to view the generate bytecode or
use some Java decompiler to view the corresponding source code
(if it can decompile the bytecode successfully).

Best,
Cheng

On Thu, Sep 6, 2012 at 3:31 PM, 左小强 <xiaoqiang861025 at yahoo.cn> wrote:

> Hi Richard,
>
> Thanks for your reply. But I can't understand what you mean. Can you
> explain your point further?
>
> Actually I think the problem is that here I use *java.lang.Object* as the
> parameter type. I doubt whether it's not compitable with the Jimple *Value
> * type.
>
> anyway, thank you.
>
>
> Zhiqiang
>
> --- *12年9月5日,周三, Richard Xiao <richardxx at cse.ust.hk>* 写道:
>
>
> 发件人: Richard Xiao <richardxx at cse.ust.hk>
> 主题: Re: [Soot-list] java.lang.VerifyError
> 收件人: "左小强" <xiaoqiang861025 at yahoo.cn>
> 抄送: "soot" <soot-list at sable.mcgill.ca>
> 日期: 2012年9月5日,周三,下午2:13
>
>
> Your insertion violates some Java specifications. For example, in a
> constructor function, the call the super constructor must be the first
> statement. However, you place your instrumentation at the first position,
> hence it invalidates the verifier.
>
> best,
> richardxx
>
>
> On Wed, Sep 5, 2012 at 1:11 PM, 左小强 <xiaoqiang861025 at yahoo.cn<http://mc/compose?to=xiaoqiang861025@yahoo.cn>
> > wrote:
>
> Hi all,
>
> I tried to obtain the runtime value of the operand in ConditionExpr
> (IfStmt). Therefore I use Soot to instrument the class file.
>
> I intend to insert the following function into the class file:
>
> *   public static void appendConExpr(java.lang.Object op1)*
>
> using the following statements:
>
> *   InvokeExpr conditionExpr = Jimple.v().newStaticInvokeExpr(*
> * traceAppendConExpr.makeRef(), *
> *                        ((BinopExpr) ((IfStmt)
> stmt).getCondition()).getOp1());*
> *  Stmt conditionStmt = Jimple.v().newInvokeStmt(conditionExpr);*
> *  units.insertBefore(conditionStmt, stmt);*
>
> The instrumentation phase is OK, however when i run the instrumented
> program, the Exception "java.lang.VerifyError" is thrown.
>
> Can anyone tell me the reason and how to fix it? Thanks in advance!
>
>
> Zhiqiang
>
> *
> *
>
>
> _______________________________________________
> Soot-list mailing list
> Soot-list at sable.mcgill.ca <http://mc/compose?to=Soot-list@sable.mcgill.ca>
> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>
>
>
>
> --
> Richard Xiao Xiao
> PhD Student @ CSE @ Hong Kong University of Science and Technology
> www.cse.ust.hk/~richardxx
>
>
> _______________________________________________
> Soot-list mailing list
> Soot-list at sable.mcgill.ca
> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.cs.mcgill.ca/pipermail/soot-list/attachments/20120906/14e4de13/attachment-0001.html 


More information about the Soot-list mailing list