1. 程式人生 > >Java程式的除錯原理及除錯體系JDPA

Java程式的除錯原理及除錯體系JDPA

基本原理

Java 程式都是執行在 Java 虛擬機器上的,我們要除錯 Java 程式,事實上就需要向 Java 虛擬機器請求當前執行態的狀態,並對虛擬機發出一定的指令,設定一些回撥等等,那麼 Java 的除錯體系,就是虛擬機器的一整套用於除錯的工具和介面。
我們要除錯一段Java程式,首先要知道執行該程式的Java虛擬機器程序執行在什麼機器上,然後就是要和這個程序建立連線,接下來才能進行除錯。
比如說,我們要除錯Android app,如果app是執行在真機上,那麼我們就要用和手機上的虛擬機器進行通訊,才能進行除錯。如果要除錯的是Android的註解處理器或者Android Gradle的編譯指令碼,那麼這段程式碼其實是執行在電腦上的,我們要知道執行這些指令碼的程式執行在哪個程序,進而才能和這個程序建立連線。

Java除錯體系-JPDA

Java除錯體系主要分成三個部分,分別是除錯者、被除錯者,以及中間的通訊協議,每一部分都有對應的介面協議。下圖可以清晰的描述他們的關係:

 

從上到下分別除錯者、通訊協議、被除錯者。
他們分別對應的協議是 Java 虛擬機器工具介面(JVMTI),Java 除錯線協議(JDWP)以及 Java 除錯介面(JDI)。

參考:http://www.ibm.com/developerworks/cn/java/j-lo-jpda1/



作者:ladder_builder
連結:https://www.jianshu.com/p/50709391fbe9
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。