背景
在日常的开发工程中可能需要排查线上Bug,此时远程DEBUG就发挥用处了,前提是保持
远程和本地的代码版本
是一致的。
原理
Java程序经过编译后的字节码是运行在JVM上的,通过JDWP将其和代码联系起来,提供给开发者一个可视化的UI环境进行调试,Java调试器架构如下所示。
Components Debugger Interfaces
/ |--------------|
/ | VM |
debuggee ----( |--------------| <------- JVM TI - Java VM Tool Interface
\ | back-end |
\ |--------------|
/ |
comm channel -( | <--------------- JDWP - Java Debug Wire Protocol
\ |
|--------------|
| front-end |
|--------------| <------- JDI - Java Debug Interface
| UI |