[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Fwd]: Reloading classes in Soot




---------- Forwarded message ----------
Date: Wed, 9 Jun 2004 02:32:15 +0900
From: Jung-joon Kim <jjkim@cse.hanyang.ac.kr>
To: Patrick LAM <plam@sable.mcgill.ca>
Subject: Dear LAM, about soot mail list

============== mail ignored ================
Subject: Reloading classes in soot

Hi, everyone.

We want to reload classes in Soot with different CLASSPATH. because, We
have several programs to analyze which use different version of a same
class and we want analyze these programs at once, with a single
instance(VM) of analyzer (which use Soot framework.)

But, It seems that Soot manage class cache internally. As a result, In the
following code, class Test loaded once only.

import soot.*;

public class Test {
    public static void main(String[] args) {
        G.v().Options().set_verbose(true);

        Scene.v().loadClassAndSupport("Test");

        Scene.v().setSootClassPath("/other/places");

        System.out.println("Now, I want to re-load class");

        // doesn't reload Test at this point due to cache of soot
        Scene.v().loadClassAndSupport("Test");
    }
}


Is there any method to reset internal class cache in soot? Is it only way
to start in another process(other VM)?


Sincerely, yours.
=============================
--
Jung-joon Kim
Programming Languages Lab.
Department of Computer Science and Engineering
Hanyang University.

email. jjkim@cse.hyu.ac.kr