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 Throwable
s 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
Throwable s 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
Throwable s 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
Throwable s 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, mightThrowExplicitly
public 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)
Throwable
s as the set
of types that the specified unit might throw, regardless of the
unit's identity.mightThrow
in interface ThrowAnalysis
mightThrow
in class AbstractThrowAnalysis
u
- Unit
whose exceptions are to be returned.Throwable
s.public ThrowableSet mightThrowImplicitly(ThrowInst t)
Throwable
s 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 ThrowAnalysis
mightThrowImplicitly
in class AbstractThrowAnalysis
t
- the ThrowInst
whose exceptions are to be returned.Throwable
s.public ThrowableSet mightThrowImplicitly(ThrowStmt t)
Throwable
s 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 ThrowAnalysis
mightThrowImplicitly
in class AbstractThrowAnalysis
t
- the ThrowStmt
whose exceptions are to be returned.Throwable
s.