JPDA(Java Platform Debugger Architecture),即 Java 平臺(tái)調(diào)試體系,具體結(jié)構(gòu)圖如下圖所示:其中實(shí)現(xiàn)調(diào)試功能的主要協(xié)議是JDWP協(xié)議,在 Java SE 5 以前版本,JVM 端的實(shí)現(xiàn)接口是 JVMPI(Java Virtual Machine Profiler Interface),而在Java SE 5及以后版本,使用 JVMTI(Java Virtual Machine Tool Interface) 來替代 JVMPI。因此,如果你使用的是Java SE 5之前的版本,則使用的調(diào)試命令格式如下:java?-Xdebug?-Xrunjdwp:... 如果你使用的是Java SE 5之后的版本,則使用的命令格式如下:java?-agentlib:jdwp=...
如何開啟遠(yuǎn)程調(diào)試?
由于現(xiàn)在使用的大多數(shù)都是Java SE 5之后的版本,則之前的就忽略了。日常開發(fā)中最常見的開啟遠(yuǎn)程調(diào)試的命令如下:java?-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=9093?-jar?xxx.jar 前面的java -agentlib:jdwp=是基礎(chǔ)命令,后面的跟著的一串命令則是可選的參數(shù),具體什么意思呢?下面詳細(xì)介紹。
首先的將打包后的Spring Boot項(xiàng)目在服務(wù)器上運(yùn)行,執(zhí)行如下命令(各種參數(shù)根據(jù)實(shí)際情況自己配置):java?-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=9193?-jar?debug-demo.jar 項(xiàng)目啟動(dòng)成功后,點(diǎn)擊 Edit Configurations,在彈框中點(diǎn)擊 號(hào),然后選擇Remote。然后填寫服務(wù)器的地址及端口,點(diǎn)擊 OK 即可。以上步驟配置完成后,點(diǎn)擊DEBUG調(diào)試運(yùn)行即可。配置完畢后點(diǎn)擊保存即可,因?yàn)槲遗渲玫?suspend=n,因此服務(wù)端程序無需阻塞等待我們的連接。我們點(diǎn)擊 IDEA 調(diào)試按鈕,當(dāng)我訪問某一接口時(shí),能夠正常調(diào)試。