I am currently using SootUp to analyze some real-world programs, and I have encountered some issues with the untyped IR building algorithm, LocalSplitter, and TypeAssigner. Specifically, these components fail to halt in some test cases, such as when I tested with jre11.
jdk.internal.jimage.ImageStringsReader :: mutf8FromString will cause LocalSplitter not halt / comsume unreasonable time
java.lang.Character$UnicodeScript :: <clinit> will cause TypeAssigner not halt / comsume unreasonable time. It seems that the real problem occurs in the LocalNameStandardizer.
sun.jvm.hotspot.ui.classbrowser.HTMLGenerator :: genHTMLListForFields, with desc (Lsun/jvm/hotspot/oops/InstanceKlass;)Ljava/lang/String;, will cause AsmMethodSource :: convert not halt / comsume unreasonable time. It worth noting that the worklist will be full of elements, even through the length of instructions list is just 172. Please refer to the attached screenshot for more details.
I would like to suggest performing some tests before releasing this framework, as the failed/unhalted cases are numerous and cannot be excluded by hand. I hope this feedback is helpful in improving the quality of SootUp.
Dear SootUp team,
I am currently using SootUp to analyze some real-world programs, and I have encountered some issues with the untyped IR building algorithm, LocalSplitter, and TypeAssigner. Specifically, these components fail to halt in some test cases, such as when I tested with jre11.
jdk.internal.jimage.ImageStringsReader :: mutf8FromString
will causeLocalSplitter
not halt / comsume unreasonable timejava.lang.Character$UnicodeScript :: <clinit>
will causeTypeAssigner
not halt / comsume unreasonable time. It seems that the real problem occurs in theLocalNameStandardizer
.sun.jvm.hotspot.ui.classbrowser.HTMLGenerator :: genHTMLListForFields
, with desc(Lsun/jvm/hotspot/oops/InstanceKlass;)Ljava/lang/String;
, will causeAsmMethodSource :: convert
not halt / comsume unreasonable time. It worth noting that the worklist will be full of elements, even through the length ofinstructions
list is just172
. Please refer to the attached screenshot for more details.I would like to suggest performing some tests before releasing this framework, as the failed/unhalted cases are numerous and cannot be excluded by hand. I hope this feedback is helpful in improving the quality of SootUp.
The sootup version I used:
The jre11 version info: