[Soot-list] Exception Analysis
John Jorgensen
jorgnsn at lcd.uregina.ca
Wed Oct 17 14:45:06 EDT 2007
>>>>> "eric.bodden" == Eric Bodden <eric.bodden at mail.mcgill.ca> writes:
eric.bodden> In fact it is true that *certain*
eric.bodden> exceptions can be thrown at every single
eric.bodden> statement, e.g. exceptions of type
eric.bodden> OutOfMemoryError. The default exception analysis
eric.bodden> encodes this soundly.
Actually (in the spirit of pedantry) *all* exceptions have the potential to be
thrown at every single statement, since, to quote the
documentation of PedanticThrowAnalysis:
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
eric.bodden> There is a constructor
eric.bodden> ExceptionalUnitGraph(Body,ThrowAnalysis) that
eric.bodden> you can use to create an exceptional unit graph
eric.bodden> with a "real" throw analysis. The default is a
eric.bodden> pedantic throw analysis, which causes your
eric.bodden> problems:
If I remember correctly, if you're calling your analyses via
soot.Main (rather than using soot as a library), there are
command-line options to change the default behaviour of the
ExceptionalUnitGraph constructor; see the "-throw-analysis",
"-omit-excepting-unit-edges", and "-trim-cfgs" options in
http://www.sable.mcgill.ca/soot/tutorial/usage/index.html
(or "soot --help"). You probably want "-trim-cfgs".
More information about the Soot-list
mailing list