JustKernel
Ray Of Hope
Java Platform Debugging Architecture
JPDA (Java Platform Debugging Architecture) is a multi-tiered debugging architecture that allows tools developers to easily create debugger applications which run probably across platforms, virtual machine(VM ) implementations and JDK versions.
JPDA consists of three layers:
- JVMTI – defines a debugging services a VM provides
- JDWP – defines the communication between debugee & debugger process..
- JDI – defines a high level java language interface which tool developers can easily use to write remote debuffer applications</li>
Components:
- Debugee: The debugee is the process being debugged. It consists of the application being debugged, the VM running the application and the back-end of the debugger.<
- back-end: The backend of the debugger is responsible for communicating requests from the debugger front-end to the debugee VM and for communicating the response to these requests (including events) to the front-end. The back-end communicates with front-end over communication – channel using the java debug wire protocol. The back-end communicates with the debugee VM using JVMTI.
- Communication Channel: is the link between the front-end & back-ends of the debugger. It can be thought of as consisting of two mechanisms. – A Connector(a JDI object that is the means by which a connection is established between the front-end and back-end) and A Transport (mechanism used to move bits between the front-end and back-end)
Debugger Interfaces:
- JVMTI: A native interface implemented by VM. Defines the services a VM provide for debugging. Includes requests for information(for eg. Current stack frame), actions (for eg. set oa breakpoint), and notifications (for eg. when a breakpoint is hit).
- Java debug wire protocol (JDWP): defines the format of information and requests transferred between the debugee process and the debugger front-end.
Anshul Makkar
mail your query: anshul_makkar@justkernel.com
Leave a Reply