codecamp

IDEA Debug 特殊技能使用


Debug 特殊技能使用
  • 如上图 Gif 所示,查看所选对象的方法常用有三种方式:
  • 选中对象后,使用快捷键​ Alt + F8​。 
  • 选中对象后,拖动对象到 ​Watches​。 
  • 选中对象后,鼠标悬停在对象上 2 秒左右。
  • Debug 特殊技能使用
    • 如上图 Gif 所示,在弹出表达式输入框中 IntelliJ IDEA 也是能帮我们智能提示。
    Debug 特殊技能使用
    • 如上图 Gif 所示,当我们需要过掉后面的所有断点的时候,我们不需要去掉这些断点,只需要点击左下角那个小圆点,点击小圆点之后,所有断点变成灰色,然后我们再在按快捷键​ F9​ 即可过掉当前和后面所有的断点。
    Debug 特殊技能使用
    • 我们可以给断点设置进入的条件。如上图 Gif 所示,因为变量 ​temp3​ 不等于 ​200​ 所以该断点没有被进入直接跳过。
    Debug 特殊技能使用
    • 如上图,我们可以给断点设置更复杂的步入条件。
    • 红框中的 ​Pass count ​表示跳过多少次后开始步入,比如 ​for ​循环中,我们要查看一个变量循环 3 次后的结果就可以使用该方式。
    • Debug 特殊技能使用
      • 如上图,对于某些不重要的断点,只要步入一次就够了,就可以勾选此选项,让它步入之后自动删除。
      Debug 特殊技能使用
      • 如上图,对于某些场景的断点,需要其他断点先触发之后再进行触发,可以选择此项。默认选择的是: ​None
      Debug 特殊技能使用
      • 有时候当我们步入方法体之后,还想回退到方法体外。如 Gif 演示,断点进入 ​addNum​ 方法后,点击 ​Drop Frame​ 按钮之后,断点重新回到方法体之外。
      Debug 特殊技能使用
      • 上图 IntelliJ IDEA 版本:2017.1.3
      • 如上图左侧红框内容,可以看到当前断点线程执行的堆栈情况,最上面的为当前断点位置,下面的是断点前面执行的方法,如果需要看断点前面走过的路,可以查看该区域。并且可以用图上箭头按钮进行限制显示框架类代码的执行过程,而不是包括依赖 jar 里面的执行过程。
      • 如上图右侧红框内容,可以用来展示单点断点位置的内存情况,对于判断内存溢出相关问题很有帮助。


      IDEA Debug 常用快捷键
      IDEA 重构的常用功能介绍
      温馨提示
      下载编程狮App,免费阅读超1000+编程语言教程
      取消
      确定
      目录

      IDEA 简单Java 项目创建和项目配置文件

      IDEA 前端代码模板:Emmet

      IDEA 特殊代码模板:Postfix Completion

      IntelliJ IDEA 配合 Maven 的一些要点

      IntelliJ IDEA 推荐设置

      IDEA 的 Java 热部署插件 JRebel 安装及使用

      关闭

      MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }