Arun Sharma
This document details the design and implementation of
JVMDI (Java Virtual Machine Debugger Interface) with Electrical Fire.
1.
Introduction
2.
JVMDI, the API
3.
Design Issues
3.1 Native breakpoints or bytecode mechanism
3.2 Debugger thread Vs Event driven model
4.
Data Structures
4.1 Debugger object
4.2 PC to byte code mapping
4.3 Bytecode, local varible name -> location mapping
5.
Call Stack
6.
Threads
7.
Debug related options to the VM
8.
Implementation ideas and concerns
8.1 Java Frames
8.2 Operand Stack
9.
Implementation strategy
9.1 Propagation of Symbolic information
9.2 What happens when a breakpoint is hit ?
9.3 Finding the values of local variables at runtime
9.4 Flow of control
10.
Dependencies