harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ilya Berezhniuk (JIRA)" <j...@apache.org>
Subject [jira] Created: (HARMONY-4689) [drlvm][jvmti] JVMTI Extension: Native Code Access Interface (NCAI) implementation
Date Wed, 29 Aug 2007 00:31:30 GMT
[drlvm][jvmti] JVMTI Extension: Native Code Access Interface (NCAI) implementation

                 Key: HARMONY-4689
                 URL: https://issues.apache.org/jira/browse/HARMONY-4689
             Project: Harmony
          Issue Type: New Feature
          Components: Contributions, DRLVM
            Reporter: Ilya Berezhniuk

The contribution consists of the following component: 
  - Native Code Access Interface (NCAI) implementation

JVMTI enables debugging of Java frames but ignores native frames (e.g., frames within JNI
code).  NCAI is a prototype JVMTI extension interface that allows the VM to participate in
debugging operations on native code as well.  At EclipseCon 2007, we demoed this NCAI component
along with a seamless mixed Java/JNI debugger that consumes this interface for an Eclipse
extension (http://www.eclipsecon.org/2007/index.php?page=sub/&id=4129).  We wanted to
donate this component which was prototyped using Apache Harmony so that it could help (a)
promote mixed Java/JNI debugging discussions and (b) be harvested for potential additional
uses within Apache Harmony.

Below are some details on NCAI implementation.

1) Basic features provided by the current NCAI implementation:

- Setting breakpoints in native code
- Single stepping through native code with 3 step modes: STEP_INTO, STEP_OVER and STEP_OUT
- Trapping OS-level signals/exceptions
- Trapping loading and unloading of dynamic/shared libraries
- Getting information about loaded dynamic/shared libraries
- Getting list of threads running in VM process
- OS-level threads suspending/resuming/terminating
- Processor registers inspection and modification (for suspended threads)
- Getting call stack for suspended threads including both Java and native frames
- Memory inspection and modification
- Getting OS-level signals/exceptions information

2) Harmony base:

- Bulk contains a patch for existing DRLVM code and a set of new files arranged with DRLVM
directory structure
- Patch was rebased to apply over DRLVM revision r567700

3) Current implementation provides all the features listed above for IA-32 architecture only.
DRLVM remains buildable on other platforms, but not all the features will work.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message