2011-07-28 115 views
0

我正在開發一個多線程的Web服務器小程序,並且在過去的一週內一直處理system.out.println's作爲我的「調試」工具。據我瞭解,我構建的.jar被構建器分割並放入.html文件,然後在訪問Web服務器時吐出。在JVM中調試多線程的Web服務器

我想知道是否有某種方法可以將調試器(插件?)附加到Java的虛擬機上,這將允許我在操作Web服務器時逐步執行代碼 - 這裏有一些重要的例外:追查是非常令人沮喪的。我相信他們是與多線程相關的計時問題,這使得它們在嘗試定位時更加不可靠,並且可能意味着調試器將無法正確處理。我不認爲這很重要,但我在建的IDE是Netbeans。

我已經接管了以前的開發者的匆匆未完成的項目,並且已經遠遠超過了我的腦海。 = /預先感謝任何可能的解決方案,我很感激。

+0

什麼是網絡服務器小程序? Netbeans能夠進行多線程調試。 – MRalwasser

+1

[本FAQ頁面](http://wiki.netbeans.org/FaqDebuggingAppletRemotely)是Google搜索條件中的第一個搜索結果:debug applet netbeans。不能發佈爲答案,因爲我不確定是要執行服務器的多線程調試,還是隻需遠程調試小程序。 –

+0

啊,多線程競態條件。哦,有趣。查看Java 5 + 6中的併發utils,並學習如何使用synchronized和transient。這可能會非常有用。 –

回答

1

當然可以。

您需要啓動帶有合適參數的Web服務器JVM,以便遠程調試它。你可以在http://download.oracle.com/javase/1.3/docs/tooldocs/win32/jdb.html看到如何去做。 JDK和javac一起提供了jdb。然後啓動IDE調試器以連接到JVM ,並告訴它您的類的源位於何處。請記住使用調試信息進行編譯。

正如你在Netbeans中已經考慮過的那樣,只要在調試模式下啓動它,那麼上述所有額外工作都將自動完成。

+0

Vineet在註釋中鏈接的調試器設置似乎不起作用。看起來像沒有我見過的解決方案的常見問題。 因此,好像我會嘗試你的更長時間的解決方案。謝謝。 –

+0

抱歉給一個潛在的凹凸;你有什麼想法如何讓JVM開始允許調試嗎?我已經修改了JRE運行時參數,但由於某種原因它沒有保存它們。在線搜索表明,這是其他人以前遇到的問題,沒有給出解決方案。 如果您有任何進一步的想法,我會很高興給他們一個嘗試。 –

+0

從Netbeans內部?對不起,我做了Eclipse。也許你想明確地打開一個問題呢? –