[Soot-list] How to obtain the topological graph in the transactional transformation phase (wjtp.tn)?

Richard L. Halpert richard.halpert at mail.mcgill.ca
Sat Nov 8 11:57:08 EST 2008


Marco,
Well, that's not really possible right now, but if you're willing to use a
nightly build (rather than a released version of Soot), then I can check-in
some way to access the graph (hopefully today).  Currently, the graph is
created as a local variable during the wjtp.tn phase, but I could store in
it a static variable and make it accessible by something like:
soot.jimple.toolkits.thread.synchronization.LockAllocator.v().getInterferenceGraph(),
which you could call from your code after running Soot.

Right now the interference graph doesn't implement any normal graph-like
interface.  I'll see if I can throw one on there quickly, but if not, I'll
send you some info on how to use the data structure in its current form.

-Rich

On Sat, Nov 8, 2008 at 8:11 AM, Marco Bakera <marco.bakera at tu-dortmund.de>wrote:

> Thanks for that fast help. That's a commandline that looks more like Soot.
> ;)
>
> Is it possible to obtain the generated graph directly by using Soot's API?
> I
> would like to process this graph further in my Java application.
>
>
> Thanks for help and greetings from Germany,
> Marco.
>
> On Friday 07 November 2008 18:51:51 Richard L. Halpert wrote:
> > Copying this to the list, since it may be helpful to others.
> >
> > On Fri, Nov 7, 2008 at 9:50 AM, Richard L. Halpert <
> >
> > richardlhalpert at gmail.com> wrote:
> > > The main problem is that you need to run in whole-program mode or wjtp
> > > will not be run.  You also should use Spark for points-to analysis.
>  Try
> > > this:
> > >
> > > java -Xmx1024m soot.Main -cp
> > >
> .:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/jre/lib/jce.jar:$JAVA_HOME/jre/lib
> > >/jsse.jar -w --app -p cg.cha enabled:false -p cg.spark enabled:true -p
> > > wjtp.tnenabled:true -p wjtp.tn locking-scheme:leave-original -p
> wjtp.tn
> > > do-tlo:false -p wjtp.tndo-mhp:true -p wjtp.tn print-graph:true
> > > YourMainClass
> > >
> > > The print-graph:true option should cause Soot to print a .dot file to
> > > stdout (with a prefix on every line, which you will need to remove).
>  You
> > > will need the dot program to turn the .dot file into a graphic (it
> > > supports all kinds of outputs - png, svg, ps, etc.).
> > >
> > > -Rich
> > >
> > >
> > > On Fri, Nov 7, 2008 at 7:53 AM, Marco Bakera
> > > <marco.bakera at uni-dortmund.de
> > >
> > > > wrote:
> > >>
> > >> Hey everybody,
> > >>
> > >> I am currently looking for locking information in java code and
> stumpled
> > >> upon
> > >> your transactional transformation phase and especially the topological
> > >> graph
> > >> that will be created here.
> > >>
> > >> I tried to get some information about the transactional regions in
> java
> > >> programs by calling
> > >>
> > >> java soot.Main -p wjtp.tn on -p wjtp.tn locking-scheme:leave -p
> wjtp.tn
> > >> print-graph:true java.lang.Integer
> > >>
> > >> but did not get the desired topological graph.
> > >>
> > >> Do you have any suggestions what went wrong?
> > >>
> > >> Thanks for help.
> > >>
> > >>
> > >> Best regards,
> > >> Marco.
> > >>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.CS.McGill.CA/pipermail/soot-list/attachments/20081108/b2e2f41f/attachment.htm


More information about the Soot-list mailing list