IDEA调试技巧(图文详解,保姆教程)

article/2025/10/15 2:44:48

文章目录

  • 基础篇:
    • 一、行断点
    • 二、详细断点(源断点)
    • 三、方法断点
    • 四、异常断点
    • 五、字段断点
  • 进阶篇
    • 一、条件表达式
    • 二、通过调试来打印堆栈信息
    • 三、可以通过调试来解析表达式
    • 四、避免操作资源drop frames
    • 五、常用按键功能介绍
    • 六、调试源码
    • 七、stream调试

基础篇:

一、行断点

行断点
在这里插入图片描述

二、详细断点(源断点)

打出源断点的方法:按住shift + 左键可以打出源断点
在这里插入图片描述
1.已启用(enable)
2.挂起(suspend):这个如果勾选的话,你会发现这个断点的颜色就会变成红色,和行断点的颜色相同。
suspend中有两个选项,一个是all,一个是Thread。前者勾选之后表示只要运行到这个地方就会停。后者是在多线程调试的时候使用的。表示只有在当前线程的时候会停,别的线程不会停。
3.条件(condition):这个是高阶停止条件,诸如满足if啥啥条件时才会停,这个就是高阶的调试时会用到。
在这里插入图片描述在程序运行完后,图中所示的位置会打印出经过断点的位置,在哪一行被触发的,具体的一个类,以及所在方法的详细签名都会显示出来。

三、方法断点

在方法的那一行上打上断点,就是方法断点
在这里插入图片描述
在方法断点的调试的时候,会分别在该方法的前后停住。
在这里插入图片描述

四、异常断点

异常断点需要自行配置,配置完了之后当程序运行到出现某个配置好的异常的时候就会停下来。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
经过这几步即可完成异常断点的设置。

五、字段断点

在这里插入图片描述
检测整个生命周期值的变化
在这里插入图片描述
在这里插入图片描述
你会惊奇的发现,每个字段对应的值都会给你标上去,而且你需要特殊监控的字段会单独标注出来。

进阶篇

一、条件表达式

打上行断点之后,鼠标右击断点,即可对断点进行编辑,给断点添上条件
在这里插入图片描述
当i是偶数的时候停顿。
在这里插入图片描述

二、通过调试来打印堆栈信息

在这里插入图片描述
这两个勾选上之后就可以打印堆栈信息了。
在这里插入图片描述

三、可以通过调试来解析表达式

在这里插入图片描述
点击这个长得像计算机一样的按钮,就会出来evaluat面板。
在这里插入图片描述
点击评估按钮,就可以出来表达式解析的内容,可以很方便地查看各种你想查看的信息,这个功能简直强的离谱。

四、避免操作资源drop frames

在这里插入图片描述
在这里打上断点,模拟在此处遇到了事务操作的问题。
在这里插入图片描述
很好现在很难受的时候发生了,我们现在要做的就是将程序停下来,防止将错误的数据存到数据库中。正常人第一反应就是点击图中的红色方块,将程序强制停止下来,这样就不会把错误的数据存到数据库中了吧。那么事实是这样吗?让我们看看点击之后的效果。
在这里插入图片描述
很遗憾,更加shit的事情发生了。我们以为程序停止了,实际上并没有完全停止。tnn的还是把后面的语句都执行完了啊,错误的信息还是存到数据库中去了。

江湖上流传着一个解决方法,点击下图中的这个按钮,丢弃当前帧(drop frame)。
在这里插入图片描述
然而这么做实际的效果是:
在这里插入图片描述
回到了这个方法开始执行的时候,也就是进入该方法前的位置。
在这里插入图片描述
我们点击步入,又回到了这个位置,进行了无限的套娃操作。
然而真正的解决方法应该是。。。。。。。拔电源,没错,这样就不会又任何的问题了。

回到正题,真正的解决方法如下:
首先进入帧(frames)面板,找到对应的运行的位置,右键弹出选择框。
在这里插入图片描述
在这里插入图片描述
然后选择force return
在这里插入图片描述
然后看控制台发现后面的内容确实没有执行,控制台没有任何的输出。

五、常用按键功能介绍

