目录

一、Debug模式下,在不重启的前提下使代码生效

二、进阶设置

三、局限

四、通过idea恢复过去版本的代码

五、远程调试

1、RemoteDebug(远程调试)

2、远程JVM参数设置

3、debug条件过滤

4、获取ip和port


一、Debug模式下,在不重启的前提下使代码生效

1、首先将Reload classes after compilation 模式设置为 Always。

2、通过debug启动项目后,当修改了代码后,依次点击Run--》Debugging actions--》Reload Changed Classes,即可在不重启的情况下使代码生效,提升开发效率。

最后会提示有几个类被重新加载了,如果只有0个类,说明你改动的地方并没有影响到程序的运行。

二、进阶设置

为 Reload Changed Classes 设置一个快捷键

步骤如下

三、局限

  • 只能修改已有方法的方法体

  • 不能添加新成员/删除已有成员/修改已有成员的签名(signature)

四、通过idea恢复过去版本的代码

VCS ==》Local History ==》Show History ==》revert,适合于恢复没有成功commit的代码

五、远程调试

1、RemoteDebug(远程调试)

远程调试,就是我们把打包后的代码部署到服务器上之后,使用本地开发环境连接到服务器部署环境,以这样的方式调试。

2、远程JVM参数设置

RemoteDebug过程是在两个不同的VM实例间进行,需要一个通信方式——socket,因此需要端口设置。

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

-Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=${debug_port} ,其中${debug_port}是用户自定义的,为服务端debug端口。

ones-service中端口号8080,具体设置在启动脚本ones-service/deploy/run.sh中,

JVM_ARGS

Java

JVM_ARGS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8418,suspend=n "

参数说明:

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

3、debug条件过滤

在断点处,右键(两指),在条件框中输入匹配条件

适用场景举例:1)想打断点但怕影响其他人使用,条件可以输入匹配自己测试的userId;2)循环次数太多,只想断某一次循环内处理逻辑,其他循环都不断,例如在线活动list循环,条件可以输入活动ID

注意:如果条件不满足,则断点不生效;尽量在请求进入服务前设置好条件,临时设置有时不生效

4、获取ip和port

命令:ps -ef | grep java

参考:在Intellij IDEA中使用Debug - bojiangzhou - 博客园

好文:https://segmentfault.com/a/1190000039187075

Java日志(1):idea的debug技巧相关推荐

  1. # Idea 调试 Debug 技巧

    Idea 调试 Debug 技巧 IDEA 为我们提供了很多简单且非常强大的调试功能 在需要调试的行打上断点,debugger 方式启动Idea 控制台如下 调试功能说明 Show Execution ...

  2. linux 内核调试信息在哪里,Linux kernel debug技巧----开启DEBUG选项

    Linux kernel debug技巧----开启DEBUG选项 作者:wowo 发布于:2016-11-1 19:39 分类:Linux应用技巧 kernel的source code中有很多使用p ...

  3. 最牛逼的 Java 日志框架,性能无敌,横扫所有对手.....

    欢迎关注方志朋的博客,回复"666"获面试宝典 来源:juejin.cn/post/6945753017878577165 Logback 算是JAVA 里一个老牌的日志框架,从0 ...

  4. 各种Java日志框架的比较

    2019独角兽企业重金招聘Python工程师标准>>> Log4j Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件. ...

  5. Java日志框架Slf4j+Log4j入门

    一.日志系统介绍 slf4j,即简单日志门面(Simple Logging Facade for Java),不是具体的日志解决方案,它只服务于各种各样的日志系统.简答的讲就是slf4j是一系列的日志 ...

  6. Java日志性能那些事

    在任何系统中,日志都是非常重要的组成部分,它是反映系统运行情况的重要依据,也是排查问题时的必要线索.绝大多数人都认可日志的重要性,但是又有多少人仔细想过该怎么打日志,日志对性能的影响究竟有多大呢?今天 ...

  7. 循序渐进看Java web日志跟踪(2)-Java日志API认识

    接触过Java的朋友应该都会知道,java的开源框架百花齐放,实现同样的功能,总能找到几个强大的开源框架来进行选择.在日志方面,Java同样不逊色.除了JDK本身自带的简单的日志工具,java还有如l ...

  8. java单词按字典排序_最终Java日志字典:开发人员最常记录的单词是什么?

    java单词按字典排序 最终的记录字典,或者:我们记录的最常见单词是什么? 日志文件是调试应用程序的最常用方法,当解决错误时,它们肯定可以引导我们朝正确的方向发展. 但是,大多数日志文件每天都会增加一 ...

  9. 终极Java日志字典:开发人员最常记录的单词是什么?

    最终的记录字典,或者:我们记录的最常用单词是什么? 日志文件是调试应用程序的最常用方法,在解决错误时,它们一定可以引导我们朝着正确的方向发展. 但是,大多数日志文件每天都会增加一百万条消息,因此,请务 ...

  10. Java日志操作总结

    Java日志操作总结 (2008-04-21 17:39:06) 标签: 杂谈   .  使用Jakarta Commons Logging(JCL) 1.1. 概述 Apache的开源日志组件Jak ...

最新文章

  1. POJ 1789 Truck History
  2. Protobuf序列化的原理-存储格式
  3. 构建高性能.NET应用之配置高可用IIS服务器-第二篇 IIS请求处理模型
  4. 程序员为什么老得快_这段 Python 代码让程序员赚 300W,公司已确认!网友:神操作!...
  5. 大数据学习笔记11:搭建完全分布式Hadoop
  6. spring 锁_分布式锁-快速实战
  7. Convert Sorted List to Binary Search Tree ------C++ 递归创建平衡二叉查找树
  8. 【机器学习】xgboost以及lightgbm资料汇总
  9. jmeter使用_jmeter概念及使用
  10. (3)I/O流对象-----复制图片/文件/视频的几种I/O流方式
  11. 云开发打工人必备上班摸鱼划水微信小程序源码
  12. t470换屏线_thinkpad t470怎么样?thinkpad t470拆机图解全面评测
  13. 艾可森 mysql,国足进世界杯有戏!巴西归化球员表决心:中国对我好,我必须努力...
  14. e4a浏览框本地HTML,E4A浏览器
  15. python图像算法工程师_图像算法工程师的岗位职责
  16. io输出pwm且占空比和频率同时可调驱动实现
  17. MSN天气 城市代码
  18. 我为什么愿意帮助这样的人
  19. 移动应用开发——uni-app框架 仿网易云音乐播放器学习心得
  20. 7-211 正常血压

热门文章

  1. 算法与数据结构相关书籍
  2. Hadoop集群间文件拷贝
  3. 短视频创作,变现的建议、变现方式和举例,建议收藏反复阅读-上
  4. 【读书笔记】—— 学习之道、刻意练习
  5. 【Windows】还原软件打开方式为默认
  6. Tensorflow中Sequential model
  7. windows32位安装Tensorflow
  8. 电脑键盘各个按键作用讲解
  9. java实现Excel导出(springboot)
  10. 产品经理年终述职五部曲