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

idea 启动vue 一会自己停了_这 几个 IDEA,调试的骚操作,用了都说爽!

‍‍‍‍‍‍‍‍一、条件断点

循环中经常用到这个技巧,比如:遍历1个大List的过程中,想让断点停在某个特定值。 c1002d7c8e42bcf15beef66c0c309cba.png 参考上图,在断点的位置,右击断点旁边的小红点,会出来一个界面,在Condition这里填入断点条件即可,这样调试时,就会自动停在i=10的位置  注 意   文末有:3625页互联网大厂面试题  c166d10cef5f949d801e3b8669d90746.png

二、回到"上一步" 

该技巧最适合特别复杂的方法套方法的场景,好不容易跑起来,一不小心手一抖,断点过去了,想回过头看看刚才的变量值,如果不知道该技巧,只能再跑一遍。 d169c74816b1ded6b1ba0cc03efad2d7.png 参考上图,method1方法调用method2,当前断点的位置j=100,点击上图红色箭头位置的Drop Frame图标后,时间穿越了 b488d1e816f2645844ff35c42c7c0b3f.png 回到了method1刚开始调用的时候,变量i变成了99,没毛病吧,老铁们,是不是很6 :) 注:好奇心是人类进步的阶梯,如果想知道为啥这个功能叫Drop Frame,而不是类似Back To Previous 之类的,可以去翻翻JVM的书,JVM内部以栈帧为单位保存线程的运行状态,drop frame即扔掉当前运行的栈帧,这样当前“指针”的位置,就自然到了上一帧的位置。

三、多线程调试

多线程同时运行时,谁先执行,谁后执行,完全是看CPU心情的,无法控制先后,运行时可能没什么问题,但是调试时就比较麻烦了,最明显的就是断点乱跳,一会儿停这个线程,一会儿停在另一个线程,比如下图: d160223c859e1c6b2fb566f067a8e9ce.png 如果想希望下一个断点位置是第2句诗句,可能要失望了: 4bd49493aa34fb69dc463482708df8e7.png 如果想让线程在调试时,想按自己的愿意来,让它停在哪个线程就停在哪个线程,可以在图中3个断点的小红点上右击, 9b56a8d867dbbab8d94e5d9ddd6986a6.png 即:Suspend挂起的条件是按每个线程来,而非All。把这3个断点都这么设置后,再来一发试试 549b2c4efb40454f73e5b35d4c5c053d.png 注意上图中的红框位置,断点停下来时,这个下拉框可以看到各个线程(注:给线程起个容易识别的名字是个好习惯!),我们可以选择线程“天空中的飞鸟” cf1c836a2213a4145167e5480f3489b9.png 断点如愿停在了第2句诗。

四、远程调试

这也是一个装B的利器,本机不用启动项目,只要有源代码,可以在本机直接远程调试服务器上的代码,打开姿势如下: 1、项目启动时,先允许远程调试
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}的前面 2、idea中设置远程调试 b4ccaec12787954df124f8a69cbf6abf.png 然后就可以调试了 023d036da69d6af4c0e3f9800cca2a9b.png 前提是本机有项目的源代码 ,在需要的地方打个断点,然后访问一个远程的url试试,断点就会停下来。

五、临时执行表达式/修改变量的运行值

调试时,可以临时执行一些表达式,参考下图:点击这二个图标中的任何1个都可以 9c1fc76ecba50877672c9a221ffe28b0.png 点击+号后,就可以在新出现的输入框里输入表达式,比如i+5 ee897be57d7bfec822a0f416a62dc124.png 然后回车,马上就能看到结果  f194954bf3415e5ecc78b6fd0698735d.png 当然,如果调试时,想动态修改变量的值,也很容易,在变量上右击,然后选择Set Value,剩下的事,地球人都知道。 f0329b2b6d97b8723c1a6a8e5f0135cd.png 善用上述调试技巧,相当大家撸起代码来会更有感觉。‍‍‍‍‍‍‍‍

往期推荐

新版Mac Big Sur 干翻了我的Nacos,真香坑!

如何快速判断某URL是否在20亿的网址URL集合中?

Oracle慌了!华为终于对JDK下手了!

阅读原文:  最新 3625页大厂面试题 

相关文章:

  • java 桌面应用程序_针对初学Java的小伙伴,入门时应该了解的Java基础知识
  • python面向对象思路_Python基础之面向对象的软件开发思路
  • python主要应用于云计算的哪些方面_python在云计算的应用领域
  • python小程序_如何使用 Python 开发微信小程序
  • 华为平板wps语音朗读_年轻人智慧生活:荣耀笔记本、平板V6,智慧屏X1等多款新品再升级...
  • python复制文件夹所有文件到另外目录_如何使用Python将文件的整个目录复制到现有目录中?...
  • python输入多个数字 找出只出现一个的数字_【算法14】找出数组中两个只出现一次的数字...
  • python随机抽人小程序_python抽人程序初试
  • lodop打印不显示页码_教你9招,一次性解决Excel表格打印问题!
  • 原型和原型链的理解_理解Javascript的原型和原型链
  • 一个事务中 可以查询自己未提交的数据吗_来谈谈MySQL事务及事务引发的问题
  • python填写表单并提交_form表单提交方式
  • rar解压密码7秒破_30分钟,天猫成交额突破3723亿,京东9分钟破2000亿!姐妹们,你贡献了多少?...
  • python获取方法名_python获取当前运行函数名称的方法实例代码
  • 我学python前一句_我的python学习之路——前三天总结
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • classpath对获取配置文件的影响
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • Javascripit类型转换比较那点事儿,双等号(==)
  • JS学习笔记——闭包
  • magento2项目上线注意事项
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 阿里云购买磁盘后挂载
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 订阅Forge Viewer所有的事件
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 如何在GitHub上创建个人博客
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • #《AI中文版》V3 第 1 章 概述
  • #单片机(TB6600驱动42步进电机)
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (转)Linux下编译安装log4cxx
  • (转载)跟我一起学习VIM - The Life Changing Editor
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .net mvc actionresult 返回字符串_.NET架构师知识普及
  • .NET 使用 XPath 来读写 XML 文件
  • .NET设计模式(8):适配器模式(Adapter Pattern)
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)
  • [Asp.net mvc]国际化
  • [ASP.NET MVC]如何定制Numeric属性/字段验证消息