首页 > 解决方案 > 如何在 jar 中的反编译类中设置断点以在 IntelliJ 中进行远程调试

问题描述

我有一个在调试模式下运行 Java 程序的远程服务器。

它具有以下 Java 选项: JAVA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"

我可以使用 IntelliJ 调试器成功连接到它。

我可以从 IntelliJ 停止该进程并获得线程转储。

我现在想为某个方法添加一个断点。但是,使用断点窗口设置即类模式和方法名称的通配符匹配在理论上是可行的,但它非常慢,无法使用它来调试 Web 请求。

我确实有可用的 jar,所以我希望 IntelliJ 反编译 jar,将其作为源代码显示给我,并允许我在反编译的 jar 中设置断点。

我怎样才能做到这一点?

(我拥有执行此操作的完全权限以及可用的实际源代码,但出于法律原因,我无法将源代码传输到我正在调试的机器上)

标签: javadebuggingintellij-idea

解决方案


结果很简单:

  1. 在 IntelliJ 中打开包含所有 jar 的文件夹(它们显示为列表但不可“浏览”</li>
  2. 右键单击文件夹,“打开模块设置”</li>
  3. 转到“库”</li>
  4. 点击“+”,然后点击“Java”</li>
  5. 选择该目录中的所有jar
  6. 现在所有的罐子都是可浏览的
  7. 在 jar 代码中设置断点

推荐阅读