[Soot-list] Problems with nested try..catch..finally?
Attila Bartha
at.bartha at gmail.com
Fri Oct 9 05:22:27 EDT 2009
Hi
I have some bytecode that soot.coffi.CFG cannot process to generate the
Jimple IR: Soot throws a NullpointerException in CFG.adjustExceptionTable().
The code being analyzed has 3 nested try catch finally blocks.
Unfortunately, I have not been able to isolate the code from the huge rest
yet.
Are there any known issues and limitations with regards to Exception
handling?
I looked at the code, and it seems that it occurs that for some cases,
exception_table_entry.start_inst can be null.
Here's the stack trace:
java.lang.NullPointerException
at
java.util.Hashtable.get(Unknown Source)
at
soot.coffi.CFG.adjustExceptionTable(CFG.java:775)
at
soot.coffi.CFG.eliminateJsrRets(CFG.java:351)
at
soot.coffi.CFG.<init>(CFG.java:83)
at
soot.coffi.CoffiMethodSource.getBody(CoffiMethodSource.java:87)
at
soot.SootMethod.getBodyFromMethodSource(SootMethod.java:84)
at
soot.SootMethod.retrieveActiveBody(SootMethod.java:338)
at
soot.PackManager.runBodyPacks(PackManager.java:776)
at
soot.PackManager.runBodyPacks(PackManager.java:457)
at
soot.PackManager.runBodyPacks(PackManager.java:376)
at
soot.PackManager.runPacks(PackManager.java:353)
at
soot.Main.run(Main.java:202)
at
soot.Main.main(Main.java:145)
Questions:
1. Is there a quick fix for this problem?
2. Is it possible to skip or replace the call of
soot.coffi.CFG.eliminateJsrRets()?
3. Why does dava not generate finally blocks? It generates another
try..catch instead.
Thank you for input
Attila
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.cs.mcgill.ca/pipermail/soot-list/attachments/20091009/46d02a9f/attachment.html
More information about the Soot-list
mailing list