V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Dlin
V2EX  ›  程序员

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

  •  
  •   Dlin · May 18, 2022 · 3982 views
    This topic created in 1443 days ago, the information mentioned may be changed or developed.

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

    21 replies    2022-05-18 15:46:15 +08:00
    Tsukihime
        1
    Tsukihime  
       May 18, 2022
    写单元测试不行吗?
    Dlin
        2
    Dlin  
    OP
       May 18, 2022
    @zydxn 启动很慢,费时费力
    Bronya
        3
    Bronya  
       May 18, 2022   ❤️ 2
    断点停止的时候可以按 Alt+F8 打开计算表达式窗口,可以主动执行表达式
    dddyyyttt
        4
    dddyyyttt  
       May 18, 2022
    如果是 spring 项目可以试下 arthas 的通过 springcontext 执行任意方法。
    chendy
        5
    chendy  
       May 18, 2022
    看了看手里的 php 项目,嗯,真香
    可以尝试 alt f8 吧,直接拿 application context
    或者写个专门的 debug 接口,反射干所有
    Dlin
        6
    Dlin  
    OP
       May 18, 2022
    @dddyyyttt 好东西啊,谢谢,可以看看
    LeeSeoung
        7
    LeeSeoung  
       May 18, 2022
    debug 的时候可以自己输入表达式运行的
    Dlin
        8
    Dlin  
    OP
       May 18, 2022
    @chendy 哈,你的建议我明白,感谢
    Dlin
        9
    Dlin  
    OP
       May 18, 2022
    @LeeSeoung 但是需要一个入口来触发 debug 。我需要一个方法帮助我触发,如果能在 idea 里面直接触发就好了。
    LLaMA2
        10
    LLaMA2  
       May 18, 2022
    在工程的入口处随便下个断,调用某个会触发你意图调试代码块的方法,然后光标点在你要停住的地方,然后在调试器中找到运行到光标处的按钮 (↘I )快捷键 ALT+SHIFT+9
    liangkang1436
        11
    liangkang1436  
       May 18, 2022 via Android
    @Dlin 简单来说还是需要上下文咯,那跟单元测试没有区别
    cslive
        12
    cslive  
       May 18, 2022
    debug 模式下不是有个计算器图标一样的按钮,点一下,里面写代码,可以执行
    ryanbuu
        13
    ryanbuu  
       May 18, 2022 via iPhone
    单测又不会启动 sprinh ,为啥会慢…
    EastLord
        14
    EastLord  
       May 18, 2022
    其实你可以看看 IDEA 官方帮助文档
    Helsing
        15
    Helsing  
       May 18, 2022 via iPhone
    idea debug 时把断点设成不 suspend ,再在断点那里加上触发逻辑就可以了
    28Sv0ngQfIE7Yloe
        16
    28Sv0ngQfIE7Yloe  
       May 18, 2022
    问题是依赖上下文和单测也没区别啊,还是单测写得快啊。。。
    hengyunabc
        17
    hengyunabc  
       May 18, 2022
    可以试下 arthas vmtool ,https://arthas.aliyun.com/doc/vmtool
    dddd1919
        18
    dddd1919  
       May 18, 2022
    @Bronya 正解,而且需要把断点打在要执行的代码前,debug 到断点时能用此方法执行断点处已经加载的代码
    co2fe
        19
    co2fe  
       May 18, 2022
    推荐 arthas 配合 IDEA 插件,拿到 SpringContext 直接调用任意方法。
    Dlin
        20
    Dlin  
    OP
       May 18, 2022
    @dddd1919 感谢,我看看
    Dlin
        21
    Dlin  
    OP
       May 18, 2022
    @hengyunabc 感谢,我看看
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5714 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 69ms · UTC 01:58 · PVG 09:58 · LAX 18:58 · JFK 21:58
    ♥ Do have faith in what you're doing.