[Soot-list] Exception Analysis
John Jorgensen
jorgnsn at lcd.uregina.ca
Mon Oct 22 14:57:33 EDT 2007
>>>>> "irem" == irem <irem at nada.kth.se> writes:
irem> The analysis worked this way just fine. Now what I
irem> wonder is vmErrors. What does this mean? I checked the
irem> API spec and there one talks about VM_ERRORS. I do not
irem> know what these mean either.
Well, this is sort-of documented. There is javadoc in the source
for ThrowableSet.java
(http://svn.sable.mcgill.ca/viewcvs/soot/trunk/src/soot/toolkits/exceptions/ThrowableSet.java?rev=2734&view=markup):
/**
* <code>ThrowableSet</code> containing all the asynchronous
* and virtual machine errors, which may be thrown by any
* bytecode instruction at any point in the computation.
*/
final ThrowableSet VM_ERRORS;
But it isn't included in the HTML generated from the javadoc
comments because VM_ERRORS is package-private. You need to look
at the source for ThrowableSet to see that VM_ERRORS is the set
of the five exceptions:
java.lang.InternalError
java.lang.OutOfMemoryError
java.lang.StackOverflowError
java.lang.UnknownError
java.lang.ThreadDeath
The rationale for this group of errors is explained on page 6 of
technical report sable-tr-2003-3
(http://www.sable.mcgill.ca/publications/techreports/sable-tr-2003-3.pdf),
but the technical report calls them "asynchronous exceptions" rather
than VM errors.
I might try to think of some way to have the members of VM_ERRORS
appear in the API-documentation (ideally in a fashion
guaranteeing that the documentation stays consistent with any
changes to the implementation), but it's been long enough since
I've dealt with this code that I'm likely to mess things up
should I touch it.
More information about the Soot-list
mailing list