ISSTA 2019
Mon 15 - Fri 19 July 2019 Beijing, China
Tue 16 Jul 2019 10:02 - 10:18 at Meeting Room 2 - Session 1

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 Jul

Displayed time zone: Beijing, Chongqing, Hong Kong, Urumqi change

09:30 - 10:35
09:30
16m
Day opening
Openning
Doctoral Symposium

09:46
16m
Doctoral symposium paper
On the Correctness of GPU Programs
Doctoral Symposium
Chao Peng University of Edinburgh, UK
10:02
16m
Doctoral symposium paper
JNI Program Analysis with Automatically Extracted C Semantic Summary
Doctoral Symposium
Sungho Lee KAIST, South Korea
10:18
16m
Doctoral symposium paper
Identifying Error Code Misuses in Complex System
Doctoral Symposium
Wensheng Tang The Hong Kong University of Science and Technology