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

[no subject]



Received: from relay10.cs.mcgill.ca (relay10.CS.McGill.CA [132.206.3.88])
	by umbra.CS.McGill.CA (8.11.6+Sun/8.11.6) with ESMTP id h2N6ttx04691
	for <soot-list@sable.mcgill.ca>; Sun, 23 Mar 2003 01:55:55 -0500 (EST)
Received: from post.tau.ac.il (post.tau.ac.il [132.66.16.11])
	by relay10.cs.mcgill.ca (Postfix) with ESMTP id 16BBA536F1D
	for <soot-list@sable.mcgill.ca>; Sun, 23 Mar 2003 01:55:55 -0500 (EST)
Received: from lapyahav (lap-yahave.math.tau.ac.il [132.67.3.227])
	by post.tau.ac.il (Postfix) with ESMTP id 3B3622DA5D3
	for <soot-list@sable.mcgill.ca>; Sun, 23 Mar 2003 08:55:55 +0200 (IST)
From: "Eran Yahav" <yahave@post.tau.ac.il>
To: <soot-list@sable.mcgill.ca>
Subject: Reachable methods in a multithreading setting
Date: Sun, 23 Mar 2003 08:54:20 +0200
Message-ID: <000001c2f109$07a46850$e3034384@lapyahav>
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3 (Normal)
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook, Build 10.0.3416
Importance: Normal
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106

Hi, 

I'm using
"soot.jimple.toolkits.invoke.MethodCallGraph.getMethodsReachableFrom(methodCollection)"
to get a collection of methods reachable from a "start-method" in
the application. It seems that this does not take multithreading
into account, and methods of threads started by the start-method
are not included in the resulting collection.

I understand that the run() method of the started threads is never
explicitly invoked from the start-method, which may pose a problem in
using the MethodCallGraph.

- Is there an alternative API for obtaining the collection of ALL
reachable methods?
- Its probably possible to get all implemented "run()" methods in
subclasses of class Thread or classes implementing Runnable, and check
which one of these may be (implicitly) invoked from the start-method,
collection of ALL reachable methods can be then obtained by calling
getMethodsReachableFrom with a collection containing these run()
methods. However, I would like to avoid such brute-force technique if
possible. 

Thanks,
Eran



----------------------------------------------------------------------------
Eran Yahav                 | Two types have compatible type 
yahave@post.tau.ac.il      | if their types are the same.
www.cs.tau.ac.il/~yahave   | -- ANSI C Standard, 3.1.2.6.
----------------------------------------------------------------------------