This document introduces the Native Code Access Interface and
its implementation inside the DRL virtual machine.
Some Java* applications need to access native code via the
Java* Native Interface (JNI) 
to access native code.
Common Java* debuggers, such as Eclipse*
and NetBeans* debuggers, do not fully support debugging
native code written in programming languages like C/C++.
Some techniques, like the CDT plugin for Eclipse*,
are used for debugging native code in Java*
applications, but all of them have their own limitations.
Native Code Access Interface (NCAI) is a different approach to
debugging JNI code in Java* applications.
Together with JVMTI  it provides in-process debugging
of both JIT-compiled and interpreted Java* bytecode,
and native JNI code.
NCAI interface is a JVMTI-like interface exposed by DRLVM
through a JVMTI extension. See detailed
NCAI description for interface details.
plugin utilizing NCAI interface is available at
Intel* What If site .
This plugin supports Java* and C/C++, and builds
into Eclipse* IDE re-using JDT and CDT debug views.
The Porting Layer contains native modules enumeration
and memory access functions for NCAI needs (both are also used now
by Crash Handler), and OS-level
thread operations including suspending and resuming of threads.
NOTE: On Linux* OS, the SIGUSR2 signal is shared between
NCAI threading and port_thread_yield_other() function
The encoder has been extended to enable the decoder to disassemble
native code; this functionality is used by NCAI single stepping
and by the Crash Handler.