[Soot-list] symbolic evaluation using soot

dingsun xyz031702 at hotmail.com
Sat Sep 18 09:07:26 EDT 2010


Dear Sir      I'm using soot(directly use the soot API of the jimple package ) to perform some symbolic evaluation and encountering some problems. For example, I have jimple code :
1. x= paramter0;2. y= x+1;3. z= function1();4. a= x+y+z;
I analyze the Value of each variable at each state,  and use the "setValue()" API to substitute the value. By doing so,  I will call value.toString() to obtain the "a" in a symbolic String form of "parameter0+ parameter0+1+ function1()".
This works fine for simple case. But dealing with complex real codes, the operation of "toString()" will fall into a deap loop of recursive function call. I trace in and find the situation is caused like following:Local a= b+ 2;b= a+3;a.toString() --> b.toString () +"2" --> a.toString()+"3"+ "2"--->..................

Is there anything I can do to avoid this ? What I currently did is to use a try {} catch(StackOverflow e){}   block to catch the deap loop and stop the toString() operation
Best Regards,Ding Sun 


 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.cs.mcgill.ca/pipermail/soot-list/attachments/20100918/3d6b4a85/attachment.html 


More information about the Soot-list mailing list