前言

在下认为,IDEA的debug功能非常强大。并且易于上手,快捷键操作方便。下面介绍一些常用的基本debug方法

IDEA版本

在下使用的IDEA版本信息如下:

IntelliJ IDEA 2018.3.6 (Ultimate Edition)

不同的IDEA版本可能会造成界面部分地方不同。但是功能是不会变化的。

基本debug流程

  1. 打断点

    在IDEA中为某一行打上断点有两种方法可以做到。在下常用的是鼠标点击打上断点

    1. 在代码行号的右边点击鼠标左键,这样就能直接打上断点
    2. 使用快捷键Ctrl+F8可以直接在光标所在行打上断点。打上断点之后再次点击可以取消打上的断点
  2. 启动程序开始debug。启动debug的常用方法有2个

    1. 点击debug图标开始启动debug程序。debug小图标常见的位置有3处。具体操作在下图中给出
    2. 使用快捷键shift+F9可直接启动debug程序
  3. 控制程序继续执行的操作有两种方式

    1. 点击debug窗口的各种图标进行操作。所有图标如下所示

      • 整个控制图标栏
      • step over : 执行一行程序,不进入函数
      • step into :执行一行程序,遇到可进入的函数则进入函数,不进入库函数
      • force step into:执行一行程序,遇到可进入的函数则进入函数,进入库函数
      • step out:执行完当前函数,然后跳转到当前函数的调用函数
      • drop frame:直接从当前函数返回,并且跳转到上级函数将要调用此函数的地方。并且保持此函数中已进行的内存修改(这个功能很少用到)
      • run to cursor:执行到光标所指的那行程序
    2. 使用快捷键执行程序.由于所有图标的快捷键都可以将通过鼠标悬停的方式显示,此处不再赘述。

    下面介绍部分使用小技巧

    • 鼠标悬停于按键一段时间后显示快捷键以及功能简单描述:
    • 按键功能完整描述在界面左下角处,如图所示:

  1. 查看内存数据

    1. 查看一个特定对象或者一个内置数据类型可以在debugger窗口的variables一栏中寻找。variables会显示程序执行到现在,栈帧中存在的所有变量以及其值。内置类型会直接显示其值,对象可以展开查看内部信息。简单示例图片如下

    2. 如果没有看到variables一栏,是因为其没有展开,点击debugger窗口右侧的variable图标 即可打开variable一栏即可

    3. variables一栏显示的是栈帧上的内存情况,在切换栈帧时,variables中可以展示不同栈帧中的局部变量。在frame一栏中点击不同的函数名即可切换栈帧。如下图所示

    4. 需要持续观察一个对象时可以使用watches一栏,将变量加入其中便一直能查看该变量。将变量加入有两种方法。

      1. 点击watches的"+"号,然后输入变量名,点击回车键加入。(在输入变量名时代码补全)
      2. 直接从variables一栏中拖拽变量进入watches一栏中
      3. 操作示例:
    5. IDEA还提供了更方便的查看方法,在程序运行时,编辑器中会附加变量的信息在源代码上,以灰色的字符附加到代码的之后。

      1. 附加信息展示:

      2. 将鼠标悬停在源代码的变量上时,会弹出变量的信息,并且当变量为对象时,可以查看更加详细的信息

以上便是IDEA基本debug功能的使用方法。谢谢阅读
以下为测试中涉及的代码

import java.util.ArrayList;
import java.util.List;public class debug_basic {public static void main(String[] args) {/*基本数据类型*/int a=0;double b;b=3.5;a =(int) b;/*对象、集合*/List<Integer> list = new ArrayList<>();list.add(1);list.add(2);list.add(a);f1(list);String s = "this is a string "+list.get(2);System.out.println("basic debug");}private static void f1(List<Integer> list) {System.out.println(list.get(0));list.set(0, 3);System.out.println(list.get(0));}}