在这里插入图片描述
1.显示执行点(show execution point):点击之后鼠标光标可以直接回到断点所在的位置。
2.步过(step over):不管当前行会不会调用其他的方法,或者是跳到其他地方去都不会管,直接执行完当前行跳到下一行代码。
3.步入(step in)和步出(step out):这个好理解就是执行下一步,回到上一步。
4.强制步入(force step into):点击之后,强制进入方法的内部查看。
5.运行到光标处(run to cursor):点击之后,可以直接运行到光标所在的位置,在这之间不会有任何停顿。

六、调试源码

在方法开始的地方打一个断点,然后在需要查看的方法的源码中也打上一个断点。
在这里插入图片描述
在这里插入图片描述

七、stream调试

在这三行的任意一个位置都是可以打断点的,并且在给stream打断点的时候会有特殊选项。
在这里插入图片描述
在这里插入图片描述
选好后,开始运行程序,我们发现程序中没有任何的数据显示和输出。
在这里插入图片描述
但是在像计算机按钮的旁边出现了一个按钮。
Trace Current Stream Chain(跟踪当前流链)
点击之后的效果简直裂开。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
还可以选择扁平模式,看得更加直观。
在这里插入图片描述


http://chatgpt.dhexx.cn/article/fOZfZwcO.shtml

相关文章

Intellij IDEA 调试功

本文简单介绍 IDEA 编辑器的调试功能,主要包括断点调试、单点调试、高级调试。可以收藏本文章,使用到的时候方便查找。 1.设置断点 选定要设置断点的代码行,在行号的区域后面单击鼠标左键即可。 2.开启调试会话 点击红色箭头指向的小虫子,开始进入调试。 IDE下方出现 Deb…

在Intellij IDEA中使用Debug

Debug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化。通常我们也可以启用Debug模式来跟踪代码的运行流程去学习三方框架的源码。 所以学习下如何在Intellij IDE…

IDEA的debug调试技巧详解

目录 一、概述 二、debug操作分析 1、打断点 2、运行debug模式 3、重新执行debug 4、让程序执行到下一次断点后暂停 5、让断点处的代码再加一行代码 6、停止debug程序 7、显示所有断点 8、添加断点运行的条件 9、屏蔽所有断点 10、把光标移到当前程序运行位置 11、…

app分享到微信的方案

来源分析 商业分析在微信的使用人数已经高居各通讯APP的榜首的同时,微信成为了我国移动流量最大的平台之一。在次趋势的引导下,很多的商家、体户便抓住了这一机遇,利用微信这个渠道来做产品的推广、以及营销方案宣传。但是好景不长&#xff…

java版微信分享功能(支持分享给好友/分享到朋友圈)

点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐] 先上官方文档:http://mp.weixin.qq.com/wiki/home/index.html 做之前建议先过遍文档,文档都说的清晰明了。 如果已经看过文档,那我们一起整理下JSSDK的流程步骤: 绑定域名 …

Android中实现微信分享的功能

在android开发中微信分享功能还是经常用到的,比如把文字,图片,网页类型,小程序类型的文件等分享给微信好友,朋友圈等。官方文档 那么接下来就来说说如何去实现吧 一.添加依赖 implementation com.tencent.mm.opensdk:…

H5链接分享到微信

在开发中最长遇到的一个需求就是微信分享&#xff0c;那么怎么实现呢&#xff0c;我使用uni-app写的 首先需要一个引导分享的图片 <view v-show"yd" class"boxContent" click"getclose(text)"><image class"yd" src"/s…

微信小程序学习 onShareAppMessage转发分享

最近在做仿抽奖助手小程序&#xff0c;遇上分享的一个问题。抽奖助手分享出来的商品缩略图很清晰且格式更好&#xff0c;而我们分享出来的是页面的默认截图&#xff0c;感觉不好看。其实它这个地方用的是图片&#xff0c;增加一个imageUrl即可。 onShareAppMessage(options) 在…

H5微信分享、自定义微信分享

在一个h5页面添加微信&#xff0c;分享给微信好友、朋友圈、腾讯微博 下面来实现 。 需要&#xff1a; 1、需要一个企业版的微信公众号&#xff08;认证过的&#xff09; 2、一台服务器 企业版的微信公众号原因&#xff1a; 在微信公众平台的接口权限内可以看到&#xff…

使用shareSDK实现微信多图分享到朋友圈Url分享到朋友圈URL分享到好友 问题记录

