public class PedanticThrowAnalysis extends AbstractThrowAnalysis
ThrowAnalysis that says that every unit can throw every
possible exception type. Strictly speaking, this is correct, since
the deprecated Thread.stop(Throwable) method
allows one thread to cause any Throwable it wants to be
thrown in another thread, meaning that all Throwables may
arrive asynchronously from the perspective of the victim thread.| Constructor and Description |
|---|
PedanticThrowAnalysis(Singletons.Global g)
Constructs a
PedanticThrowAnalysis for inclusion in
Soot's global variable manager, G. |
| Modifier and Type | Method and Description |
|---|---|
ThrowableSet |
mightThrow(Unit u)
Returns the set of all
Throwables as the set
of types that the specified unit might throw, regardless of the
unit's identity. |
ThrowableSet |
mightThrowImplicitly(ThrowInst t)
Returns the set of all
Throwables as the set
of types that a throw instruction may throw implicitly,
that is, the possible types of errors which might arise in
the course of executing the throw instruction, rather
than the type of the throw's operand. |
ThrowableSet |
mightThrowImplicitly(ThrowStmt t)
Returns the set of all
Throwables as the set
of types that a throw statement may throw implicitly,
that is, the possible types of errors which might arise in
the course of executing the throw statement, rather
than the type of the throw's operand. |
static PedanticThrowAnalysis |
v()
Returns the single instance of
PedanticThrowAnalysis. |
mightThrowExplicitly, mightThrowExplicitlypublic PedanticThrowAnalysis(Singletons.Global g)
PedanticThrowAnalysis for inclusion in
Soot's global variable manager, G.g - guarantees that the constructor may only be called
from Singletons.public static PedanticThrowAnalysis v()
PedanticThrowAnalysis.PedanticThrowAnalysis.public ThrowableSet mightThrow(Unit u)
Throwables as the set
of types that the specified unit might throw, regardless of the
unit's identity.mightThrow in interface ThrowAnalysismightThrow in class AbstractThrowAnalysisu - Unit whose exceptions are to be returned.Throwables.public ThrowableSet mightThrowImplicitly(ThrowInst t)
Throwables as the set
of types that a throw instruction may throw implicitly,
that is, the possible types of errors which might arise in
the course of executing the throw instruction, rather
than the type of the throw's operand.mightThrowImplicitly in interface ThrowAnalysismightThrowImplicitly in class AbstractThrowAnalysist - the ThrowInst whose exceptions are to be returned.Throwables.public ThrowableSet mightThrowImplicitly(ThrowStmt t)
Throwables as the set
of types that a throw statement may throw implicitly,
that is, the possible types of errors which might arise in
the course of executing the throw statement, rather
than the type of the throw's operand.mightThrowImplicitly in interface ThrowAnalysismightThrowImplicitly in class AbstractThrowAnalysist - the ThrowStmt whose exceptions are to be returned.Throwables.