有时候明明测试环境没问题,部署到生产环境却有bug,于是想直接点生产环境打断点走到本地代码。
JAVA自身支持调试功能,并提供了一个简单的调试工具--JDB,类似于功能强大的GDB,JDB也是一个字符界面的调试环境,并支持设置断点,支持线程线级的调试。
1.在服务器上的进程启动参数中添加:
-Xdebug -Xrunjdwp:transport=dt_socket,address=5555,server=y,suspend=n
其中各个参数含义:
-Xdebug是通知JVM工作在DEBUG模式下
-Xrunjdwp是通知JVM使用(java debug wire protocol)来运行调试环境。该参数同时了一系列的调试选项:
transport指定了调试数据的传送方式
dt_socket 是指用SOCKET模式
server=y/n VM 是否需要作为调试服务器执行
suspend=y/n 是否在调试客户端建立连接之后启动VM
连接到myhost:5555提供的调试服务,在idea中Edit Configurations中选择Remote JVM Debug添加如下 :