调试多进程java应用程序

调试多进程java应用程序,java,debugging,Java,Debugging,在不清楚应该调试哪个进程的情况下,调试多进程Java应用程序的好系统是什么 例如,在Python中,我可以使用并添加行import rpdb;rpdb.set_trace()因此执行阻塞,直到我使用nc 127.0.0.1 4444连接到调试器 与上述快速可靠的方法相比,当我使用Java调试器时,我看到以下挑战: 确保每个进程都使用正确的参数运行,以允许调试——在我的例子中,不清楚是什么启动了所有进程,因此不清楚在哪里更改参数。是否有办法更改我的计算机上的默认值,使其始终包含jvm选项-agen

在不清楚应该调试哪个进程的情况下,调试多进程Java应用程序的好系统是什么

例如,在Python中,我可以使用并添加行
import rpdb;rpdb.set_trace()
因此执行阻塞,直到我使用nc 127.0.0.1 4444连接到调试器

与上述快速可靠的方法相比,当我使用Java调试器时,我看到以下挑战:

  • 确保每个进程都使用正确的参数运行,以允许调试——在我的例子中,不清楚是什么启动了所有进程,因此不清楚在哪里更改参数。是否有办法更改我的计算机上的默认值,使其始终包含jvm选项
    -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=1044

  • 在命中所需代码之前,确定要将调试器连接到哪个进程——同样,我不清楚应该连接到哪个进程,而且方便的是,
    rpdb
    会一直阻塞,直到调试器连接,您不需要标识进程id。Java中有类似的情况吗


  • 从以下内容开始java:

    java -agentlib:transport=dt_socket,server=y,suspend=y,address=1044
    

    suspend=y
    位告诉VM在运行main()之前等待调试器连接<代码>地址是要连接的端口。

    如果涉及十几个进程,而您不知道要连接到哪个进程,该怎么办?如果哪个进程处理请求是随机的呢?连接十几个调试器似乎非常耗时。