Есть ли какой-либо инструмент для анализа статического кода, который обнаруживает ошибки в строках подписи JNI (метода)? Например, что следующий код не синтаксически правильный (отсутствует точка с запятой после полного имени квалифицирован класса):Анализ кода подписи JNI
(*env)->GetMethodID(env, someClassId, "aMethod","(ILfoo/bar/TheClass)V");
редактировать: Инструмент анализа кода не требуется, чтобы проверить наличие обув/бар/TheClass, но проверяйте только строку для действительного синтаксиса в соответствии со спецификацией JNI.
Основой этого вопроса является то, что приведенный выше код вызвал ошибку сегментации. Это всегда раздражает отладочную ситуацию, но статический анализ должен быть довольно простым в этом случае, экономя много времени.
+1, хороший вопрос! Но не имеет ли API JNI методы для получения имени имени класса в виде строки? (редактирование: есть: 'javap') – fge
@fge право, спасибо. Но это не помогает существующим проектам, и это не удобно при создании нового кода. Это заканчивается использованием copy/paste и не подтверждает правильность кода. – Alexander
Приведенный выше код не должен вызывать ошибку сегментации. Это приведет к ошибке проверки ошибок. Вот где вы должны направлять свое внимание, это и модульное тестирование, всегда важно с JNI. – EJP