- 14
- 0
- 约 25页
- 2017-08-19 发布于湖北
- 举报
开源力量公开课第1期:
生产环境下的Java排错调优
2012年12月25 日 18:30-21:30
生产环境下的Java排错调优
@施懿民
远程调试
远程调试架构
• Java平台调试器架构
组件 调试器接口
/ ||
/ | VM |
被调程序 ( || JVMTI – Java虚拟机工具接口
\ | 后台 |
\ ||
/ |
通信渠 --( | JDWP – Java调试传输协议
\ |
/ ||
/ | 前台 |
调试器 ( || JDI – Java调试接口
\ | UI |
\ ||
第4 页
远程调试原理
• 通过客户机-服务器架构,可以在本地调试 Java 程序,也可以通过网络进行远程调试,
JPDA 规范中的两个术语:连接器和传输。连接器是一个 JDI 抽象,用来在调试器应
用程序和目标 VM 之间建立连接。传输定义应用程序如何进行访问,以及数据如何在
前端和后端之间传输。连接器 “映射” 到可用的传输类型和连接模式。在 Sun 的
JPDA 参考实现中,为 Microsoft® Windows® 提供了两个传输机制:套接字传输和共
享内存传输。可用的连接器:
• 连接套接字连接器
• 连接共享内存连接器
• 监听套接字连接器
• 监听共享内存连接器
• 启动命令行连接器
第5 页
远程调试命令参数
• -Xdebug: 启用调试特性。
• -Xrunjdwp:sub-options :在目标 VM 中加载 JDWP 实现。它通过传输和 JDWP 协
议与独立的调试器应用程序通信。下面介绍一些特定的子选项。
• 从 Java V5 开始,您可以使用 -agentlib:jdwp 选项,而不是 -Xdebug 和 -
Xrunjdwp。但如果连接到 V5 以前的 VM,只能选择 -Xdebug 和 -Xrunjdwp。
• -Xrunjdwp 子选项。
• transport:这里通常使用套接字传输。但是在 Windows 平台上也可以使用共享
内存传输。
• Server:如果值为 y,目标应用程序监听将要连接的调试器应用程序。否则,它
将连接到特定地址上的调试器应用程序。
• address:这是连接的传输地址。如果服务器为 n,将尝试连接到该地址上的调
试器应用程序。否则,将在这个端口监听连接。
• suspend:如果值为 y,目标 VM 将暂停,直到调试器应用程序进行连接。
第6 页
1、被调试程序当作调试服务器。
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8765
2、被调程序当作调试客户端。
原创力文档

文档评论(0)