利用IDEA遠程調試代碼

    在工作經常遇到連接開發數據庫,程序沒有問題,但一到線上或者測試環境運行就出現各種問題,現在我們來配置遠程debug。

一、原理

本機和遠程主機的兩個 VM 之間使用 Debug 協議通過 Socket 通信,傳遞調試指令和調試信息。 
被調試程序的遠程虛擬機:作爲 Debug 服務端,監聽 Debug 調試指令。jdwp是Java Debug Wire Protocol的縮寫。 
調試程序的本地虛擬機:IDEA 中配置的 Remote Server,指定 Debug 服務器的Host:Port,以供 Debug 客戶端程序連接。

二、遠程調試步驟

1、利用spring-boot創建測試項目ares-boot,並編寫測試Controller

package com.ares.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/hello")
public class HelloController {

    @RequestMapping("")
    public String hello(String name) {
        return "hello " + name;
    }

}

打成jar包,利用java -jar 啓動服務

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:10090 -jar ares-springboot-1.0.0.jar --server.port=9090
其中 -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:10090 指定開放調試的端口

2、IDEA配置啓動環境(Debug服務器)

新建remote

配置要調試的服務地址和端口

利用debug啓動,瀏覽器訪問http://localhost:9090/hello,我們發現Idea已經進入的debug模式

注意:

1)有時候調試時提示Connect time out,這時候需要關閉防火牆

2)只有本地和遠程的代碼保持一致才能進行遠程調試

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章