[Soot-list] Paddle Context information

Nouraldin I. Jaber njaber at purdue.edu
Tue Jul 22 14:13:37 EDT 2014


Hello Marc,

Thanks for your replay and for the offer :) yet I need to get to know paddle more first.

as for the question, the problem that I can only know the information about the call as a string and comparing that against a list of statements can get more that one result, for example if that call

specialinvoke $r18.<Pair: void <init>()>()

was in class A and B and "by coincidence" both used $r18 .. I won't be able to tell which one is the right call. that's why I was wondering if paddle can give more information that just printing the context call, for example a reference of type expr.

that's why I guess i still need to look more into object-sensitive usage for Paddle. It would be nice if there are some code examples for paddle's object sensitive context usage , and I will replay back with any updates I find.


Nour
 




Date: Mon, 21 Jul 2014 16:54:01 -0400
From: Marc-Andr? Laverdi?re
	<marc-andre.laverdiere-papineau at polymtl.ca>
Subject: Re: [Soot-list] Paddle Context information
To: soot-list at CS.McGill.CA
Message-ID: <53CD7DE9.7030104 at polymtl.ca>
Content-Type: text/plain; charset=ISO-8859-1

Hello Nouraldin,

Paddle has been essentially unmaintained for a while now. It would be
great if you choose to adopt it and become a maintainer :)

Back to your question, you can always get the method from the Scene and
iterate through the statements until you find the one you are interested
in. But it would probably be simpler to just use the list of locals :)

Marc-Andr? Laverdi?re-Papineau
Doctorant - PhD Candidate

On 07/20/2014 06:41 AM, Nouraldin I. Jaber wrote:
> Hello all,
> 
> I'm using Paddle object sensitive analysis with k=1 to gather information about pointers. What i'm trying to do is to get the information printed as context. for example:
> 
> 
> 
> 	BDDPointsToAnalysis ptapaddle = (BDDPointsToAnalysis) Scene.v().getPointsToAnalysis();
> 	BDDPointsToSet pts = (BDDPointsToSet) ptapaddle.reachingObjects(SOME_LOCAL);
> 	pts.forall(new P2SetVisitor() {
> 		@Override
> 		public void visit(ContextAllocNode arg0) {
> 			System.out.println(arg0.ctxt());   // this will print -for example- : specialinvoke $r18.<Pair: void <init>()>()
> 			}
> 		}
> 	});
> 
> 
> now is there any way to get this "specialinvoke $r18.<Pair: void <init>()>()" -or any other context back- to a normal JSpecialInvokeExpr so I can use $r18 to get further information using Paddle.
> 
> I tried casting it but it didn't work.
> 
> 
> thanks
> 
> Nour
> _______________________________________________
> Soot-list mailing list
> Soot-list at CS.McGill.CA
> https://mailman.CS.McGill.CA/mailman/listinfo/soot-list
> 


------------------------------

_______________________________________________
Soot-list mailing list
Soot-list at CS.McGill.CA
https://mailman.CS.McGill.CA/mailman/listinfo/soot-list


End of Soot-list Digest, Vol 111, Issue 76
******************************************


More information about the Soot-list mailing list