IDE 断点的原理,断点时jvm是阻塞住了吗

IDE 断点的原理,断点时jvm是阻塞住了吗,第1张

简单的说,插入断点的时候是在可执行代码中插入了一个软中断指令,最终跳转到了ide 中去执行了。

单步跟踪利用tf 标志(单步执行)和软中断,执行一下就跳转到了ide中。

为啥用软中断呢?因为不想破坏正在执行的代码的堆栈。调试器通常也是一个独立的进程。所以只能用中断挂起。调试器决定继续执行的时候会把断点代码改回去,然后结束中断继续执行。

应用场景:遍历时只想看满足某情况的断点。

IDEA断点不能一步步回退,只能回退到目标方法被调用的地方。

添加启动参数,下面举个例子( -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 是上面复制的):

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar ioewvsau-1.0.0.jar


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/680647.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-30
下一篇2023-07-30

发表评论

登录后才能评论

评论列表(0条)

    保存