5
在不使用调试参数启动JVM的情况下调试Java应用程序
通常,要将调试器附加到正在运行的jvm,您需要使用以下参数启动jvm: > java -Xdebug -Xrunjdwp:transport=dt_socket,address=1000,server=y,suspend=n 现在,如果我要调试不是在调试模式下启动的进程,该怎么办? 当生产系统(即在没有调试args的情况下启动)出现“随机”(我宽松地使用术语)错误时,就会出现这种情况。因此,我无法使用适当的参数重新启动jvm,因为没人知道如何再次再现该错误。在这种情况下是否不可能附加到JVM? 只是为了澄清,除非将它们以调试方式启动,否则无法使用jdb之类的工具来附加至已在运行的JVM。 从JVM手册页 使用jdb的另一种方法是将其附加到已经运行的Java VM。使用jdb调试的VM必须使用以下选项启动: