我正在使用netbeans 6.1。
我的Java运行时设置中包含以下内容:
-agentlib:jdwp = transport = dt_shmem,address = jdbconn,server = y,suspend = n
以及netbeans的“附加”对话框中的以下内容:
调试器:JPDA调试器
连接器:共享内存附加(通过共享内存附加到其他VM)
运输:dt_shmem
名称:jdbconn
我从netbeans Wiki上的FaqDebuggingAppletRemotely页面获得了上述设置。
该小程序位于aspx页面中(该小程序经过签名)是一种通过客户端浏览器与旧版平台进行通信的方法,我确实是C#开发人员)。我设法显示了安全警告,这给了我附加到applet的机会,但是无论何时尝试附加,我都会看到:
附加到jdbconn
shmemBase_attach失败:系统找不到指定的文件
在netbeans的输出窗口中。
任何帮助表示感谢!
最佳答案
使用共享内存选项(transport = dt_shmem)进行调试时,您正在使用Windows内部共享内存对象在调试器和jvm之间进行通信。
这意味着如果您是:
一个。不从与jvm相同的物理机上调试,或者
b。在Windows操作系统上无法运行,
您不能在此模式下调试。
我不确定如果您在Linux工作站上的VM上运行窗口会发生什么情况……可能会起作用,也许不会。
如果以上两种情况都很好,则需要进行更深入的调查以找出问题所在,但与此同时,您可以使用普通 socket 进行连接。
在Java运行时参数中指定:
-Xdebug -Xrunjdwp:transport = dt_socket,server = y,address = 8000,suspend = y
这告诉您的jvm在 Debug模式下运行,加载jdwp库,等待连接连接到端口8000,并挂起执行直到此类连接到达。
在您的IDE中,相应地设置远程调试器。我不知道Netbeans,但是它有点像Connector = socket connector,address = 8000。
当您启动网页时,小程序将卡住加载,直到您连接为止;当然,直到到达监听阶段,您都无法连接。
祝你好运!