2012-07-25 158 views
3

最近我在Idea下了解了遠程調試過程。我所做的就是複製Run |下的遠程調試配置在Idea中調試配置到命令行java執行參數。實際的命令行參數是:使用Intellij Idea遠程調試

-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 

如果它是一個腳本,我將這些命令添加到它。通過這樣做,命令行顯示消息:

Listening for transport dt_socket at address: 8000 

因此,可以使用本地源代碼進行調試。但是,我不太瞭解遠程調試的工作原理。任何知道遠程調試實際工作的人,請給我一個解釋。

謝謝!

+2

[Java遠程調試,它是如何工作的技術?](http://stackoverflow.com/questions/3591497/java-remote-debugging-how-does-it-work-technically) – mindas 2012-07-25 09:43:45

回答

8

遠程調試意味着您可以在本地或遠程機器上的任何位置運行Java代碼。當它以調試模式運行時,可以使用TCP網絡連接從IDE連接到它並執行調試。 IDE需要運行類的源代碼,以便您可以在此代碼中放置斷點並執行步進,檢查變量等。

如果您對技術細節感興趣,請參閱JPDA documentation

0

這是測試不同環境下的代碼的最佳方法。

在使用遠程調試之前,我們需要確保以下幾點。

  1. 我們在我們的服務器中使用JBOSS。
  2. 配置 - JBOSS_HOME /斌/ run.conf JAVA_OPTS = 「$ {} JAVA_OPTS -Xdebug -Xnoagent -Xrunjdwp:交通= dt_socket,地址= 8787,服務器= Y,暫停= n」 的

  3. 現在將服務器IP和端口號添加到intellij遠程調試中。 4.你應該在本地的最新版本的項目與服務器同步,否則調試將不被允許。

  4. 您需要啓動該項目的intellij服務器。
  5. 然後開始遠程調試。
  6. 在本地放置一個調試點,當我們開始在服務器進行測試時,當它到達調試點時,它將停止並等待,直到您處理它。

另一個問題是,它會將所有請求放在隊列中,並且不允許任何人通過可能阻止其他用戶測試它的斷點。