2014-01-14 124 views
138

是否可以將Intellij-IDEA調試器連接到正在運行的java進程?將Intellij-IDEA調試器連接到正在運行的java進程

+2

當然。您需要創建一個「遠程」運行/調試配置。更多[這裏](http://www.jetbrains.com/idea/webhelp/run-debug-configuration-remote.html) – Vic

+2

恩,這些命令行參數自14.0.2開始只讀。您只能編輯其中的幾個,但這無助於解決此問題中的問題。任何想法如何解決這個問題? – Nuzzolilo

回答

235

是的!這是你如何設置它。

運行配置

創建遠程運行配置:

  1. 運行 - >編輯配置...
  2. 點擊 「+」 在左上角
  3. 選擇 「遠程」選項在最左邊的窗格中
  4. 選擇一個名稱(我命名爲「遠程調試」)
  5. 單擊「確定」保存:

enter image description here

JVM選項

上面的配置提供三個只讀字段。這些選項告訴JVM在運行應用程序時打開端口5005進行遠程調試。將相應的一個添加到正在調試的應用程序的JVM選項中。你可能會這樣做的一種方式是:

export JAVA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005" 

但它取決於你如何運行你的應用程序。如果您不確定三者中哪一個適用於您,請從第一個開始,然後沿着列表走下去,直到找到可用的那個。

您可以將suspend=n更改爲suspend=y以強制您的應用程序等待,直到您啓動之前連接IntelliJ。如果您想要點擊的斷點發生在應用程序啓動時,這會很有幫助。

調試

啓動應用程序,你通常會,然後在選擇的IntelliJ新的配置並點擊「調試」。

enter image description here

的IntelliJ將連接到JVM並啓動遠程調試。

您現在可以通過在需要的地方向代碼添加斷點來調試應用程序。應用程序的輸出仍會出現在之前的任何位置,但您的斷點將在IntelliJ中打開。

+2

我的Intellij IDEA 15.0.2在mac os el capitan上沒有「Remote」選項。我怎樣才能得到這個選擇? – user674669

+0

@ user674669我不確定。也許'Remote'在社區版上不可用?我正在使用付費版本。社區版的任何人都可以確認嗎? –

+0

@CoryKlein你知道如何在遠程調試時從IntelliJ中的'System.out.println'獲取輸出嗎? –

34

這是可能的,但是當你啓動你的應用程序時你必須添加一些JVM標誌。

您必須添加遠程調試配置:編輯配置 - >遠程。

然後you'lll找到你要添加到程序的執行,如顯示的對話框窗口parametrs:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 

然後,當你啓動應用程序時,你可以將你的調試器。如果你希望你的應用程序等待調試器連接,只需將暫停標誌改爲y(suspend=y

+0

它讓我困惑,你編輯下面的輸入,然後更新上面的選項字符串(至少在13.1 CE中)。 –

+6

嗯,這些命令行參數從14.0.2開始只讀。您可以編輯其中的幾個。任何想法如何解決這個問題? – Nuzzolilo

+1

另外,您通過設置這些選項來附加到哪個過程? – Nuzzolilo

4

顯然你需要在應用程序JAVA_OPTS中添加「-Xdebug」標誌,如果你想在調試模式下連接。

在AndroidStudio
3

或想法

  1. Config中的應用將是調試,打開編輯配置

添加 「VM選項」 配置 「-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005」 記得 「地址」

enter image description here

  1. 配置遠程調試器 如果不退出,單擊+添加

指定「端口」相同,在步驟1中的「地址」 enter image description here

相關問題