IDEA 能不能在 DEBUG 模式下手动触发某个方法

2022-05-18 09:45:37 +08:00
 Dlin

这样就不需要专门写个接口或是通过其他方式来调用触发断点了。 手动触发可以极大的提升调试效率。

2556 次点击
所在节点    程序员
21 条回复
zydxn
2022-05-18 09:47:49 +08:00
写单元测试不行吗?
Dlin
2022-05-18 09:51:56 +08:00
@zydxn 启动很慢,费时费力
Bronya
2022-05-18 09:52:07 +08:00
断点停止的时候可以按 Alt+F8 打开计算表达式窗口,可以主动执行表达式
dddyyyttt
2022-05-18 09:55:44 +08:00
如果是 spring 项目可以试下 arthas 的通过 springcontext 执行任意方法。
chendy
2022-05-18 10:12:46 +08:00
看了看手里的 php 项目,嗯,真香
可以尝试 alt f8 吧,直接拿 application context
或者写个专门的 debug 接口,反射干所有
Dlin
2022-05-18 10:15:34 +08:00
@dddyyyttt 好东西啊,谢谢,可以看看
LeeSeoung
2022-05-18 10:16:05 +08:00
debug 的时候可以自己输入表达式运行的
Dlin
2022-05-18 10:16:48 +08:00
@chendy 哈,你的建议我明白,感谢
Dlin
2022-05-18 10:17:35 +08:00
@LeeSeoung 但是需要一个入口来触发 debug 。我需要一个方法帮助我触发,如果能在 idea 里面直接触发就好了。
LLaMA2
2022-05-18 10:19:57 +08:00
在工程的入口处随便下个断,调用某个会触发你意图调试代码块的方法,然后光标点在你要停住的地方,然后在调试器中找到运行到光标处的按钮 (↘I )快捷键 ALT+SHIFT+9
liangkang1436
2022-05-18 10:25:58 +08:00
@Dlin 简单来说还是需要上下文咯,那跟单元测试没有区别
cslive
2022-05-18 10:39:29 +08:00
debug 模式下不是有个计算器图标一样的按钮,点一下,里面写代码,可以执行
q1angch0u
2022-05-18 10:49:25 +08:00
单测又不会启动 sprinh ,为啥会慢…
EastLord
2022-05-18 10:50:22 +08:00
其实你可以看看 IDEA 官方帮助文档
Helsing
2022-05-18 10:59:23 +08:00
idea debug 时把断点设成不 suspend ,再在断点那里加上触发逻辑就可以了
Morii
2022-05-18 11:01:42 +08:00
问题是依赖上下文和单测也没区别啊,还是单测写得快啊。。。
hengyunabc
2022-05-18 11:18:25 +08:00
可以试下 arthas vmtool ,https://arthas.aliyun.com/doc/vmtool
dddd1919
2022-05-18 12:14:21 +08:00
@Bronya 正解,而且需要把断点打在要执行的代码前,debug 到断点时能用此方法执行断点处已经加载的代码
co2fe
2022-05-18 13:45:57 +08:00
推荐 arthas 配合 IDEA 插件,拿到 SpringContext 直接调用任意方法。
Dlin
2022-05-18 15:45:39 +08:00
@dddd1919 感谢,我看看

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/853615

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX