前页 | 后页 |
Java JDWP调试器
Java提供了两种主要的调试技术:一种称为Java虚拟机工具接口(JVMTI)的基于进程内代理的系统,以及一种称为Java调试线协议(JDWP)的基于套接字的范例。 Java虚拟机可以命名其中之一,但不能同时命名,并且在启动JVM时必须配置该功能。
系统要求
- Enterprise Architect JDWP调试器将只能与以'JDWP'选项启动的JVM通信。这是命令行选项的示例:
java -agentlib:jdwp = transport = dt_socket,address = localhost:9000,server = y,suspend = n -cp“ c:\ java \ myapp;%classpath%” demo.myApp“ param1”“ param2” - 虚拟机当前不应连接到调试器。
- VM不能同时由Enterprise Architect和Eclipse调试。
分析器脚本设置
字段/按钮 |
行动 |
也可以看看 |
---|---|---|
调试器 |
单击下拉箭头,然后选择Java(JDWP)。 |
|
跑 |
执行脚本后,单击此单选按钮以运行调试器。 |
|
默认目录 |
不适用-留空。 |
|
申请途径 |
不适用-留空。 |
|
命令行参数 |
不适用-留空。 |
|
先建 |
不适用-留空。 |
|
显示控制台 |
不适用-留空。 |
|
显示诊断信息 |
不适用-留空。 |
|
连接 |
不适用-留空。 |
|
港口 |
在Java命令行选项中,在启动过程中将应用程序端口向前分配给VM进程。 |
Java命令行选项 |
主办 |
设置主机(默认为localhost) 如果VM在联网计算机上运行,请在此处输入网络名称或URL。 默认情况下,调试将尝试连接到您在本地计算机上指定的端口。 |
|
资源 |
这与Java中的classpath设置等效。 列出每个源树的根;指定至少一个根源路径。如果指定多个,则用分号隔开;例如: c:\ myapp \ src ; c:\ myserver \ src 发生断点时,调试器将在此处列出的每个源树中搜索Java源。 |
|
记录中 |
启用或禁用来自调试器的其他信息的日志记录。 可能的值包括:
|
|
输出量 |
指定要写入的本地日志文件的全名。如果该文件夹尚不存在,则不会创建任何日志。 日志文件通常包含调试器和VM之间发送的字节转储。 |
|
平台 |
选择Java。 |
配置调试端口
调试器一次只能调试一个VM。它使用单个端口与VM进行通信。创建虚拟机时,分配了要调试的应用程序的端口。
本地调试
如果Enterprise Architect和Java VM都在同一台计算机上运行,则可以执行本地调试。必须在启用了JDWP传输的情况下启动VM-有关命令行选项规范,请参阅Oracle上有关Java平台调试器体系结构(JPDA)的文档。例如:
java -agentlib:jdwp = transport = dt_socket,address = localhost:9000,server = y,suspend = n -cp“ c:\ samples \ java \ myapp;%classpath%” samples.MyApp“ param1”“ param2”
在此示例中,Analyzer脚本的值将为“ host:localhost”和“ port:9000”。
远程调试
如果Enterprise Architect在本地计算机上运行,而Java VM在远程计算机上运行,则可以执行远程调试。必须在启用了JDWP传输的情况下启动VM-有关命令行选项规范,请参见Oracle上JPDA上的文档。这是一个示例,其中远程计算机的网络名称为testmachine1:
java -agentlib:jdwp = transport = dt_socket,address = 9000,server = y,suspend = n -cp“ c:\ samples \ java \ myapp;%classpath%” samples.MyApp“ param1”“ param2”
请注意,地址中没有主机名。这意味着VM将侦听来自任何计算机的连接。在此示例中,分析器脚本的值将为“主机:testmachine1”和“端口:9000”。