[Soot-list] ExceptionalUnitGraph Multiple Heads! Is that a bug?

Ali Ghanbari microdeniz at gmail.com
Fri Jun 30 09:44:16 EDT 2017


Hello,

I noticed that a bunch of methods in JDK library have more than one head
node in their exceptional unit graphs. With a more careful examination, I
noticed that in all cases the methods are in one of this form:

static {
    try {
       I1; ...; In;
     } catch (...) {
       J1; ...; Jn;
     }
}

or

modifiers return-type method-name() {
    try {
       I1; ...; In;
     } catch (...) {
       J1; ...; Jn;
     }
}

or

modifiers return-type method-name() throws-clause  {
    try {
       I1; ...; In;
     } catch (...) {
       J1; ...; Jn;
     }
}

In which the heads become the instructions I1 and J1!

Does that mean that the methods have multiple entries? Is that a bug?

Can anyone explain, please?

Thank you.
PS: Similarly, once you construct exceptional unit graph for a method, many
of tails are not actually tails (e.g. when you throw an exception and
immediately catch it in a try-catch-block).
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.CS.McGill.CA/pipermail/soot-list/attachments/20170630/68536fcf/attachment.html>


More information about the Soot-list mailing list