IDEA debug操作

package com.hbk;

public class DebugTest {
    public static void main(String[] args) {
        int i = 0;
        i++;
        int j = computer(i);
        System.out.println(j);
    }

    private static int computer(int i) {
        int j = i+2;
        return j;
    }
}

增加两个端点
在这里插入图片描述

右键选择debug模式运行。

debug常用快捷键

F6 单步执行

F5 进步方法

shift+F8 调出方法,跳到调用方发处

F8执行到下一个断点,没有下一个断点则执行完

Ctrl+u 表达式计算

### Intellij IDEA Debug 的底层实现原理 IntelliJ IDEA 的调试功能基于 Java 虚拟机调试接口(JVMTI),这是一个用于监控和控制 JVM 运行状态的 API 集合。当开发者通过 IntelliJ IDEA 启动应用程序并进入调试模式时,实际上是启动了一个带有特定参数的 JVM 实例,这些参数允许调试器连接到目标进程。 #### 1. **调试模式下的 JVM 参数** 在调试模式下运行程序时,IDEA 会在命令行中加入 `-agentlib:jdwp` 参数[^1]。这个参数指定了 JDWP(Java Debug Wire Protocol)协议的相关配置,例如传输方式、地址以及是否暂停等待调试器附加等。JDWP 是一种通信协议,它定义了调试器与被调试的应用之间的交互规则。 以下是典型的调试启动命令的一部分: ```bash -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 ``` - `transport`: 定义使用的传输机制,默认为 socket。 - `server`: 表明当前 JVM 是否作为服务器端接受客户端调试器连接。 - `suspend`: 如果设置为 `y`,则表示 JVM 将挂起直到调试器附着;如果为 `n`,则立即执行代码。 - `address`: 指定监听的 IP 和端口号。 #### 2. **JDWP 协议的作用** JDWP 提供了一种标准化的方式让远程调试工具能够访问正在运行的目标虚拟机的状态信息。具体来说,它可以获取线程列表、堆栈跟踪、变量值以及其他必要的数据来支持断点触发、单步执行等功能[^2]。 #### 3. **事件驱动模型** 调试过程本质上是一个事件驱动的过程。每当遇到诸如方法入口/出口、异常抛出或者到达指定位置这样的条件时,VM 会向已注册的监听者发送通知消息。而 IntelliJ IDEA 利用了这种特性,在内部实现了相应的逻辑处理模块以便响应来自 VM 层面的各种信号。 例如,当你设置了某个断点之后,实际发生的是告诉 JVM 当达到该语句所在的位置时应该停止进一步操作并向外部报告当前位置的信息。 #### 4. **UI 组件与用户互动** 除了依赖于后台的技术支撑外,前端界面也是不可或缺的部分之一。IDEA 设计了一系列直观易懂的操作面板帮助程序员更高效地完成任务,比如查看局部变量的变化情况、修改内存中的对象属性甚至重新计算表达式的返回结果等等。 以上就是关于 IntelliJ IDEAdebug 功能背后的一些关键技术要点概述。 ```java // 示例:简单的断点测试类 public class DebuggerExample { public static void main(String[] args) throws InterruptedException { int value = calculateValue(); System.out.println("Calculated Value is:" + value); } private static int calculateValue() throws InterruptedException { Thread.sleep(2000); // Simulate delay. return 42; // Breakpoint can be set here. } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黄宝康

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值