IDEA 远程调试 Tomcat 和 Debugger
一般来说我们本地环境使用Tomcat,生产环境使用GlassFish。
准备工作
- 明确远程服务器的 IP 地址,比如:192.168.92.128
- 关掉服务器防火墙:
service iptables stop

【commandline arguments】agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
- Linux(有单引号):
export JAVA_OPTS='-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005' - Windows(没有单引号):
set JAVA_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
【配置远程的Tomcat】服务器以 Linux 环境为例
- Tomcat 安装在 /usr/program/tomcat7
- Tomcat 的执行程序:/usr/program/tomcat7/bin/catalina.sh
- 编辑 Tomcat 执行程序:
vim /usr/program/tomcat7/bin/catalina.sh(Windows 是编辑:catalina.bat)- 在该文件的最上面,添加我们刚刚复制的那句话:
export JAVA_OPTS='-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005'。
- 在该文件的最上面,添加我们刚刚复制的那句话:

【配置】服务器 Jetty 配置
- 同样是 Linux 环境
- jetty 不像Tomcat那样需要安装,只要有jetty的jar包就可以启动我们想要启动的应用。
- 在启动应用的时候加入之前上边我们copy的
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005就可以了。- 就像这样:
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar {your jetty path} {your port} --path {your war} 1>/dev/null 2>&1 &
- 就像这样:
【DEBUG部分】从左到右

