Skip to content

附着本地应用

启动应用

DebugTools 通过 Java Agent 技术来实现调试,所以调试时必须保证项目已经启动完成。

附着应用

下面为本地方法,附着远程点击查看。

点击 Idea 右侧的 工具栏唤醒 DebugTools 的窗口,点击 加号 获取本地可以附着的应用列表。

tools_window

选择要调试的应用,点击 Attach 按钮进行应用附着。

application_list.png

成功附着应用后,DebugTools 会在显示附着状态。

  • L: 标识附着的是本地应用,R代表是远程应用。
  • Connected: 应用已经附着成功并连接服务成功。
  • i.g.f.d.t.t.a.DebugToolsTestApplication: 应用名称。
    • 附着时指定应用名时为指定的应用名
    • 未指定应用名时如果是 Spring 应用取 spring.application.name 配置项。
    • 未指定时取启动时jar中的 Main-Class
    • 未找到时取启动命令中的 sun.java.command

attach_status

连接成功后,可以唤醒调试面板进行远程方法快捷调用并查看结果,也可以使用groovy控制台

调用方法

在要调用的方法上唤醒右键菜单,点击 Quick Debug 唤醒 调试面板

idea_menu.png

如我们要快速调用 TestServicetest 方法
java
package io.github.future0923.debug.tools.test.application.service;

import org.springframework.stereotype.Service;

@Service
public class TestService {

    public String test(String name, Integer age) {
        return "name = " + name + ", age = " + age;
    }
}
输入调用方法时参数的值

name=DebugToolsage=18,DebugJson 格式会自动生成,详细点击了解。这里我们在 content中传入对应的值即可。

quick_debug

点击 Run 按钮调用方法。

展示结果

调用成功后会在 DebugTools 窗口中展示 运行结果(方法的返回值)。

  • toString: 展示方法返回值调用ToString方法后的结果。
  • json: 将方法返回值通过Json的方式展示。
  • debug: 将方法返回值通过类型Idea Debug的样式展示。

run_result

Debug 方式启动应用调用

如果应用通过 Debug 方式启动时,调用的目标方法有 断点,执行完断点后会返回执行结果。
所以可以 Debug 方式启动应用,通过 DebugTools 快速调用方法,增加断点对目标方法进行调试。