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

RichardLHalpert at gmail.com RichardLHalpert at gmail.com
Sat Nov 8 23:33:43 EST 2008


Marco,
Ok, I checked in a small change so that you can call  
soot.jimple.toolkits.thread.synchronization.LockAllocator.v().getInterferenceGraph()  
after invoking Soot from your code. There wasn't an existing graph  
interface in Soot that would be immediately appropriate for the  
interference graph, so I didn't do anything on that front just yet. You can  
use the CriticalSectionInterferenceGraph object directly. For historical  
reasons, the CriticalSectionInterferenceGraph is stored in a rather unusual  
way: as a set of groups of critical sections (nodes). Each group implements  
Iterable<CriticalSection>. The (bidirectional) edges to/from a node are  
stored in a field "public HashSet<CriticalSectionDataDependency> edges" on  
the CriticalSection. Naturally, each edge is therefore stored twice, once  
at each of its end nodes.

-Rich

On Nov 8, 2008 8:57am, "Richard L. Halpert"  
<richard.halpert at mail.mcgill.ca> wrote:
> 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/bbc9b69c/attachment.htm


More information about the Soot-list mailing list