chord.analyses.thread
Class ThreadsAnalysis
java.lang.Object
chord.project.analyses.JavaAnalysis
chord.analyses.thread.ThreadsAnalysis
- All Implemented Interfaces:
- ITask
public class ThreadsAnalysis
- extends JavaAnalysis
Static analysis computing reachable abstract threads.
Domain A is the domain of reachable abstract threads.
The 0th element does not denote any abstract thread; it is a
placeholder for convenience.
The 1st element denotes the main thread.
The remaining elements denote threads explicitly created by
calling the java.lang.Thread.start() method; there is a
separate element for each abstract object to which the
this argument of that method may point, as dictated by
the points-to analysis used.
Relation threadAOCM contains each tuple (a,o,c,m) such that
abstract thread 'a' corresponds to abstract object 'o' and is
started at thread-root method 'm' in abstract context 'c'.
Thread-root method 'm' may be either:
- the main method, in which case 'o' and 'c' are both epsilon
(element 0 in domain C), or
- the java.lang.Thread.start() method, in which case
'o' is a non-epsilon element in domain C of the form [..., h]
where 'h' is the site at which the thread is allocated, and 'c'
may be epsilon (if the call graph is built using 0-CFA) or it
may be a chain of possibly interspersed call/allocation sites
(if the call graph is built using k-CFA or k-object-sensitive
analysis or a combination of the two).
- Author:
- Mayur Naik (mhn@cs.stanford.edu)
|
Method Summary |
void |
run()
Executes this analysis in a "classic" project. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
ThreadsAnalysis
public ThreadsAnalysis()
run
public void run()
- Description copied from interface:
ITask
- Executes this analysis in a "classic" project.
This method must usually not be called directly.
The correct way to call it is to call
ClassicProject.runTask(String) or
ClassicProject.runTask(ITask), providing
this analysis either by its name or its object.
- Specified by:
run in interface ITask- Overrides:
run in class JavaAnalysis