java - 调试多进程java应用程序
问题描述
在不清楚应该调试哪个进程的情况下,调试多进程 Java 应用程序的好系统是什么?
例如,在 Python 中,我可以使用rpdb并添加行import rpdb; rpdb.set_trace()
以便执行阻塞,直到我使用 eg 连接到调试器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() 之前等待调试器连接。address
是要连接的端口。
推荐阅读
- linux - 在linux中执行良好的tcl脚本没有在windows中执行
- webpack - 具有多个路由的 Webpack Dev Server 4 代理问题
- javascript - 错误类型错误:当我在角度中添加 ngb datepicker 时,date.equals 不是函数
- c# - 是否可以从本地主机中的 SMTP 模拟 SmtpFailedRecipientException/SmtpFailedRecipientsException?
- influxdb - 在 influxDB 选择查询中包含测量名称
- elixir - 从 Supervisor Elixir 迁移到 DynamicSupervisor
- javascript - 在 fetch 完成之前发生重定向
- ruby-on-rails - 如何在 Rails 中插入来自 Controller 的许多记录?
- javascript - 如何显示选定的 html 多种颜色并推入数组并显示它?颜色在附加时显示多次
- python - 如何列出带有订单的帖子?- 在 Django