[Soot-list] Traverse a CFG based on a given test case

Dacong Yan tonywinslow1986 at gmail.com
Wed Jun 11 12:09:25 EDT 2014


I am not aware of anything that you can use directly. Perhaps others
who are more familiar with the code base can help you with that.

One example you can refer to is
(https://github.com/Sable/soot/blob/6ece52bdb193aa95180fff8838f14c63cf89cda3/src/soot/dava/toolkits/base/AST/structuredAnalysis/CP.java).
I have never read the code because I just found it by searching
"ConstantPropagation" on github.

Once you have a solution for constant propagation, you can use that
info to find and ignore dead code (e.g., some branches are no longer
feasible) as you traverse CFG. In other words, you don't have to
create explicitly a new CFG with unreachable code removed.

On Wed, Jun 11, 2014 at 11:56 AM, dingsun <xyz031702 at hotmail.com> wrote:
> Hi Yan,
>
> Many thanks for the suggestion!
>
> But shall I know if there is any implementation in Soot to handle this issue?
>
> Best regards,
> Ding Sun
>
>> On 2014年6月11日, at 23:51, "Dacong Yan" <tonywinslow1986 at gmail.com> wrote:
>>
>> Hi Ding,
>>
>> I think this paper might help you solve the problem:
>>  Constant propagation with conditional branches
>> (http://dl.acm.org/citation.cfm?id=103136)
>>
>> Thanks,
>> Tony
>>
>>> On Wed, Jun 11, 2014 at 6:22 AM, dingsun <xyz031702 at hotmail.com> wrote:
>>> Hi All,
>>>
>>> If I have a CFG generated by Soot and a test case, is it possible to
>>> traverse the branches that are accessible by that test case?
>>>
>>> For example, if there is a simple function:
>>>
>>> /*n1*/ void fun(int a, int b){
>>> /*n2*/   if(a>1 && b>3){
>>> /*n3*/      System.out.println("hello123");
>>>            }
>>> /*n4*/      System.out.println("hello456");
>>>           }
>>>
>>> And a given test case:  a=6, b=7,
>>>
>>> is it possible to use this test case to "guide" Soot to traverse the path:
>>> (n1, n2, n3, n4)
>>> is it possible to use this test case to "guide" Soot to avoid traversing the
>>> path (n1, n2, n4)
>>>
>>>
>>> Thanks a lot!
>>>
>>> Best regards,
>>> Ding Sun
>>>
>>>
>>> _______________________________________________
>>> Soot-list mailing list
>>> Soot-list at CS.McGill.CA
>>> https://mailman.CS.McGill.CA/mailman/listinfo/soot-list
>>
>>
>>
>> --
>> Dacong (Tony) Yan
>> Ph.D. Student
>> Computer Science and Engineering
>> The Ohio State University, Columbus
>> http://www.cse.ohio-state.edu/~yan



-- 
Dacong (Tony) Yan
Ph.D. Student
Computer Science and Engineering
The Ohio State University, Columbus
http://www.cse.ohio-state.edu/~yan


More information about the Soot-list mailing list