JNI Program Analysis with Automatically Extracted C Semantic Summary
From Oracle JVM to Android Runtime, most Java runtime environments officially support Java Native Interface (JNI) for interaction between Java and C. Using JNI, developers can improve Java program performance or reuse existing libraries implemented in C. At the same time, differences between the languages can lead to various kinds of unexpected bugs when developers do not understand the differences or comprehensive interoperation semantics completely. Furthermore, existing program analysis techniques do not cover the interoperation, which can reduce the quality of JNI programs. We propose a JNI program analysis technique that analyzes Java and C code of JNI programs using analyzers targeting each language respectively. The C analyzer generates a semantic summary for each C function callable from Java and the Java analyzer constructs call graphs using the semantic summaries and Java code. In addition to the call graph construction, we extend the analysis technique to detect four bug types that can occur in the interoperation between the languages. We believe that our approach would be able to detect genuine bugs as well as improve the quality of JNI programs.
Tue 16 JulDisplayed time zone: Beijing, Chongqing, Hong Kong, Urumqi change
09:30 - 10:35 | |||
09:30 16mDay opening | Openning Doctoral Symposium | ||
09:46 16mDoctoral symposium paper | On the Correctness of GPU Programs Doctoral Symposium Chao Peng University of Edinburgh, UK | ||
10:02 16mDoctoral symposium paper | JNI Program Analysis with Automatically Extracted C Semantic Summary Doctoral Symposium Sungho Lee KAIST, South Korea | ||
10:18 16mDoctoral symposium paper | Identifying Error Code Misuses in Complex System Doctoral Symposium Wensheng Tang The Hong Kong University of Science and Technology |