当把一个工程部署到远程服务器后有可能出现意想不到错误,日志打印过多或者过少都影响问题排查的效率,这个时候可以通过远程调试的方式快速定位bug,提升工作效率。本文主要讲解如何使用Idea开发工具进行远程调试,希望对你有帮助。

一、环境配置

1. 远程Tomcat配置

远程Tomcat添加启动参数并重启生效:-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

2. IDEA配置



3. 启动调试

正常debug启动,控制台看到如下字样即为连接成功,可以打断点进行调试了。

二、常见问题

1. 为什么调试断点没生效?

本地和远程代码要相同,不一样则会出现无法进入断点的情况;

如果代码一致还是无法进入,尝试重启,一般可以解决;

2. 进入断点调试之后,服务器还可以处理其他请求吗?

服务器在断点处停住了,无法处理其他请求;

3.改了本地代码可以直接debug吗?

不可以,需要部署在远程服务器之后再次启动debug;

三、远程DEBUG原理

原理:本机和远程主机的两个 VM 之间使用 Debug 协议通过 Socket 通信,传递调试指令和调试信息。

Java动态调试技术原理及实践:https://tech.meituan.com/2019/11/07/java-dynamic-debugging-technology.html

JDWP:https://docs.oracle.com/javase/8/docs/technotes/guides/jpda/jdwp-spec.html

花1分钟配置远程DEBUG,开发效率翻倍,妹子直呼绝绝子的更多相关文章

  1. Goland 这些技巧,学会开发效率翻倍!

    hi, 大家好,我是 hhf. <Goland 这些实操技巧,你可能还不会!>介绍了日常开发中一些比较好用的技巧.本篇文章继续介绍一些其他比较好用的技巧. 自定义结构 tag Goland ...

  2. VS Code:让你工作效率翻倍的23个插件和23个编辑技巧

    VS Code:让你工作效率翻倍的23个插件和23个编辑技巧 总结了一些平时常用且好用的 VS Code 的插件和编辑技巧分享出来. 文章详情可查阅我的博客:lishaoy.net ,欢迎大家访问. ...

  3. 2022必须拥有Chrome扩展程序 - 浏览器插件,让你上网效率翻倍

    在Chrome网上应用店中查找扩展程序 2022必须拥有Chrome扩展程序 - 浏览器插件,让你上网效率翻倍 可扩展的Chrome Web浏览器比某些人认识的功能强大得多.您可以自定义浏览体验,使其 ...

  4. eclipse+tomcat配置远程debug调整

    由于开发环境与真实服务器环境存在差异,有时开发时明明正常的逻辑,部署之后就会出现各种各样的问题,通过日志邮不能明确定位到问题的时候,可以采用远程debug调试来定位问题.下面就介绍一下具体的配置步骤: ...

  5. IDEA 配置远程debug

    1. 启动远程服务配置debug参数 远程服务启动时配置如下debug相关参数 java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address= ...

  6. jetty配置远程debug

    1.配置远程jetty 服务器的 bin/jetty.sh JAVA_OPTIONS+=("-Xdebug -Xrunjdwp:server=y,transport=dt_socket,ad ...

  7. Linux进阶:让效率翻倍的Bash技巧(一)

    http://blog.tpircsboy.com/tech/bash-skills-part1/

  8. 老师傅珍藏多年CAD常用快捷键合集,收藏,工作效率翻倍!

    想要熟练操作CAD,做一名出色的CAD绘图员,少不了勤学苦练,还要掌握一些常用的绘图命令以及常用快捷键. 今天就来跟大家分享超全的CAD绘图命令,以及常用快捷键,学会涨工资! 常用快捷键: CTRL快 ...

  9. python virtual env 使用 jupyter ipython notebook,舒服了, 工作效率翻倍

    话不多说,尊重原作者 知乎链接

  10. pycharm快捷键、配置virtualenv环境,配置django调试,配置远程调试

    pycharm安装和首次使用 http://blog.csdn.net/chenggong2dm/article/details/9365437 快捷键: 找文件.代码.引用相关 1.双击shift ...

随机推荐

  1. or、and表达式

    or 逻辑表达式 result = a or b 如果a为空则执行or后面的b,如果a不为空,则执行or前面的a 即:赋值运算中,如果or前面为真,就不会去执行or后面的,如果or前面为假才会执行or ...

  2. C语言实现计算“已经活了多少天”

    输入生日,通过系统或者自己输入,获得当前日期,计算已经存活了多少天. #include<stdio.h> #include<time.h> /** * 函数介绍: * 通过输入 ...

  3. tools2

    [对身份证的校验] //身份证的校验 import java.util.stream.IntStream; /** * 身份证号码验证 * 1.号码的结构 * 公民身份号码是特征组合码,由十七位数字本 ...

  4. CPU体系(2):ARM Store Buffer

    本文主要翻译自 Arm Cortex-M7 Processor Technical Reference Manual r1p2 其中章节 Memory System / L1 caches / Sto ...

  5. 【Devexpres】spreadsheetControl冻结行

    Worksheet worksheet = this.spreadsheetControl1.ActiveWorksheet; worksheet.Import(datatable, true, 0, ...

  6. vulnhub靶场之Chronos:1

    准备: 攻击机:虚拟机kali.本机win10. 靶机:Chronos,下载地址:https://download.vulnhub.com/chronos/Chronos.ova,下载后直接vbox打 ...

  7. log4j漏洞原理

    一.前置知识 1.JNDI接口 JNDI即Java Naming and Directory Interface(JAVA命名和目录接口),它提供一个目录系统,并将服务名称与对象关联起来,从而使得开发 ...

  8. (小白向)2020-12-18 中国大学MOOC第十二讲-动态变量应用

    1创建单向链表(10分) 问题描述:根据随机输入的若干非零整数,以数字0结束:建立一个新链表. 输入:随机输入若干个整数,以数字0结束 输出:新建链表中个节点的值,数字间没有间隔字符. 样例:输入 5 ...

  9. Safari浏览器对SVG中的<foreignObject>标签支持不友好,渲染容易错位

    在 svg 中需要写一个 markdown 编辑器,需要用到 <foreignObject> 绘制来html,编辑器选择了 simplemde.大致html部分结构如下,<markd ...

  10. 分享一个项目中在用的图片处理工具类(图片缩放,旋转,画布格式,字节,image,bitmap转换等)

    using System; using System.Collections.Generic; using System.IO; using System.Text; using System.Dra ...