[Soot-list] instrumenting with soot class by class

David Vollmar kavika at the-dave.com
Wed Apr 16 22:31:07 EDT 2008


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






More information about the Soot-list mailing list