java - 如何从代码调用调试器?

标签 java eclipse

从Javascript,我可以简单地写

debugger;

当该行执行时,它会停止代码,就像我在那里放置了一个断点一样。

Java 中有等效的吗?我需要它专门在 Eclipse 中工作。

编辑:我们可以认为我不是白痴,如果可以选择在 IDE 本身中放置断点,我早就这么做了?

进一步编辑:我认为没有必要指出,由于使用 IDE 放置断点不是一个选项,因此任何围绕使用 IDE 放置断点的答案都不太可能有帮助。以防万一每个人都好奇极了,原始代码不是用 Java 编写的——它被处理成 Java 字节码。结果,Eclipse 很困惑,它不想设置断点。

最佳答案

Eclipse(主要)在幕后使用的 JVM 调试器可以在方法中的行号处设置断点 IF 使用某些可选调试信息进行编译 在方法入口处(总是)。

如果您的类是在没有调试“行”的情况下编译的,因此调试器无法设置行断点,并且您不想或无法重新编译它们,您仍然可以设置方法入口断点。在 Package Explorer(不是源的编辑窗口)中,右键单击方法名称/签名并将“Toggle Method Breakpoint”(切换方法断点)打开。

这可以与@ajp的评论结合起来:添加一个方法,例如void [static] debugger(){} 当您调用它时,它不会执行任何操作,但提供了一个方便的目标,您可以在其中设置方法断点。

警告:虽然可以使用部分调试信息进行编译,例如调试“vars”但不能调试“lines”,但通常人们只是使用“debug on”或“debug off”。如果你的类是在没有调试“vars”的情况下编译的,那么调试器的用处将大大降低。

关于java - 如何从代码调用调试器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27135033/

相关文章:

java - 如何忽略Spring Boot的ServerProperties中的未知字段?

java - 从 Spring Web 服务请求获取 XML

java - 找到空游标时如何返回

java - 如何正确锁定和重新加载实体

java - Android SDK 管理器 MacOS 无法选择要安装的项目

java - HBase 不存储所有记录

Eclipse - 保持多个安装同步

android - 添加黑莓后,无法在 Eclipse 中使用 Android 构建项目

java - Eclipse 插件自定义 View 标记数

java - eclipse 中的 Struts.xml 包命名空间