91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java程序調試的原理是什么

發布時間:2021-07-04 12:41:23 來源:億速云 閱讀:467 作者:Leah 欄目:大數據

這期內容當中小編將會給大家帶來有關java程序調試的原理是什么,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

Java程序調試跟c++類程序調試,存在顯著區別,Java基于虛擬機,所以調試本質是查看運行時,虛擬機狀態,而c,調試時,需要生成一個調試版程序,所有運行時狀態有這個調試程序來提供。

類eclipse,intellij,netbeans等圖形化ide都提供了一個調試器,可以調試java 程序,此類調試器,需基于java 的調試體系,來進行開發。它們只是一個殼,java 自帶jdb 控制臺調試命令。

JPDA(Java Platform Debugger Architecture)是 Java 平臺調試體系結構的縮寫,通過 JPDA 提供的 API,開發人員可以方便靈活的搭建 Java 調試應用程序。 JPDA 主要由三個部分組成:Java 虛擬機工具接口(JVMTI),Java 調試線協議(JDWP),以及 Java 調試接口(JDI)

它們的關系是調用者,被調用者,以及通訊層協議。

java程序調試的原理是什么

(被調試者)jvmti(Java Virtual Machine Debug Interface),調試的本質是通過jvmti,查看虛擬機運行狀態變量,設置回調等。

(通信層協議)JDWP(Java Debug Wire Protocol)是定義調試者與被調試者,之間的一個數據定義,他規定了后端調用的命令格式,以及前端返回數據的格式。jdwp.dll(jdwp.so)是sun的實現。

協議層只規定了數據格式,沒有對傳輸層進行約束,如同我們規定了貨物的打包、編碼、發送目拜訪格式。但是不限制是走快遞還是物流。所以傳輸層可以自定義,一般實現有2種

1. socket 方式,

2.以及在 Windows 上的 shared memory 方式。

當然,傳輸層本身無非就是本機內進程間通信方式和遠端通信方式,用戶有興趣也可以按 JDWP 的標準自己實現。

Java 調試接口(JDI)

JDI(Java Debug Interface)是三個模塊中最高層的接口,在多數的 JDK 中,它是由 Java 語言實現的。 JDI 由針對前端定義的接口組成,通過它,調試工具開發人員就能通過前端虛擬機上的調試器來遠程操控后端虛擬機上被調試程序的運行,JDI 不僅能幫助開發人員格式化 JDWP 數據,而且還能為 JDWP 數據傳輸提供隊列、緩存等優化服務。從理論上說,開發人員只需使用 JDWP 和 JVMTI 即可支持跨平臺的遠程調試,但是直接編寫 JDWP 程序費時費力,而且效率不高。因此基于 Java 的 JDI 層的引入,簡化了操作,提高了開發人員開發調試程序的效率

表 1. JPDA 層次比較
模塊層次編程語言作用
JVMTI底層C獲取及控制當前虛擬機狀態
JDWP中介層C定義 JVMTI 和 JDI 交互的數據格式
JDI高層Java提供 Java API 來遠程控制被調試虛擬機

Java 的 JPDA 就是一套為調試和優化服務的虛擬機的操作工具,其中,JVMTI 是整合在虛擬機中的接口,JDWP 是一個通訊層,而 JDI 是前端為開發人員準備好的工具和運行庫。

上述就是小編為大家分享的java程序調試的原理是什么了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泾源县| 兰坪| 清镇市| 贵溪市| 高青县| 安泽县| 滦平县| 武鸣县| 孝义市| 广饶县| 延安市| 车致| 乐陵市| 自治县| 广昌县| 宁乡县| 咸阳市| 富平县| 富宁县| 板桥市| 循化| 澜沧| 吕梁市| 唐山市| 竹北市| 广南县| 云霄县| 松原市| 涿鹿县| 叶城县| 凤山县| 大庆市| 墨脱县| 樟树市| 卢龙县| 加查县| 尚义县| 从江县| 镇宁| 上虞市| 嘉定区|