【问题标题】:Breakpoints/Frames not working in IntelliJ断点/帧在 IntelliJ 中不起作用
【发布时间】:2016-07-09 22:03:17
【问题描述】:

您好,希望有人可以帮助我。我有一个在 IntelliJ 中运行的 Spring Maven java Rest 项目,我刚刚升级到最新版本 2016.1。我使用的 JDK 版本是 1.7.0_79,Maven v4.0,我有一个 Tomcat 7 服务器。从 IntelliJ 运行 Tomcat 服务器时,调试断点根本没有捕获,而且我没有看到任何帧。我已经尝试了一切尝试解决这个问题,它曾经可以工作,但几天前就停止了。 tomcat 以调试和正常模式启动,没有问题……只是没有捕获断点。这是我尝试过的

  1. 删除了整个本地 git 分支并重新克隆到不同的位置并在 Intellij 中重新打开。

  2. 文件 -> 使缓存无效/重新启动

  3. 手动删除所有 tomcat 服务器文件夹并重新创建。

  4. 将调试配置从 Socket 切换到共享内存,反之亦然。

  5. 已检查套接字端口的端口冲突..

  6. 我没有方法级别或异常级别的断点。

如果有人可以帮助我开发一种逐步解决此问题的方法,那就太好了。

【问题讨论】:

  • 您希望在您自己的服务器代码或 tomcat 本身中命中断点?

标签: java spring maven tomcat intellij-idea


【解决方案1】:

有一件事你没有提到,所以我想这可能是这里问题的核心,是远程调试...

要在服务器上调试代码,您必须将调试器附加到其调试端口。这意味着以调试模式启动服务器,并在连接到正确端口的 IntelliJ 中创建Remote 调试运行配置(应在服务器初始化日志中报告)。

这是因为您的服务器运行在与您正在调试的不同的 JVM 上,并且为了调试这两个 JVM 必须通过 tcp/ip 端口进行通信。通过设置远程调试器,您可以让 IntelliJ 获得所需的信息,以便附加到远程 JVM 并通过其调试接口控制它。

连接远程调试器后,以调试模式启动它,并开始以触发包含断点的代码的方式使用您的应用。服务器代码应该停止执行,IntelliJ 应该显示断点所在的行。

在调试服务器代码时,请注意响应超时和其他此类问题。如果您有一个 web 应用程序,它可能会在等待您逐步完成调试会话时超时。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-29
    • 1970-01-01
    • 2018-12-02
    • 2012-11-16
    • 1970-01-01
    相关资源
    最近更新 更多