如果你也会这样调试,那真是泰酷辣

简介: 学会如何利用 IDEA 高效 debug ,将会大大提升我们的工作效率,希望本文会给你一些参考。

来源|阿里云开发者公众号

作者|有清

一、引言

工欲善其事,必先利其器,学会如何利用 IDEA 高效 debug ,将会大大提升我们的工作效率。基本的断点调试方式就不讲解了,网上有很多优秀的文章,这里会主要举一些我们日常工作中重要但是容易被忽视的调试技巧。

二、正文


2.1 不暂停的 debug

通常情况下,我们断点的时候,会卡住当前线程。假设我们在主预发或者公用环境进行debug,就老感觉背后有人在骂我,谁又在debug,环境怎么又不通了!所以当我们想要愉快在公用环境debug的时候要:

查看变量值

不暂停直接观察相关变量值

强行改变变量值

是谁调用了我

可以直接观察到调用堆栈,类似 Arthas 的 trace

你进来了不

如果执行了断点所在位置,会在控制台打出一行日志:


2.2 快速执行表达式

我们通常在调试的时候,利用 Evaluate Expression...(option + F8),可以进行我们的表达式执行。

有一定开发经验的小伙伴肯定使用过这个功能,因为在工作中,这个调试技巧使用的频率还蛮高的,我们可以利用快捷键高效调试,例如下图:

快捷键:alt + d 唤起执行窗口 -> option + F9 定位光标处 -> option + command + f8 快速执行表达式

2.3 调试的时光倒流

有的时候,我们的小伙伴可能心太急,一路迅速 deubg,却忘记沿途的风景了,这个时候我们就需要利用到 drop frame,具体操作如下图所示:


2.4 仅调试循环中的一个条件

有的时候,我们只想调试 for 循环中的某个条件,假设我们这个循环有 100 次,其中只有第99次的循环是我们想要的,如果我们一直点点点,点到第99次,那真是有一点痛苦,我们可以这样:

2.5 谁给变量赋的值?

在我们的项目中,假设有个变量 a,我想知道这个流程中到底是谁给 a 赋过值,结果一反引,几百处引用,那么我该如何知道谁在方法中给 a 赋了值,我们只需要在 pojo 对象的 a 字段上打上断点即可,动图展示一下:

2.6 这个方法何去何从

在我们的项目中,有个接口 a,但是有无数的类实现了这个接口 a,我想调试到真正执行 a 方法的地方,我该怎么做?在无数实现类中 debug 吗?我们可以将断点打在这个接口 a 方法上(当然,这个将会使你的 debug 变慢)。

2.7 断点执行至光标处

我们当前断点停止在第 5 行,假设我们想断点调试第 12 行,一般来说,我们在 12 行断点,然后直接往下走即可:

但其实我们可以这样:

直接 Run to Cursor (强烈建议快捷键操作,更加丝滑 option + F9),就可以直接断点到我们的 12 行。

2.8 异常断点

全局异常断点,会自动断点到我们出现异常的地方,具体操作可见图:

相关文章
|
8月前
|
人工智能 弹性计算 自然语言处理
只需3步!阿里云一键部署OpenClaw,轻松拥有专属AI助理!
OpenClaw怎么部署?阿里云推出了OpenClaw一键部署方案,只需三步,即可轻松拥有专属AI助理!
676 6
|
3月前
|
数据采集 人工智能 自然语言处理
4个关键动作:让大模型在回答中准确引用你的企业信息
本文揭秘大模型如何“认识”企业:它不爬官网,而是拼凑散落各处的碎片信息。企业常因百科、招聘页、官网描述不一致而被误读。文章提出4个实操动作——官网结构化标记、百科权威认证、高质量外链背书、多渠道信息统一,助企业构建可信数字底座,提升被大模型准确引用的概率。
461 1
|
4月前
|
人工智能 Java Shell
Agent Skills:把团队里"只会做一遍"的经验,变成 Agent 能反复调用的能力包
Agent Skills 是 Anthropic 推出的开放标准,将领域经验封装为可复用、可版本化的能力包(含 SKILL.md、脚本等)。它通过渐进式加载省上下文,区别于 Prompt(一次性指令)和 MCP(工具协议),是 AI 从“通用推理”走向“专业执行”的关键基建。
550 1
|
4月前
|
存储 人工智能 JSON
大模型幻觉治理:从机理到生产级缓解方案
本文深入剖析大模型“幻觉”本质,指出其是架构性问题而非能力不足,并系统提出分层治理方案:从幻觉分类、根因分析(训练目标、知识存储、解码随机性),到评测方法、Prompt约束、受限解码、RAG增强、Guardrail兜底及训练优化,强调多层防御与人机协同。
730 2
|
3月前
|
消息中间件 运维 监控
🎉 分布式运维监控平台 WGCLOUD v3.6.9 正式发布
WGCLOUD是一款国产轻量高效分布式运维监控平台,支持Linux/Windows/macOS等多系统,涵盖主机、Docker、K8s、Redis、RocketMQ、IPMI等全栈监控,集成大屏可视化、Web SSH、智能告警与AI分析,开源免费,开箱即用。(239字)
|
4月前
|
人工智能 JSON 自然语言处理
企业如何量化品牌在AI回答场景中的曝光表现
本文提出VPSI四维量化框架(可见度、显著性、情感度、影响度),解决AI回答中品牌曝光难以衡量的痛点,提供可落地的技术实现与评估体系,助力企业从经验判断转向数据驱动的品牌管理。
294 0
|
8月前
|
存储 缓存 Linux
ffmpeg.wasm 合并 TS 视频教程:浏览器端视频处理实践
一种基于ffmpeg.wasm的浏览器端TS视频合并方案,通过将FFmpeg编译为WebAssembly,实现了在浏览器本地直接处理TS文件的功能。文章详细阐述了实现思路:加载wasm核心、上传TS文件、生成合并列表、执行FFmpeg命令并导出MP4。
ffmpeg.wasm 合并 TS 视频教程:浏览器端视频处理实践
|
8月前
|
安全 Android开发 Windows
【安卓端+电脑端】怎么阻止手机弹窗广告?一键关闭弹窗广告软件推荐,你能接受办公软件有弹窗广告吗?如何屏蔽弹窗广告?
AdGuard是一款跨平台广告拦截工具,支持电脑、手机、TV及浏览器插件。一键开启即可屏蔽弹窗、网页广告及电视广告,内置家长控制、黑白名单与自定义过滤规则,有效净化网络环境。(239字)
2395 7
|
11月前
|
SQL 分布式计算 运维
一套平台养百家客户?多租户数据平台不是“分库分表”这么简单
一套平台养百家客户?多租户数据平台不是“分库分表”这么简单
626 6
|
11月前
|
存储 弹性计算 Linux
阿里云服务器怎么购买?阿里云服务器便宜购买教程
阿里云服务器怎么购买?阿里云服务器提供三种不同的购买入口,每种方式在配置灵活性、操作复杂度等方面各有特点,用户可根据自身需求选择合适的购买方式,以下是详细介绍: