相关疑难解决方法(0)

调试java应用程序而无需使用调试参数启动JVM

通常要将debuger附加到正在运行的jvm,您需要使用如下参数启动jvm:

> java -Xdebug -Xrunjdwp:transport=dt_socket,address=1000,server=y,suspend=n
Run Code Online (Sandbox Code Playgroud)

现在,如果我想调试未在调试模式下启动的进程,我该怎么办?

当生产系统(即没有调试args启动)表现出"随机"(我使用松散术语)错误时,就会出现这种情况.所以我不能用适当的参数重启jvm,因为没有人知道如何再次重现bug.在这种情况下是否无法连接到JVM?

只是为了澄清它是不可能使用像jdb这样的工具连接到已经运行的JVM,除非它们是在调试模式下启动的

来自JVM手册页

使用jdb的另一种方法是将其附加到已经运行的Java VM.必须使用以下选项启动要使用jdb调试的VM:

java debugging jvm jvm-arguments

93
推荐指数
4
解决办法
7万
查看次数

标签 统计

debugging ×1

java ×1

jvm ×1

jvm-arguments ×1