Mac Intellij Debug 模式

时间:2023-01-31 10:07:11

前言:本文的核心是记录debug的使用,与具体的操作系统无关。

1.什么是Debug


Debug是程序的一种运行模式。用来发掘程序的走向,以及程序在运行过程中参数的变化。

2.Debug的作用


debug用来追溯代码的运行流程,通常在程序运行跟预期结果不符合的时(程序运行时出现异常),那么启动debug模式可以分析定位异常发生的位置,帮助程序员更好的fix bug

3.Debug的使用


主要讲解intellj中debug的使用 ,此篇不会讲解debug时可用的快捷键。
配合idea中图形界面来进行讲解。

3.1.程序打上断点
首先为程序打上断点,我采用的是spring demo,因为这样可以演示给第三方spring jar包如何打上断点。
主程序上断点如下图所示:

Mac Intellij Debug 模式
程序打上断点.png

第三方jar包反编译源代码断点如下图所示:

Mac Intellij Debug 模式
屏幕快照 2016-10-26 下午3.09.44.png

3.2单步调试
3.2.1 Step Over:
点击红色箭头指向的按钮,程序向下执行一行。

Mac Intellij Debug 模式
屏幕快照 2016-10-26 下午3.21.02.png

但有一种情况需要注意,如果在一个顺序执行的程序文件中打上断点,而第一行被打上断点的代码调用了其他方法,而且这个被调用的方法上也有断点,那么这样单步执行的顺序是,先祝程序文件中第一行被打断点的程序运行,接下来是被调用方法中打了断点的那一行代码,最后接着顺序运行此主程序文件中其它被打了断点的代码。
3.2.2 Step Into:
点击红色箭头指向的按钮,程序向下执行一行。如果该行有自定义方法,则运行进入自定义方法,如果有第三方类库方法,则在idea 中可以进入第三方代码中。具体步骤如下:

Mac Intellij Debug 模式
屏幕快照 2016-10-26 下午3.41.02.png

在程序第十三行设置断点,然后点击上图中红色箭头指向的按钮,程序运行至第三方类库当中代码,代码如下图所示:

Mac Intellij Debug 模式
屏幕快照 2016-10-26 下午3.45.08.png

3.2.3 step out

Mac Intellij Debug 模式
屏幕快照 2016-10-26 下午3.48.30.png

如果在调试的时候你进入了一个方法,并觉得该方法没有问题,你就可以使用stepout跳出该方法,返回到该方法被调用处的下一行语句。值得注意的是,该方法已执行完毕。
3.2.4 Drop frame

Mac Intellij Debug 模式
屏幕快照 2016-10-26 下午3.50.50.png

点击该按钮后,你将返回到当前方法的调用处(如上图,程序会回到main()中)重新执行,并且所有上下文变量的值也回到那个时候。只要调用链中还有上级方法,可以跳到其中的任何一个方法。
3.2.5 纯断点运行
所谓纯断点运行表示:程序只在断点处停留。

Mac Intellij Debug 模式
屏幕快照 2016-10-26 下午3.55.53.png

发现上述两个按钮都可以实现效果
3.2.6 查看断点
按如下按钮可以查看程序中所有的断点:

Mac Intellij Debug 模式
屏幕快照 2016-10-26 下午3.58.03.png

效果图如下所示:

Mac Intellij Debug 模式
屏幕快照 2016-10-26 下午3.59.29.png

你可以从中删除不想要的断点。重新debug
3.2.7 变量值查看
idea中变量值的查看非常简单如下图:

Mac Intellij Debug 模式

