2015-08-13 35 views
2

我有一個Python代碼,我使用IntelliJ運行。 Python代碼將執行一個java命令,該命令最終會產生一個JVM。 Python和JVM使用Py4J和自定義套接字進行通信。如何使用IntelliJ連接到JVM進行調試?連接到JVM以進行由Python腳本產生的調試

回答

1

我假設你的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遠程調試會話時阻止該情況。

1

您執行生成帶有調試參數的JVM的java命令。

I.e. -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044

然後在IDE中創建一個新的遠程連接。 事實上,當你去創建一個新的,當你指定的主機和端口它已經給你一個參數,如:

命令行參數運行遠程JVM:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000 
相關問題