[Soot-list] instrumenting with soot class by class

Eric Bodden eric.bodden at mail.mcgill.ca
Wed Apr 16 22:50:10 EDT 2008


Or FastAOP:

http://sourceforge.net/projects/fastaop

On 16/04/2008, Chris Pickett <chris.pickett at mail.mcgill.ca> wrote:
> Hi David,
>
>  Maybe you could look at ASM.
>
>  http://asm.objectweb.org/
>
>  Cheers,
>  Chris
>
>
>  David Vollmar wrote:
>
> > Hi Eric!
> > Thanks for the quick reply!
> > I need to instrument almost every jimple instruction and I was assuming
> AspectJ only allows instrumentation around method entry and exit points.
> > Am I mistaken about that?
> >
> > The problem with the current approach that soot is taking is that for a
> large codebase the instrumentation takes really long since there does
> > not seem to be a built in mechanism that would allow for soot to detect
> that a class is already instrumented.
> > I was also considering whether it would be possible to change the behavior
> of 'internalTransform' method so that I can bail out of that method in case
> > I do not need to instrument the class again. Unfortunately, if I just
> return out of the internalTransform  method without changing the byte code,
> soot overwrites the
> > previously instrumented class with an un-instrumented version of the
> class.
> >
> > Do you think it would be possible (even for me) to modify the core soot
> code to allow for that kind of behavior?
> >
> > Thanks
> >
> > David
> >
> > Another
> > On Apr 16, 2008, at 8:17 PM, Eric Bodden wrote:
> >
> > > Hi, David.
> > >
> > > I have not heard of anybody ever trying this. My guess would be that
> > > this is hard to do. Soot attempts to resolve types as it converts a
> > > given class file into Jimple. This implies other, referenced, classes
> > > to be loaded, which in turn might give you some trouble.
> > >
> > > Probably the easiest tool for this kind of stuff would be AspectJ with
> > > its built-in load time weaver. Did you consider using that? Or is it
> > > too limited for you?
> > >
> > > Eric
> > >
> > > On 16/04/2008, David Vollmar <kavika at the-dave.com> wrote:
> > >
> > > > All,
> > > > I would like to instrument classes one at a time with soot by writing
> a
> > > > custom classloader that will decide which classes to instrument and
> then
> > > > load that instrumented class during the class loading process. This
> would
> > > > allow me to run code and only instrument the classes I care about and
> at the
> > > > same time not having to
> > > > re-instrument classes that have not changed.
> > > >
> > > > Unfortunately I can't seem to figure out how to call into soot so that
> I
> > > > can instrument a single class.
> > > >
> > > > Has anyone done anything like this? Any ideas? I would be very
> grateful for
> > > > any suggestions.
> > > >
> > > > Regards
> > > >
> > > > David
> > > > ------------------------------------
> > > >
> > > > David Vollmar
> > > > kavika at the-dave.com
> > > >
> > > >
> > > >
> > > >
> > > > _______________________________________________
> > > > Soot-list mailing list
> > > > Soot-list at sable.mcgill.ca
> > > >
> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
> > > >
> > > >
> > >
> > >
> > > --Eric Bodden
> > > Sable Research Group
> > > McGill University, Montréal, Canada
> > >
> >
> > David Vollmar
> > home: 303 494 5018
> > cell: 720 352 1111
> > kavika at the-dave.com
> >
> >
> >
> >
> > _______________________________________________
> > Soot-list mailing list
> > Soot-list at sable.mcgill.ca
> > http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
> >
>


-- 
Eric Bodden
Sable Research Group
McGill University, Montréal, Canada


More information about the Soot-list mailing list