IDEA 调试小技巧

2023-11-01

条件断点

循环中经常用到这个技巧,比如:遍历中,想让断点停在某个特定值。
在这里插入图片描述
见上图,在断点位置,右击会弹出一个界面,在condition中填写断点条件,在调试的时候,断点会自动在断点条件,i ==6 为 true时候停下,跳过为false的条件。
在这里插入图片描述

回退上一步

针对调试中一不小心错过想要查看的方法,想要重新进入刚才的断点方法,适合使用方法套方法的场景
在这里插入图片描述
参考上图,method1方法调用method2,当前第25行断点 ,点击下图红色箭头位置的Drop Frame图标后,瞬间回到了上一个method1
在这里插入图片描述

在这里插入图片描述

多线程调试

多线程调度顺序完全没法控制,依赖CPU的调度,如何调试多线程,避免多线程之间调试的相互影响减少多线程调试的难度

在这里插入图片描述

在上述3个断点处,点击右键弹出一个节目,在 suspend 上选择 Thread,即可进行线程调试

在这里插入图片描述
在调试的时候可以选择不同线程
在这里插入图片描述
选择不同线程即可选择线程进行调试

远程调试

这也是一个装B的利器,本机不用启动项目,只要有源代码,可以在本机直接远程调试服务器上的代码,打开姿势如下:

项目启动时,先允许远程调试

java -server -Xms512m -Xmx512m -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9081 -Djava.ext.dirs=. ${main_class}

起作用的就是

-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9081

注意:远程调试从技术上讲,就是在本机与远程建立scoket通讯,所以端口不要冲突,而且本机要允许访问远程端口,另外这一段参数,放要在-jar 或 ${main_class}的前面

idea中设置远程调试

在这里插入图片描述
然后就可以调试了,前提是本机有项目的源代码 ,在需要的地方打个断点,然后访问一个远程的url试试,断点就会停下来
在这里插入图片描述

查看执行结果/临时执行表达式/修改变量的运行值

选中需要执行的表达式,点击右键会弹出一个界面
在这里插入图片描述

在这里插入图片描述
点击执行,即可执行表达式计算结果,或者点击如下图标
在这里插入图片描述

调试时,可以临时执行一些表达式,参考下图:
在这里插入图片描述

点击+号后,就可以在新出现的输入框里输入表达式,比如i+5

然后回车,马上就能看到结果

当然,如果调试时,想动态修改变量的值,也很容易,在变量上右击,然后选择Set Value
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IDEA 调试小技巧 的相关文章

