ネイティブコードは、元は C、C++、または Fortran で記述されたコンパイル済みのコードで、Java コードから Java Native Interface (JNI) を介して呼び出されます。次の例は、デモプログラム jsynprog に関連付けられたファイル jsynprog.java の注釈付き逆アセンブリからの抜粋です。
5. class jsynprog <Function: jsynprog.<init>()> 0. 5.504 jsynprog.JavaCC() <Java native method> 0. 1.431 jsynprog.JavaCJava(int) <Java native method> 0. 5.684 jsynprog.JavaJavaC(int) <Java native method> 0. 0. [ 5] 00000000: aload_0 0. 0. [ 5] 00000001: invokespecial <init>() 0. 0. [ 5] 00000004: return |
ネイティブメソッドは Java ソースに含まれていないため、jsynprog.java の注釈付きソースの先頭には、行番号なしで命令を示す特別なインデックス行を使って各 Java ネイティブメソッドが表示されます。
0. 5.504 <Function: jsynprog.JavaCC(), instructions without line numbers> 0. 1.431 <Function: jsynprog.JavaCJava(int), instructions without line numbers> 0. 5.684 <Function: jsynprog.JavaJavaC(int), instructions without line numbers> |
実際の注釈付きソースの表示では、インデックス行は折り返されません。