是否有任何靜態代碼分析工具發現JNI(方法)簽名字符串中的錯誤?例如,下面的代碼在語法上不正確的(缺少分號後全限定類名):JNI簽名代碼分析
(*env)->GetMethodID(env, someClassId, "aMethod","(ILfoo/bar/TheClass)V");
編輯:的代碼分析工具並不需要檢查foo的存在/酒吧/ theClass描述,但只能根據JNI規範檢查字符串是否有效。
這個問題的背景是,上面的代碼引發了分段錯誤。這總是一個令人討厭的調試情況,但在這種情況下,靜態分析應該非常簡單,可以節省大量時間。
+1,好問題!但是,JNI API沒有方法將類名簽名作爲字符串檢索? (編輯:有:'javap') – fge
@fge right,thanks。但是這對現有項目沒有幫助,創建新代碼時不方便。這最終使用複製/粘貼,並不證明代碼的正確性。 – Alexander
上面的代碼不應該觸發分段錯誤。之後缺少錯誤檢查會導致這種情況。這就是你應該引導你注意的地方,單元測試對於JNI來說是必不可少的。 – EJP