是否有任何静态代码分析工具可以发现 JNI(方法)签名字符串中的错误?例如,以下代码在语法上不正确(完全限定类名后缺少分号):
(*env)->GetMethodID(env, someClassId, "aMethod","(ILfoo/bar/TheClass)V");
编辑:代码分析工具不需要检查 foo/bar/TheClass 的存在,而只需根据 JNI 规范检查字符串的有效语法。
这个问题的背景是,上面的代码触发了分段错误。这总是一个令人讨厌的调试情况,但在这种情况下静态分析应该很容易节省大量时间。