问题概述 其实第三方分享很早就有了&#xff0c;这个按理说这个应该没什么难度&#xff0c;为啥记录一下呢&#xff0c;因为项目中同时出现了 朋友圈多图分享&#xff08;多张URL集合&#xff09;&#xff0c;朋友圈URL分享&#xff0c;群和个人URL&#xff0c;图片分享。基本…

iOS ShareSDK实现分享——微信分享

最近领导让添加ios 微信分享视频的功能&#xff0c;之前做的只有微信分享本地图片的功能。 查看官网并没有找到答案&#xff0c;后来在其官网论坛中http://bbs.mob.com/thread-20938-1-1.html 这里面发现新版的sdk&#xff08;v3.2.1&#xff09;中才添加的微信分享本地文件&a…

微信分享功能

最近在做手机端页面&#xff0c;需要一个分享功能&#xff0c;其实自身分享是可以的&#xff0c;但是为了分享出的内容丰富&#xff0c;比如缩略图了&#xff0c;描述了等等&#xff0c;如下图所示&#xff1a; 步骤一&#xff1a;绑定域名 先登录微信公众平台进入“公众号…

Android app分享文件到微信

两种实现方案&#xff1a; 1.使用WXFileObject构造分享方法发送到微信&#xff1b; 2.调用系统分享方法&#xff0c;把文件直接发送到微信&#xff1b; 那么下面来分别看看怎么实现&#xff1a; 〇、准备工作 首先&#xff0c;需要在AndroidManifest.xml中配置FileProvider信…

ShareSDK关于微信分享问题

转自&#xff1a;http://www.eoeandroid.com/thread-310281-1-1.html 发现用sharesdk&#xff0c;做其他平台分享很快&#xff1b;如新浪微博、腾讯微博、有道云笔记、开心网、Google等等&#xff0c;几句代码就搞定&#xff1b; 但是微信有点麻烦&#xff0c;下面我把…

uniapp实现录音喊话功能

直接先上代码&#xff1a; const recorderManager uni.getRecorderManager() onShow() {this.test()},methods: {test() {uni.getSetting({success: (res) > {console.log(res.authSetting, res.authSetting[scope.record]);if (res.authSetting[scope.record] false) {…

h5调用android录音,html5网页录音插件Recorder

插件描述&#xff1a;html5 js 录音 mp3 wav ogg webm amr 格式&#xff0c;支持pc和Android、ios部分浏览器、和Hybrid App(提供Android IOS App源码)&#xff0c;微信也是支持的&#xff0c;提供H5版语音通话聊天示例 Recorder用于html5录音 支持大部分已实现getUserMedia的移…

利用RecordRTC.js实现H5录音功能

前言&#xff1a; 最近遇到 要语音转文字 的需求&#xff0c;语音转文字肯定要先搞定录音功能&#xff0c;在网上找了好久没找到具体的 RecordRTC.js 插件的使用方法&#xff0c;最后只能对着 github 上开源代码小试了一下&#xff0c;录音功能好使所以就记录一下叭 一、Reco…

vue录音+js-audio-recorder

小小记录一下项目中用到的录音功能 1.下载插件 npm i js-audio-recorder 2.展示代码 <template><div style"padding: 20px;"><div style"font-size:14px"><h3>录音时长&#xff1a;{{ recorder && recorder.duration.…

html 苹果微信录音js,微信js-sdk 录音功能的示例代码

需求描述 制作一个H5页面&#xff0c;打开之后可以录音&#xff0c;并将录音文件提交至后台 微信录音最长时长为1min 代码如下 // isVoice&#xff1a; 0-未录音 1-录音中 2-录完音 // 点击录音/录音中 按钮展示 点击录音 // isListen // 0-未试听/试听结束 1-试听中 2-暂停试听…

已解决:H5移动端网页实现录音功能,js实现录音功能,包括安卓webview接口也可以使用

遇到一个需求&#xff0c;需要做一个手机网页录音的功能&#xff0c;嵌入到webview中去&#xff0c;用安卓原生录音倒是可以&#xff0c;但是想着尽量去安卓化开发&#xff0c;就想着用纯的js前端代码去实现录音功能。 在 Web 应用程序中&#xff0c;JavaScript 是运行在浏览器…