随机推荐

  • Access Token 机制详解

    我们在访问很多大公司的开放 api 的时候 都会发现这些 api 要求传递一个 access token 参数 这个参数是什么呢 需要去哪里获取这个 access token 呢 access token 是在 Oauth2 0 协议中 客
  • 台式电脑如何截屏_台式电脑截图方法:电脑怎么截屏及电脑截图按什么快捷键...

    Windows电脑截图的常用方法 一 键盘按Print Screen SysRq 键截屏 在电脑键盘F12右侧第一个键 Print Screen SysRq 按下Print Screen SysRq 键可以截取电脑显示屏全部并复制成功 只需
  • Spring Test 整合 JUnit 4 使用总结

    1 加入依赖包 使用Spring的测试框架需要加入以下依赖包 JUnit 4 官方下载 http www junit org Spring Test Spring框架中的test包 Spring 相关其他依赖包 不再赘述了 就是contex
  • 【线性代数】线性代数的几何意义

    目录 向量 线性变化与矩阵引入 矩阵乘法运算 行列式 逆矩阵 秩 点积 点积的几何理解 叉积 叉积的算术和几何意义 基变换 特征值和特征向量 函数与向量空间 线性代数可以说是学习计算机不可或缺的基础知识 计算机中很多复杂的运算都要依靠线性代
  • 网络安全-漏洞扫描

    利用漏洞扫描设备接入被测对象网络 通过指定 IP 地址范围等配置方法确保漏洞扫描设备仅对目标测试设备进行扫描 并生成扫描报告 扫描基于漏洞扫描设备内置漏洞知识库 通过采集信息 执行漏洞检测脚本对目标服务器 终端 的操作系统 应用程序 数据库
  • JVM的双亲委派模型

    定义与本质 类加载器用来把类文件加载到JVM内存中 从JDK1 2开始 类加载过程采用双亲委派模型 保证Java平台安全 父类委托的定义 一个类加载器在接到加载类请求的时候 首先不会去加载这个类 而是把这个类加载请求委托给父类去完成 近依次
  • TensorFlow 实战案例:CNN-LSTM 混合神经网络气温预测(附 Python 完整代码)

    大家好 今天和各位分享一下如何使用 Tensorflow 构建 CNN卷积神经网络和 LSTM 循环神经网络相结合的混合神经网络模型 完成对多特征的时间序列预测 本文预测模型的主要结构由 CNN 和 LSTM 神经网络构成 气温的特征数据具
  • 二进制格雷码与自然二进制码之间的转换

    什么是格雷码 格雷码 又叫循环二进制码或反射二进制码 格雷码是我们在工程中常会遇到的一种编码方式 它的基本的特点就是任意两个相邻的代码只有一位二进制数不同 二进制格雷码与自然二进制码的互换 1 二进制码转换成二进制格雷码 法则是保留二进制码
  • 基于深度学习的目标跟踪(Yolov3+deepsort)

    最近有个计数的项目刚好可以用到目标跟踪 先跑通测试一下 感觉还不错 项目代码在这里 主要参考的是一下两个项目改的 deep sort https github com nwojke deep sort keras yolov 3 https
  • 前端常用的一些正则表达式

    在线测试正则的网址 https regexr com 1 正整数 1 9 D 正整数不仅需要判断当前输入的全是数字 还需要保证第一位数字不是0 具体使用方式 直接在方法中写的话
  • Web前端学习(HTML)学习---下(表格标签,列表标签,表单标签)案例

    作者 旧梦拾遗186 专栏 C语言编程 小比特成长日记 前言 趁年轻 余额不足可以挣 电量不足可以充 时间匆匆不再回来 趁年轻就去多付出 不攀比 不抱怨 不计较 多付出 因为有一种努力叫靠自己 前一篇文章我们着重学习了HTML中的 标题标签
  • CSS--滑动门和过渡效果

    滑动门 滑动门出现的背景 制作网页时 为了美观 常常需要为网页元素设置特殊形状的背景 比如微信导航栏 有凸起和凹下去的感觉 最大的问题是里面的字数不一样多 咋办 为了使各种特殊形状的背景能够自适应元素中文本内容的多少 出现了CSS滑动门技术
  • Blender常用快捷键整理

    物体操作快捷键 即选中物体 G键 移动物体 R键 旋转物体 S键 缩放物体 移动 旋转或缩放物体时 按下X Y或Z键 按X Y或Z轴方向移动 旋转或缩放 TAB键 切换为编辑模式 CTRL A 弹出应用菜单 物体模式旋转缩放后应用旋转与缩放
  • 人工智能在通信领域的应用

    人工智能的出现使得各个行业都有了新的发展方向 通过和人工智能结合 使得自己的行业打破传统的方式 以一种新的姿态进入人们的视线中 现在我们都离不开通信技术 很多人对于人工智能给通信领域带来什么的改变 在这篇文章中我们会详细的介绍这一问题 大家
  • 基于opencv的车道线识别 方法二(极易实现(python))

    基于opencv的车道线识别 方法二 效果图 语言 平台 所需的库 步骤及原理 1 导入库 2 二值化 3 提取感兴趣区域 4 剔除噪点 5 找出值不为零的点 即车道线 并将其绘制在原图上 完整代码 效果图 语言 python 平台 pyc
  • 关于FFmpeg里的GPL和LGPL协议

    参考博文 谢谢博主的分享 http www cnblogs com findumars p 3556883 html GPL介绍 我们很熟悉的Linux就是采用了GPL GPL协议和BSD Apache Licence等鼓励代码重用的许可很
  • python并发编程学习笔记--单线程,多线程,多进程 day06

    Python并发编程是指同时处理多个任务的技术 包括单线程 多线程和多进程三种方式 1 单线程 单线程是指在一个进程中只有一个线程在执行任务的情况 虽然只有一个线程在执行任务 但可以使用异步编程模型来实现并发操作 从而达到提高程序效率的目的
  • 置信度传播算法(Belief Propagation)

    基础知识 条件概率 Conditional Probability 相互独立时 p A B p A 贝叶斯规则 贝叶斯网络 Bayesian Network 定了一个独立的结构 一个节点的概率仅依赖于它的父节点 贝叶斯网络适用于稀疏模型 即
  • 【Angular】——无限级下拉列表框

    前言 前段时间换了新框架 将前后端分离 对Angular2有点感兴趣 所以参与一起封装组件 在小5的帮助下 学会了 好多东西 这里总结下封装的无限级下拉列表框 dropdownlist ts import Component OnInit
  • IDEA 调试小技巧

    条件断点 循环中经常用到这个技巧 比如 遍历中 想让断点停在某个特定值 见上图 在断点位置 右击会弹出一个界面 在condition中填写断点条件 在调试的时候 断点会自动在断点条件 i 6 为 true时候停下 跳过为false的条件 回