一、快捷键F8 【STEP OVER】越过方法进入下一步
二、快捷键F7 【STEP INTO】 进入方法体内下一步
三、Alt + Shift + F7 【Force STEP INTO】强制进入方法体 ,一层层剥开它的皮...
Shift + F7 【SMART STEP INTO】断点所在行上有多个方法调用,会弹出进入哪个方法
快捷键F9 【Resume Program】恢复程序运行,但是如果该断点下面代码还有断点则停在下一个断点上 可能我们就是想要到下一个断点。
四、Shift + F8【STEP OUT】跳出,继续下一个断点,和Resume Program效果相同。
五、【DROP FRAM 月光宝盒】回到当前停住的断点的上一层方法上,可以让过掉的断点重新来过
【一览纵山小】DROP FRAM 我们进入了方法体内,想跑出方法体外。
【酷炫调试】
【拉起一个对象扔到Watch】鼠标悬停在对象上 2 秒左右就可以。
【比如我们想看一个对象的String类型,或者经过 求值 】拿起变量就是用。Alt + F8 【Evaluate Expression】选中对象,弹出可输入计算表达式调试框,查看该输入内容的调试结果
【F9 ResumeProgram跨越长城】当我们需要过掉后面的所有断点的时候,不需要去掉这些断点,
只需要点击左下角
断点变成灰色,然后我们再在按快捷键 F9 即可过掉当前和后面所有的断点。
【条件断点】Ctrl + Shift + F8 【view breakpoints】查看所有断点,指定断点进入条件
【下一站怎么才能遇见】【指定条件下 才进入断点】没达到条件就跳过了
【让子弹再飞一会】Pass count 表示跳过多少次后开始步入断点 ,使用场景:for循环个几遍,我再看结果。
【临时断点 一次性断点】勾选Remove Once hit
【You jump I jump】直到某个断点进入后 才Enabled 。。。Disable Until Selected BreakPoint
IDEA 远程调试 Tomcat 和 Debugger的更多相关文章
- 如何用myeclispe远程调试tomcat
如何用myeclispe远程调试tomcat 在工作开发中,通常用本机进行代码编写,然后将编好的工程部署到测试服务器进行测试.往往测试服务器并不是自己的本机,因此对调试带来众多不便.今天学习可以用my ...
- idea远程调试tomcat
在开发Spring Boot应用的时候,会发现有的时候在idea工具中运行程序和打包程序后在tomcat下运行程序的结果会不太一样,因此就需要远程调试tomcat. 首先在tomcat目录下的bin目 ...
- MyEclipse远程调试Tomcat
程序就是这么一个神奇的东西,有时你的一个项目,在本机上运行得还是好好的,可当你把这货放到了服务器上,同样的条件就是结果不一样.于是就灰常想看一下程序在远程运行时候的状态,希望让程序在远程运行,还可以在 ...
- 二十八、详述 IntelliJ IDEA 远程调试 Tomcat 的方法
在调试代码的过程中,为了更好的定位及解决问题,有时候需要我们使用远程调试的方法.在本文中,就让我们一起来看看,如何利用 IntelliJ IDEA 进行远程 Tomcat 的调试. 首先,配置remo ...
- IntelliJ IDEA 远程调试 Tomcat 的方法
在调试代码的过程中,为了更好的定位及解决问题,有时候需要我们使用远程调试的方法.在本文中,就让我们一起来看看,如何利用 IntelliJ IDEA 进行远程 Tomcat 的调试. 首先,配置remo ...
- VS2015 远程调试:Remote Debugger
一.关于Remote Debugger 使用VS远程调试器Remote Debugger,我们可以调试部署在不同机器上的应用程序,如桌面应用程序和Asp.Net应用程序. 二.Remote Debug ...
- 详述 IntelliJ IDEA 远程调试 Tomcat 的方法
首先,配置remote: 如上图所示,点击Edit Configurations,进入如下界面: 如上图所示,我们进入了Run/Debug Configurations界面,然后点击左上角的+,选择R ...
- java远程调试(断点)程序/tomcat( eclipse远程调试Tomcat方法)
tomcat远程调试: 1.Linux中配置tomcat在catalina.sh中添加如下CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_soc ...
- eclipse远程调试Tomcat方法(测试成功并且说说遇到的坑)
转自:http://blog.csdn.net/afgasdg/article/details/9236877 PS:文中容易引起歧义的地方已经做了修改:另外,本人参照以下步骤操作,结果无法调试,后来 ...
随机推荐
- bzoj3427小P的牧场(斜率优化dp)
小P在MC里有n个牧场,自西向东呈一字形排列(自西向东用1…n编号),于是他就烦恼了:为了控制这n个牧场,他需要在某些牧场上面建立控制站,每个牧场上只能建立一个控制站,每个控制站控制的牧场是它所在的牧 ...
- poj 1611 The Suspects(并查集输出集合个数)
Description Severe acute respiratory syndrome (SARS), an atypical pneumonia of unknown aetiology, wa ...
- 编写高质量代码:改善Java程序的151个建议 --[52~64]
编写高质量代码:改善Java程序的151个建议 --[52~64] 推荐使用String直接量赋值 Java为了避免在一个系统中大量产生String对象(为什么会大量产生,因为String字符串是程序 ...
- MacBook上使用ssh localhost被拒绝
最开始以为没有装sshd呢,实际上不是.又查了些方法,有些人居然把Linux上访问失败的方法直接照搬,让我建立公私钥.都没有成功.最后找到了解决方法,原来是由于苹果的安全限制,限制了这个功能. sud ...
- Macbook外接显示器模糊解决方法
解决方法(此方法经本人测试失败) 下载这个http://www.elias.cn/uploads/Mac/patch-edid.zip.如果链接失效可以使用https://gist.github.co ...
- pip无法正常使用卸载并重新安装
错误提示 ➜ ~ pip Traceback (most recent call last): File "/usr/bin/pip", line 11, in <modul ...
- HDU3032 Nim or not Nim?
解:使用sg函数打表发现规律,然后暴力异或起来即可. #include <bits/stdc++.h> typedef long long LL; ; int a[N]; inline L ...
- HTML学习笔记Day2
一.部分表单元素的使用 1.表单的作用:用来收集用户信息 2.表单元素 (1)表单控件: 单行文本框:<input type="text" value="默认值& ...
- STM32F4 ------ RTC
如果只执行 HAL_RTC_GetTime(),读取完后时间不再跑 HAL_RTC_GetTime() 和 HAL_RTC_GetDate()
- GD32 ------ 使用外部中断,中断函数需要延时才能读到真正电平
MCU:GD32F103RCT6 中断引脚没有外界上拉电阻 中断配置如下: RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFI ...