Java Remote Debug(idea远程调试)

概述

对于分布式系统的调试不知道大家有什么好的方法。对于我来说,在知道远程调试这个方法之前就是在代码中打各种log,然后重新部署,上线,调试,这样比较费时。今天咱们来了解了解Java远程调试这个牛逼的功能,本文以Intellij IDEA为例讲解怎么使用远程调试。以Thrift入门教程这篇文章中使用的程序作为例子。这个程序由Thrift服务端和客户端组成。描述一下远程调试需要解决的问题:

服务端程序运行在一台远程服务器上,我们可以在本地服务端的代码(前提是本地的代码必须和远程服务器运行的代码一致)中设置断点,每当有请求到远程服务器时时能够在本地知道远程服务端的此时的内部状态。

下面按照步骤介绍怎么远程debug。

使用特定JVM参数运行服务端代码

要让远程服务器运行的代码支持远程调试,则启动的时候必须加上特定的JVM参数,这些参数是:

-Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=${debug_port}

其中的${debug_port}是用户自定义的,为debug端口,本例以5555端口为例。

配置步骤

1.本地idea配置

打开Intellij IDEA,在顶部靠右的地方选择”Edit Configurations…”,进去之后点击+号,选择”Remote”,按照下图的只是填写红框内的内容,其中host为远程代码运行的机器的ip/hostname,port为上一步指定的debug_port,本例是5555

然后点击Apply,最后点击OK即可

注:其中host为远程服务器地址 Port为自定义端口

保留JVM参数(服务器配置时使用)

2.服务器配置

修改启动脚本(start.sh)--田间JVM参数nohup /usr/java/jdk1.8.0_40/bin/java -jar -Xdebug -Xrunjdwp:transport=dt_socket,address=9527,server=y,suspend=y Appserver.jar --spring.config.locaton=./application.yml --logging.config=./logback.xml &

注:

启动debug模式

现在在上一步选择”Edit Configurations…”的下拉框的位置选择上一步创建的remote的名字,然后点击右边的debug按钮(长的像臭虫那个),看控制台日志,如果出现类似“Connected to the target VM, address: ‘xx.xx.xx.xx:5555’, transport: ‘socket’”的字样,就表示连接成功过了。

设置断点,开始调试

远程debug模式已经开启,现在可以在需要调试的代码中打断点了,比如:

如图中所示,如果断点内有√,则表示选取的断点正确。

现在在本地发送一个到远程服务器的请求,看本地控制台的bug界面,划到debugger这个标签,可以看到当前远程服务的内部状态(各种变量)已经全部显示出来了,并且在刚才设置了断点的地方,也显示了该行的变量值。

Java Remote Debug(idea远程调试)

原文地址:https://www.cnblogs.com/zt007/p/8882364.html

时间: 2024-11-02 10:31:52

Java Remote Debug(idea远程调试)的相关文章

Java项目部署与远程调试两三事

[开启和进行远程调试]参考https://blog.csdn.net/WSYW126/article/details/748536801.tomcat:配置catalina.sh jpda参数,主要是address./catalina.sh jpda start 2.springbootmaven插件 or命令行 <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-b

java remote debug parameters

java -agentlib:jdwp=transport=dt_socket,server=y,address=8000,suspend=n

Eclipse Java,debug模式无法调试,调试按钮不可用时解决办法

经常出现debug模式进入后,debug的几个按钮置灰,F5,6,8,没有任何反应时,这样操作: 退出 Eclipse.打开 Eclipse 目录下的 configuration 下的 org.eclipse.osgi, 清空这个目录.启动 eclipse.

使用Eclipse进行远程调试(转)

做开发好多年了,Debug大家肯定都不陌生,绝对称得上是家常便饭了.博主虽不敢妄下断言,但是这里也猜一下,肯定有很多人都没有使用过Remote Debug(远程调试).说来惭愧,博主也是工作了3年才用上这么个玩意,今天又使用到,所以整理个帖子分享一下. 何谓远程调试,就是我们把打包后的代码部署到服务器上之后,使用本地开发环境连接到服务器部署环境,以这样的方式调试. 在实际开发中,并不是所有问题都能在本地发现.一旦我们遇到服务器上出现的BUG又很难排查的时候,使用远程调试,就可能帮助我们尽快的排查

Tomcat使用MyEclipse远程调试Java代码配置详解

Tomcat使用MyEclipse远程调试Java代码总结如下:在做远程调试时,在windows系统和非windows系统下的配置,Tomcat中会有所差别,具体如下: 第一步.配置tomcat一.在windows系统中:打开%CATALINE_HOME%/bin下的文件catalina.bat,加入下面这行:set CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket

开启Java远程调试

在JDK启动时,添加 -Xrunjdwp:transport=dt_socket,address=9900,server=y,suspend=n -Dcom.sun.management.jmxremote.port=40124 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false 选中项目,右键 点击Debug开始远程调试

Visual Studio2017 远程调试 Remote Debugger

前言 大家在使用vs打包后的文件部署到服务器后,有时候我们需要对线网的后台进行调试.但是它不像在VS中.这个时候我们该怎么调试呢? 微软想到了这一点,他们在 VS 中给我们提供了一个功能: Remote Debugger,要远程调试我们就需要用到它. 关于 Remote Debugger 使用VS远程调试器Remote Debugger,你可以调试部署在不同的计算机上的VS应用程序.它适用于Windows桌面应用程序和ASP.NET的应用程序. 获取远程工具 获取远程工具的方式有两种.一种是从M

tomcat+eclipse远程调试

在做远程调试时,在windows系统和非windows系统下的配置,Tomcat中会有所差别,具体如下: 第一步.配置tomcat 一.在windows系统中: 打开%CATALINE_HOME%/bin下的文件catalina.bat,加入下面这行: set CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8

使用IntelliJ IDEA进行远程调试

远程调试服务器是一个比较实用的技巧,以便我们能够迅速定位线上问题.本文会介绍如何在IntelliJ IDEA中进行远程调试. 配置IntelliJ IDEA 选择Edit Configurations -->+号(Add New Configuration)--> Remote, 如下: 其中Host填写的是远程服务器的IP地址,8000就是远程调试的端口. 服务器配置 在服务器Tomcat的bin目录下的setenv.sh中增加如下配置: CATALINA_OPTS="${CATA