博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Idea远程调试
阅读量:4617 次
发布时间:2019-06-09

本文共 1147 字,大约阅读时间需要 3 分钟。

 注:远程调试慎用,本地调试时打的调试断点可能导致其它同事使用测试环境时出现问题

文章目录
  1. 使用特定JVM参数运行服务端代码
  2. 本地连接远程服务器debug端口
  3.  启动debug模式
  4.  设置断点,开始调试
对于分布式系统的调试不知道大家有什么好的方法。对于我来说,在知道远程调试这个方法之前就是在代码中打各种log,
然后重新部署,上线,调试,这样比较费时。今天咱们来了解了解Java远程调试这个牛逼的功能,
本文以Intellij IDEA为例讲解怎么使用远程调试。
服务端程序运行在一台远程服务器上,我们可以在本地服务端的代码(前提是本地的代码必须和远程服务器运行的代码一致)中设置断点,
每当有请求到远程服务器时时能够在本地知道远程服务端的此时的内部状态。
下面按照步骤介绍怎么远程debug。
 
使用特定JVM参数运行服务端代码
要让远程服务器运行的代码支持远程调试,则启动的时候必须加上特定的JVM参数,这些参数是:

 

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=12012
其中的address是用户自定义的,为debug端口,本例以12012端口为例。
在发布中心配置环境(注意要开启端口的访问防火墙)
 
 
本地连接远程服务器debug端口
 
打开Intellij IDEA,在顶部靠右的地方选择”Edit Configurations…”,进去之后点击+号,选择”Remote”,
按照下图的只是填写红框内的内容,其中host为远程代码运行的机器的ip/hostname,
port为上一步指定的address,本例是12012
然后点击Apply,最后点击OK即可
启动debug模式
现在在上一步选择”Edit Configurations…”的下拉框的位置选择上一步创建的remote的名字,然后点击右边的debug按钮(长的像臭虫那个),
看控制台日志,如果出现类似“Connected to the target VM, address: ‘xx.xx.xx.xx:12012’, transport: ‘socket’”的字样,
就表示连接成功过了。
设置断点,开始调试
远程debug模式已经开启,现在可以在需要调试的代码中打断点了,比如:
如图中所示,如果断点内有√,则表示选取的断点正确。
现在在本地发送一个到远程服务器的请求,看本地控制台的bug界面,划到debugger这个标签,可以看到当前远程服务的内部状态(各种变量)已经全部显示出来了,
并且在刚才设置了断点的地方,也显示了该行的变量值。
 

转载于:https://www.cnblogs.com/ljsong/p/8692351.html

你可能感兴趣的文章
【手记】小心在where中使用NEWID()的大坑
查看>>
创建添加表格
查看>>
Javascript触屏手势库-JTouch
查看>>
Ext.Net学习笔记14:Ext.Net GridPanel Grouping用法
查看>>
Struts2日期类型转换
查看>>
树的遍历
查看>>
iOS开发~UI布局(二)storyboard中autolayout和size class的使用详解
查看>>
排序算法之 Non-recursive Merge Sort
查看>>
初识Spring框架IOC属性注入
查看>>
MVC中子页面如何引用模板页中的jquery脚本
查看>>
将Eclipse代码导入到AndroidStudio的两种方式
查看>>
【文档管理系统】【转】什么是元数据
查看>>
BBC-The Race and a quiz
查看>>
大端小端
查看>>
下载歌曲(以QQ音乐为例)
查看>>
*****c#中的委托和事件
查看>>
南峰子博客
查看>>
使用Maven运行Java main的3种方式
查看>>
深入理解flex布局的flex-grow、flex-shrink、flex-basis
查看>>
How To Install Apache Kafka on Ubuntu 14.04
查看>>