2011-03-21 43 views
5

我正在使用netbeans 6.1。嘗試附加到小程序以進行調試時,'shmemBase_attach失敗:系統找不到指定的文件'

我有我的Java運行時設置如下:

-agentlib:JDWP = =運輸dt_shmem,地址= jdbconn,服務器= Y,暫停= N

及以下在NetBeans中的附加的對話框:

調試器:JPDA調試器

連接器:共享內存附加(連接dt_shmem

名稱:通過共享內存到其他VM)

交通運輸ES jdbconn

我在NetBeans維基從FaqDebuggingAppletRemotely頁上面的設置。

該applet位於一個aspx頁面(applet,這是一個通過客戶端瀏覽器與舊平臺進行通信的方法,我真的是C#開發人員)。我已經成功地得到安全警告顯示,給了我一個機會,附加到小程序,但每當我嘗試將我看到:

附加到jdbconn

shmemBase_attach失敗:系統不能找到指定的文件

在netbeans的輸出窗口中。

任何幫助感激地接受!

回答

0

使用共享內存選項(transport = dt_shmem)進行調試時,您正在使用Windows內部共享內存對象在調試器和jvm之間進行通信。

這意味着如果你是:

a。不能從與您的jvm相同的物理機器進行調試,或者

b。不適用於Windows操作系統,

您無法在此模式下進行調試。

我不確定如果您在Linux站上的VM上運行Window,會發生什麼情況......可能工作,可能不會。

如果上述兩方都沒有問題,則需要深入調查才能找出問題所在,但同時您可以使用簡單的套接字進行附加。

在Java運行時間參數說明:

-Xdebug -Xrunjdwp:交通= dt_socket,服務器= Y,地址= 8000,暫停= Y

這告訴你的JVM在調試模式下運行,加載jdwp庫,等待連接連接到端口8000,並掛起執行,直到這樣的連接到達。

在您的IDE中相應地設置遠程調試器。我不知道Netbeans,但它會像Connector = socket connector,address = 8000。 當您啓動您的網頁時,該小程序將凍結加載,直到您連接,當然,直到達到收聽階段才能連接。

祝你好運!

-1

我敢打賭,任何東西(幾乎任何東西......可能至少幾美元,或一個cookie),JVM安裝您的小程序運行在不同於您的系統上安裝的默認JVM安裝。

要找到JVM的安裝,你的瀏覽器和小應用程序均採用Windows 7

1)關閉使用該JVM(特別是瀏覽器)的所有應用程序。 2)打開Windows任務管理器(CTRL + ALT + DELETE->任務管理器),然後點擊進程選項卡。

3)確保沒有運行任何java * .exe進程。

4)打開瀏覽器並轉到applets頁面,再次啓動applet。

5)現在返回到任務管理器 - >進程選項卡,查找正在運行的java * .exe(它最有可能是「java.exe * 32」的字面意思,因爲它的字面意思是如果你沒有看到那一個,那麼就使用任何一個正在運行的)。

6)右鍵單擊該進程,並在上下文菜單中選擇「打開文件位置」。這應該將您帶到您的瀏覽器用來運行applet的已安裝JVM的「bin」文件夾位置!你是否感到驚訝,它與你認爲的不一樣?

要查找有關Linux或其他系統任務:我只過在Windows這個問題

,但這裏是你如何做到這一點無論如何。

打開外殼,並鍵入以下

ps -e | grep java 

並記的PID(或多個)。

現在你知道哪個JVM的小應用程序正在使用

我們需要打開Java控制檯爲partivular安裝(而不是默認安裝我們嘗試過修改)。

要打開JVM安裝,你的小應用程序所使用的控制檯,並設置運行參數:

1)打開在JVM安裝的bin文件夾命令提示符(外殼或其他)。 (在Windows 7中,從資源管理器中,您可以右鍵單擊bin文件夾,然後選擇「在此打開命令提示符」)。

2)運行以下命令打開控制檯:

javaws -viewer 

這也結束了打開「Java高速緩存查看器」窗口,我們不需要。關閉該窗口,但保持「Java控制面板」窗口打開。

3)現在,你可以去Java選項卡中,單擊查看和修改運行參數,就像之前一樣:

-agentlib:jdwp=transport=dt_shmem,address=jdbconn,server=y,suspend=n 

4)單擊「確定」,然後單擊「應用」在主java控制檯窗口中應用並保存所做的所有更改。

5)等待!我建議你做最後一件事。清除了Java Webstart的緩存,以確保您的小應用程序下載的新鮮使用新的參數:

javaws -uninstall 

確保並在JVM安裝,你的小應用程序所使用的bin目錄中運行它,因爲這可能不是您的Path(或PATH)系統環境變量指向的相同bin目錄。

現在從您的瀏覽器啓動您的小程序,並在您的NetBeans IDE中創建另一個共享內存連接!在您正在調試的正確源代碼中安裝斷點(NetBeans中的「源」選項卡),然後開始使用您的小程序。你現在應該看到Netbeans正在突破你的突破點!至少,我希望如此... ...

相關問題