[Soot-list] Call-Graph target edge - Determining target class
Irineu Martins de Lima Moura
imlm2 at cin.ufpe.br
Wed Jul 20 18:21:55 EDT 2011
I believe he would want to implement this
interface<http://www.sable.mcgill.ca/soot/doc/soot/jimple/toolkits/callgraph/EdgePredicate.html>
and
pass it to a Filter rather than subclassing the Filter class itself. :)
The rest is just like Eric said.
2011/7/20 Eric Bodden <bodden at st.informatik.tu-darmstadt.de>
> Hi John.
>
> Yes, this is possible. The easiest way should be like this:
>
> Define a filter over the edges. You can do so by subclassing this class:
>
> http://www.sable.mcgill.ca/soot/doc/soot/jimple/toolkits/callgraph/Filter.html
>
> Then the filter can check if the declaringClass of the target is an
> applicationClass:
> target.getDeclaringClass().isApplicationClass()
>
> That should be all.
>
> Eric
>
> On 20 July 2011 17:53, John Dee <jdsoot at hotmail.com> wrote:
> > Hi all.
> > I have a question regarding call graphs. I'm looking to build a call
> graph
> > for a method in my java source code.
> > Supposing I have 2 simple classes like so.
> >
> > package com;
> > import com.foo.Bar;
> > public class Foo {
> > public void doJaa() {
> > StringBuilder s = new StringBuilder("Silly");
> > s.append(" String");
> > Bar b = new Bar();
> > b.print(s.toString());
> > }
> > }
> >
> > package com.foo;
> > public class Bar {
> > public void print(String s) {
> > System.out.println(s);
> > }
> > }
> > Imagine I want to build a call graph starting with method 'doJaa' in
> class
> > Foo. I can get an edge iterator using the method
> > 'edgesOutOf(dooJa);'. My question is this - Is it possible to tell Soot
> to
> > ignore target methods that are part of Binary classes?
> > So, in the above example, I'm not interested in including the
> StringBuilder
> > 's.append(" String");' method, nor the StringBuilder 'new
> > StringBuilder("Silly");'
> > constructor in the call graph, as these are to binary class files
> included
> > on the java class path. Instead, I want to include the 'b.print()' method
> > and 'new Bar()' constructor in the call graph.
> > In other words, I'm only interested in examining source code methods in
> the
> > call graph. Is this possible?
> > Many Thanks
> > JD
> > _______________________________________________
> > Soot-list mailing list
> > Soot-list at sable.mcgill.ca
> > http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
> >
> >
>
>
>
> --
> Dr. Eric Bodden, http://bodden.de/
> Principal Investigator in Secure Services at CASED
> Coordinator of the CASED Advisory Board of Study Affairs
> PostDoc at Software Technology Group, Technische Universität Darmstadt
> Tel: +49 6151 16-5478 Fax: +49 6151 16-5410
> Mailing Address: S2|02 A209, Hochschulstraße 10, 64289 Darmstadt
> _______________________________________________
> Soot-list mailing list
> Soot-list at sable.mcgill.ca
> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>
--
------------------------------------------------------
Irineu Martins de Lima Moura
Computer Science undergraduate at Universidade Federal de Pernambuco
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.cs.mcgill.ca/pipermail/soot-list/attachments/20110720/232ab27a/attachment-0001.html
More information about the Soot-list
mailing list