Mac Intellij Debug 模式的更多相关文章

  1. Intellij debug模式使用

    1.这里以一个web工程为例,点击图中按钮开始运行web工程. 2.设置断点 3.使用postman发送http请求 4.请求发送之后会自动跳到断点处,并且在断点之前会有数据结果显示 5.按F8 在 ...

  2. intellij debug模式提示 Method breakpoints may dramatically slow down debugging

    之前不小心打了一个断点,然后项目长时间不能启动,保持一个加载的状态,并且提示Method breakpoints may dramatically slow down debugging,百度之后才知 ...

  3. Intellij IDEA debug模式下项目启动慢/无法启动的事件解决过程记录

    项目无法启动了 简单的介绍一下事件过程:周一的早上,收到前端同事抛过来的一个任务,说是一个接口无法正常返回数据,于是就让他把参数发过来,我想试着在本地重现一下并且将问题修复掉,这种情况肯定是要通过de ...

  4. 【Idea】Intellij Idea debug 模式如果发现异常,即添加异常断点在发生异常处

    前用eclipse的时候,可以根据所抛出的异常进行调试,比如:出现了空指针异常,我想知道是哪一行抛出的,在eclipse中我只需在debug模式下把空指针异常这个名字设置进去,当遇到空指针异常时,ec ...

  5. Intellij Idea debug 模式如果发现异常,即添加异常断点在发生异常处

    以前用eclipse的时候,可以根据所抛出的异常进行调试,比如:出现了空指针异常,我想知道是哪一行抛出的,在eclipse中我只需在debug模式下把空指针异常这个名字设置进去,当遇到空指针异常时,e ...

  6. IntelliJ IDEA. Debug模式

    资料收集: https://www.bilibili.com/video/av6749471/?p=16 eclipse debug模式. 基础 Intellij Idea--Debug使用 Inte ...

  7. Intellij IDEA Spring Boot 项目Debug模式启动缓慢问题

    问题 Intellij IDEA Spring Boot 项目Debug模式启动缓慢 环境 os: windows10 idea :2018.1 解决方法 去除所有断点就正常了,很诡异,原因未知.

  8. IntelliJ IDEA Debug模式启动项目

    导入项目,没有看到debug模式 点击 next  next next next

  9. IDea 工具debug模式详细使用说明

    IDea 工具debug模式详细使用说明 IDEA中如何使用debug调试项目 一步一步详细教程 Debug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生 ...

随机推荐

  1. 11月6日下午PHP注册审核(审核状态控制登录、可以更改审核状态)

    1.创建登录界面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww ...

  2. Interview----链表的倒数第K个元素

    这个题虽然简单,但是一定要细心,bug-free 能力很重要. 分析: 如果不知道链表的长度,可以采用双指针的方法,让一个指针先走 k 步,然后两个指针同时走, 前面的指针变成 NULL时, 第一个指 ...

  3. Python 中 os&period;path模板

    os.path.abspath(path) #返回绝对路径 os.path.basename(path) #返回文件名 os.path.commonprefix(list) #返回list(多个路径) ...

  4. 开始3D编程前需注意的十件事

    http://www.csdn.net/article/2013-06-21/2815949-3d-programming 原文作者Vasily Tserekh是名3D编程爱好者,他发表了一篇博文&l ...

  5. shell脚本实现git和svn统计log代码行

    实现的功能 git 根据传入的三个参数:起始统计日期.结束统计日期.git仓库地址. 脚本统计的是git仓库内的所有分支的log信息. 脚本统计的是指定时间段内.每一个提交人指定的git地址的所有分支 ...

  6. Java基础系列--instanceof关键字

    原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/8492158.html instanceof关键字是在Java类中实现equals方法最常使 ...

  7. python 模块之-shelve

    shelve模块比pickle模块简单,只有一个open函数,返回类似字典的对象,可读可写;key必须为字符串,而值可以是python所支持的数据类型 import shelve f = shelve ...

  8. 【OpenFOAM案例】01 elbow

    本案例演示利用OpenFOAM的icoFoam求解器计算弯曲管道中的混合流动问题. 1 拷贝tutorials文件 启动终端,且拷贝tutorials文件夹中的文件.利用命令: cp -r $FOAM ...

  9. netstat 查看端口

    -l 仅列出有在监听(listen)的服务状态 -n 拒绝显示别名,能显示数字的全部转化成数字 -p 显示建立相关链接的程序名 -t 仅显示 tcp 相关选项 -u 仅显示 udp 相关选项 -a 显 ...

  10. &lbrack;poj 2453&rsqb; An Easy Problem

    An Easy Problem Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8371   Accepted: 5009 D ...