IDEA使用教程之debug基本操作(二)相关推荐

  1. 如何在win64位下搭载汇编环境?DOSbox教程之debug怎么使用?

    1.下载debug.exe.masm.exe.link.exe和dosbox文件 https://pan.baidu.com/s/1DvyqkLIFeOEdbZE62PRvTg 提取码: g8hy 先 ...

  2. CryENGINE3系列总结教程之UI/HUD(二)Flash资源导入CE3

    紧接上回,既然我们已经成功做好了生命条和弹药条的动画,并且已经发布,那么就是时候导入到ce3了,好了废话不多说,直接 进入步骤. (一)创建xml文件 1.在<engine root>\G ...

  3. nodejs入门教程之CommonJs学习(二)

    学习背景 很早之前,我们在网页中写js逻辑常常都是一个js文件从头写到尾,也很少考虑去分成多个模块.渐渐的随着项目增大,js代码维护就变得异常困难,为了解决这个问题前端模块化应运而生,比如用的比较多的 ...

  4. 乐鑫代理-启明云端分享ESP32系列教程之二:Linux搭建esp-idf环境

    提示:此教程依据乐鑫官方的ESP32入门教程总结而来,仅供个人参考学学习,如有错误,欢迎批评指正.乐鑫官方参考: 乐鑫官方文档地址 1.搭建esp-idf环境 1.1安装虚拟机与Ubuntu 未安装请 ...

  5. SAP UI5 初学者教程之二:SAP UI5 的引导过程(Bootstrap) 试读版

    Jerry 从 2014 年加入 SAP成都研究院 CRM Fiori 开发团队之后开始接触 SAP UI5,曾经在 SAP 社区和"汪子熙"微信公众号上发表过多篇关于 SAP U ...

  6. Docker最全教程之MySQL容器化 (二十五)

    前言 MySQL是目前最流行的开源的关系型数据库,MySQL的容器化之前有朋友投稿并且写过此块,本篇仅从笔者角度进行总结和编写. 目录 镜像说明  运行MySQL容器镜像  1.运行MySQL容器  ...

  7. Docker最全教程之Python爬网实战(二十二)

    Python目前是流行度增长最快的主流编程语言,也是第二大最受开发者喜爱的语言(参考Stack Overflow 2019开发者调查报告发布).笔者建议.NET.Java开发人员可以将Python发展 ...

  8. Docker最全教程之MySQL容器化 (二十四)

    Docker最全教程之MySQL容器化 (二十四) 原文:Docker最全教程之MySQL容器化 (二十四) 前言 MySQL是目前最流行的开源的关系型数据库,MySQL的容器化之前有朋友投稿并且写过 ...

  9. 【SAP PO】SAP PO 接口配置完整教程之二REST服务对接

    SAP PO 接口配置完整教程之二REST服务对接 1.了解服务协议 1.1.服务通讯协议 1.2.具体接口协议 1.3.接口服务测试 2.PO端接口配置 2.1.PO端ESR配置 2.2.PO端IB ...

最新文章

  1. Qt中定时器使用的两种方法
  2. 海量数据处理分析_BI
  3. js 设置password placeholder样式_装机必备!超级详细的BIOS设置图解
  4. unity 坐标系转换_Unity的几种坐标系及相互转换
  5. 2021年高考成绩什么时候查询辽宁,2021年辽宁高考成绩什么时候几点可以查
  6. 计算机专业教师演讲稿,计算机部教师会议发言稿范文
  7. 解决安装软件时出现的error1723,以安装破解版Endnote X9为例(附资源)
  8. 安卓手机获取root权限---修补面具root步骤解析
  9. MFC应用程序关闭时,提示兼容性助手。
  10. 树莓派之常用软件(32位/64位)
  11. 【具体实现过程】百度地图POI区域的边界经纬度坐标数据采集
  12. 使用邻接表创建无向图和有向图
  13. 批量爬取巨潮资讯网中“贵州茅台”相关公告的PDF文件。
  14. 最小公倍数和最大公约数的求法——最快的:辗转相除法
  15. 107- 智力金壤:争分夺秒是什么意思生肖求解
  16. 用java写一个金字塔,一个Java写的用以构建影像金字塔的Bitmap类
  17. 编辑数学公式绘制曲线
  18. win10家庭版能学计算机吗,教你win10家庭版如何获取管理员权限
  19. 食品安全与卫生PPT模板
  20. 中国地方游戏网游戏大厅 v2.0 官方

热门文章

  1. “婚礼哥”蹿红网络:用巨资打造史上最完美的婚礼征服女明星
  2. 一文看懂-纹理/贴图/材质
  3. 推荐几个程序员接私活的网站
  4. 四大秘要!让用户第一眼就爱上你的网站
  5. 上海疯狂神途 适用于android设备,上海疯狂神途
  6. VB的Autoredraw、refresh等等功能分析汇总及“内存作图”
  7. 英文和中文字体如何合并
  8. 微信开发者工具向gitee提交或者拉取代码报错push failed invalid authentication scheme
  9. php自动绑定微信,【教程】绑定自主微信支付配置说明
  10. 复选框check的选中、不选中设置以及判断是否选中