当前位置: 首页 > news >正文

远程调试 idea配置remote debug、在远程服务器的程序中,添加JVM启动参数-Xdebug

文章目录

  • 前言
    • 1. idea配置remote debug
      • 1.1 在服务器的程序中,添加JVM启动参数
      • 1.2 idea连接远程服务器,进行远程调试
    • 2. 远程调试原理

前言

本地开发的程序运行在服务器上报错缺少日志信息甚至没有错误日志时,需要通过远程调试来调试服务器上的程序


1. idea配置remote debug

1.1 在服务器的程序中,添加JVM启动参数

启动程序的脚本中,即java -jar命令后,添加支持远程调试的参数(默认选择5005端口,为避免端口冲突,可选用其他不常用端口)

-Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n

参数含义:

-XDebug 启用远程调试
-Xrunjdwp 加载JDWP的JPDA参考执行实例
transport 用于在调试程序和VM使用的进程之间通讯
dt_socket socket传输
server=y/n VM是否需要作为调试服务器执行
address=5005 调试服务器监听的端口号
suspend=y/n 是否在调试客户端建立连接之后启动VM 


在这里插入图片描述

1.2 idea连接远程服务器,进行远程调试

点击Add Configuration后选择Remote
在这里插入图片描述

设置远程服务器的Ip和远程调试的端口
在这里插入图片描述
在本地代码中添加断点后,即可调试远程服务器上代码
在这里插入图片描述
在这里插入图片描述

注:
若远程服务器和本地之间防火墙未打开,则无法进行远程调试,可通过telnet ip 端口命令测试通信
在这里插入图片描述


2. 远程调试原理

Java程序统一以字节码的形式在JVM中运行,只要本地代码和远程服务器上的类文件相同,两个JVM通过调试协议进行通信,本地的源码就可以连接到远程服务器上的JVM,进而执行远程调试


相关文章:

  • Google Earth Engine(GEE)——一个简单的时序动画UI
  • L74.linux命令每日一练 -- 第十章 Linux网络管理命令 -- nmap和tcpdump
  • 进入mysql命令行之后,怎么退出
  • Js获取url里面的参数
  • springboot小区物业管理系统毕业设计-附源码051745
  • stm32驱动TFTLCD液晶屏显示图片+汉字(快速上手,只教怎么用,不讲原理!)
  • 神经网络参数研究方法,神经网络参数研究方向
  • JS常用事件,使用方法
  • 2022“杭电杯” 中国大学生算法设计超级联赛(7)3 8 题解
  • 雪地脚印 体积云
  • 解决WindowsServer上的Web应用程序无法访问网络共享文件问题
  • keepalived+nginx高可用
  • windows10下安装Mujoco 详细安装教程 + 附安装包
  • PostgreSQL模式匹配和正则表达式
  • 区块相隔虽一线,俱在支付同冶熔,Vue3.0+Tornado6前后端分离集成Web3.0之Metamask区块链虚拟三方支付功能
  • JavaScript-如何实现克隆(clone)函数
  • JavaScript创建对象的四种方式
  • js面向对象
  • maven工程打包jar以及java jar命令的classpath使用
  • Mysql优化
  • Redis中的lru算法实现
  • Sass Day-01
  • scala基础语法(二)
  • spring-boot List转Page
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 阿里研究院入选中国企业智库系统影响力榜
  • 大主子表关联的性能优化方法
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 入手阿里云新服务器的部署NODE
  • MyCAT水平分库
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • # 计算机视觉入门
  • (12)Linux 常见的三种进程状态
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (三)docker:Dockerfile构建容器运行jar包
  • (一)appium-desktop定位元素原理
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .NET Core Web APi类库如何内嵌运行?
  • .NET Core 版本不支持的问题
  • .NET Core 中插件式开发实现
  • .NET MVC 验证码
  • .net/c# memcached 获取所有缓存键(keys)
  • .NET企业级应用架构设计系列之结尾篇
  • /deep/和 >>>以及 ::v-deep 三者的区别
  • @拔赤:Web前端开发十日谈
  • [《百万宝贝》观后]To be or not to be?
  • [20171101]rman to destination.txt
  • [4.9福建四校联考]
  • [APIO2012] 派遣 dispatching
  • [Apio2012]dispatching 左偏树
  • [CareerCup] 14.5 Object Reflection 对象反射
  • [CodeForces-759D]Bacterial Melee