soot icon indicating copy to clipboard operation
soot copied to clipboard

Jimple parsing exception

Open michaelphop opened this issue 2 years ago • 0 comments

I have the following jimple code created by soot:

        $r4 = dynamicinvoke "apply" <java.util.function.Function ()>() <java.lang.invoke.LambdaMetafactory: java.lang.invoke.CallSite metafactory(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.invoke.MethodType,java.lang.invoke.MethodHandle,java.lang.invoke.MethodType)>(methodtype: java.lang.Object __METHODTYPE__(java.lang.Object), methodhandle: "REF_INVOKE_STATIC" <org.springframework.boot.SpringApplication: org.springframework.boot.BootstrapRegistryInitializer lambda$getBootstrapRegistryInitializersFromSpringFactories$0(org.springframework.boot.Bootstrapper)>, methodtype: org.springframework.boot.BootstrapRegistryInitializer __METHODTYPE__(org.springframework.boot.Bootstrapper));

When converting it to class (from jimple file) I get the exception: "[163,328] expecting: ')'" here: https://github.com/soot-oss/soot/blob/942712753267de03b1091a47d6360a7ebfc4333c/src/main/java/soot/JimpleClassSource.java#L109

Caused by: soot.jimple.parser.parser.ParserException: [163,328] expecting: ')'
	at soot.jimple.parser.parser.Parser.parse(Parser.java:1455)
	at soot.jimple.parser.JimpleAST.<init>(JimpleAST.java:60)
	at soot.JimpleClassSource.resolve(JimpleClassSource.java:64)

What can be the reason? (I made sure that the parentheses are balanced )

I passed this configuration as well:

set_src_prec(Options.src_prec_jimple)

michaelphop avatar Nov 09 '23 16:11 michaelphop