我有一个 Python 代码,我使用 IntelliJ 运行它。 Python 代码将执行一个 java
命令,该命令最终会生成一个 JVM。 Python 和 JVM 使用 Py4J 和自定义套接字进行通信。如何使用 IntelliJ 连接到 JVM 进行调试?
最佳答案
我假设您的 Python 代码使用 os.system
生成 java
命令称呼。如果你想从你的 IDE 调试它,那么你应该在生成的 JVM 上打开调试(参见 this 主题以了解启用 JVM 调试的可能选项):
os.system("java -jar your.jar -Xdebug -Xrunjdwp:server=y, transport=dt_socket,address=4000, suspend=y");
在上面的代码中,生成的 JVM 将在端口 4000
上监听传入的调试器连接。现在你可以使用 InteliJ remote debug configuration使用提供的端口连接到生成的 JVM 的功能。请注意 suspend=y
参数 - 这意味着 JVM 将以挂起状态启动,直到连接调试器。这将防止您错过要调试的有趣 JVM 执行部分的情况,或者防止 JVM 在主线程完成后退出的情况,您甚至无法启动 InteliJ 远程调试 session 。
关于java - 连接到 JVM 以进行由 Python 脚本生成的调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31986285/