JPDA实际应用
如果你需要使用套接字传送器,在对应的JVM中以dt_socket为名确定自变量的类型。如果被调试者和调试器位于同一机器之中,且运行的是Windows系统,你可以使用名为dt_schmem的共享内存连接器。如果你希望用一个与JPDA兼容的调试器调试应用程序,你应在调试模式下运行调试器,并提交其它参数,如传送器类型、主机名称、端口号及其它信息。所有JPDA和调试参数必须在启动应用程序时作为自变量提交。
要进行调试,你必须将调试JDWP代理加载到应用程序的JVM中。从Java 5.0开始,你可以用-agentlib:jdwp选项来完成加载。5.0以前版本则使用-Xdebug和-Xrunjdwp选项(5.0也支持-Xdebug和-Xrunjdwp选项,不过新的-agentlib:jdwp选项更加好用。因为5.0中的JDWP代理使用JVMTI接口连接VM,而非旧的JVMDI接口)。你应该向-agentlib:jdwp(Java 5.0中)或-Xrunjdwp(Java 5.0以前版本) 参数提供子选项;两组可能的子选项相同。
以下列方式指定子选项:
-agentlib:jdwp=<name1>[=<value1>],<name2>[=<value2>]...
或
-Xrunjdwp:<name1>[=<value1>],<name2>[=<value2>]...
你可以使用这些选项:
以下是命令行实例:
-agentlib:jdwp=transport=dt_socket,server=y,address=8000
在端口8000收听一个套接字连接。在主类加载前延缓这个VM(默认suspend=y)。一旦连接上调试应用程序,它发送一个JDWP命令恢复VM。
-agentlib:jdwp=transport=dt_shmem,server=y,suspend=n
选择一个有效的共享内存传输地址并将它打印出来。在那个地址收听一个共享内存连接。在调试应用程序依附之前,允许VM开始执行。
-agentlib:jdwp=transport=dt_socket,address=myhost:8000
通过myhost主机端口8000的套接字依附到一个运行的调试应用程序。在主类加载前延缓这个VM。
Peter V. Mikhalenko是一名获Sun认证的专业人士,现任德意志银行商业顾问。
责任编辑:张琎
用户评论