如何在不访问源代码的情况下调试Java应用程序?

Dan*_*ner 8 java debugging decompiling

我需要调试我没有源代码的Java应用程序.它在Jetty服务器上本地运行.使用JD-GUI进行反编译工作正常.通过套接字连接或共享内存附加JDB也可以正常工作.

我失败的地方是将各个部分加在一起.我主要使用JD-Eclipse插件和远程调试来尝试Eclipse.我找不到将调试器成功附加到正在运行的进程的方法.一切似乎都假设我至少有部分应用程序可用作项目中的源代码,但我没有.它是一个相当大的应用程序(200多个MiB的JAR文件和500多个MiB的其他东西)所以试图从所有反编译的类构建一个项目并让它运行不是一个选项,除非它很容易自动化.

我真正需要的是能够将调试器附加到正在运行的进程,查看和导航反编译代码,设置断点并检查变量和对象.是否可以重新编译代码并不重要.有条件的断点和表达式评估会很好.

Imr*_*ran 2

您可能可以借助 jd-eclipse 及其扩展 jd-eclipse 重新对齐片段的组合来完成此操作。

京东-Eclipse

重新排列片段

安装过程非常简单:

  • 按照JD-Eclipse站点中提供的步骤安装JD-Eclipse(过程非常简单)
  • 重启Eclipse
  • 下载重新对齐realignment.jd.ide.eclipse_1.0.2.jar
  • 将文件复制到 \dropins
  • 重启Eclipse
  • 转到 Windows -> 首选项
  • 导航到常规 -> 编辑器 -> 文件关联
  • 在“文件类型”部分中选择 *.class,在“关联编辑器”部分中选择“JD 类文件编辑器重新对齐”,然后单击“默认”按钮。
  • 按确定并开始调试!