Debug技巧:条件断点和远程Debug
一、断点:
1、条件断点
本以为条件断点很难,其实就这样。
二、远程Debug
1、首先看服务器是不是在Debug模式下工作
不是则进行(tomcat/bin/catalina.sh)配置。
-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n
具体解释:
- -Xdebug : 启用调试特性。
- -Xrunjdwp: 在目标 VM 中加载 JDWP 实现。它通过传输和 JDWP 协议与独立的调试器应用程序通信。下面介绍一些特定的子选项。
- transport 这里通常使用套接字传输。但是在 Windows 平台上也可以使用共享内存传输。
- address 这是连接的传输地址。如果服务器为 n ,将尝试连接到该地址上的调试器应用程序。否则,将在这个端口监听连接。
- server 如果值为 y ,目标应用程序监听将要连接的调试器应用程序。否则,它将连接到特定地址上的调试器应用程序。
- suspend 如果值为 y ,目标 VM 将暂停,直到调试器应用程序进行连接。
2、本地IDEA进行远程Debug:
IDEA中添加 Remote Server:
只需输入机器IP和端口即可,其他无需管太多,IDEA会自动帮你搞好。
3、本地启动Remote Server:
控制台输出如下即表明成功:
后续在代码中需要debug的地方打断点,然后调用远程机器上的服务即可进入断点。
4、结束
5、远程Debug的参考:
- 详细解释原理:https://www.ibm.com/developerworks/cn/opensource/os-eclipse-javadebug/#artrelatedtopics
但实际上看不太懂,理解就好。 - 极客学院实操参考: http://wiki.jikexueyuan.com/project/intellij-idea-tutorial/remote-debugging.html
Debug技巧:条件断点和远程Debug的更多相关文章
- eclipse如何远程debug/断开远程debug
eclipse如何远程debug? 当你的代码已经部署到生产或者测试环境的时候,你如何debug判断线上的问题呢? debug之前必须保证本地代码和远程代码完全一致,否则将不能建立连接 在eclips ...
- IDEA远程DEBUG Tomcat配置
IDEA远程DEBUG Tomcat配置 IDEA远程DEBUG Tomcat很简单,配置如下: 1.修改tomcat服务器配置 打开tomcat/bin/catalina.sh 在空白处添加如下参数 ...
- 设置tomcat远程debug
查看端口占用情况命令: netstat -tunlp |grep 8000 tomcat 启动远程debug: startup.sh 中的最后一行 exec "$PRGDIR"/& ...
- Tomcat配置内存和远程debug端口
一.配置内存 在/tomcat/bin/catalina.sh 中添加: JAVA_OPTS='-server -Xms2048m -Xmx2048m -XX:NewSize=768m -XX:Max ...
- 【Java远程debug】
转自 http://blog.csdn.net/hongchangfirst/article/details/44191925 一.远程debug原理 Java远程调试的原理是两个JVM之间通过deb ...
- 远程debug调试java代码
远程debug调试java代码 日常环境和预发环境遇到问题时,可以用远程调试的方法本地打断点,在本地调试.生产环境由于网络隔离和系统稳定性考虑,不能进行远程代码调试. 整体过程是通过修改远程服务JAV ...
- IntelliJ IDEA 15.0.2远程debug tomcat
背景 在最近的java项目中使用了linux环境下编译的so文件,所以无法在window环境下debug,故此有了这篇文章 环境 jdk:jdk-8u101-linux-x64 os:CentOS r ...
- eclipse远程debug
由于一般比较正规项目,都会有好几个版本,有时候在测试版本的时候,一切都好好的,然后提交到其他版本之后会有各种各样的问题,这个时候如果不能快速准确的定位到问题,那么我们就需要用 eclipse远程deb ...
- Eclipse远程debug服务器
一,找端口号 二,Eclipse配置 三,测试是否成功 四,结束远程debug
随机推荐
- unity3d控制主摄像头移动
这篇很水,因为就只有一行代码==: Camera.main.transform.Translate (Vector3.forward); 这行代码控制主摄像头向前移动,其它的如下: up:向上 dow ...
- Memcached 测试
Memcached set 命令用于将 value(数据值) 存储在指定的 key(键) 中. 如果set的key已经存在,该命令可以更新该key所对应的原来的数据,也就是实现更新的作用. 语法: s ...
- Handler源代码解析-有关Handler那些事
Handler被成为异步处理大师.相信大家都会用,面试中也常常会问到Handler的底层原理.今天就来看一看Handler的机制. Android的消息处理有四个核心类:Handler.Looper. ...
- mybatis想要在控制台显示sql语句配置文件
在src目录下创建一个properties文件 配置内容如下 log4j.rootLogger=debug,stdout,logfile log4j.appender.stdout=org.apach ...
- Laravel 5 教程 - 文件上传
一.简介 Laravel 有很棒的文件系统抽象层,是基于 Frank de Jonge 的 Flysystem 扩展包. Laravel 集成的 Flysystem 提供了简单的接口,可以操作本地端空 ...
- Atitit。 沉思录 与it软件开发管理中的总结 读后感
Atitit. 沉思录 与it软件开发管理中的总结 读后感 1. <沉思录>,古罗马唯一一位哲学家皇帝马可·奥勒留所著 2 2. 沉思录与it软件开发管理中的总结 2 2.1. 要有自己的 ...
- Atitit.故障排除系列---NoClassDefFoundError NoClassDefFoundError ClassNotFoundException
Atitit.故障排除系列---NoClassDefFoundError NoClassDefFoundError ClassNotFoundException 1. java.lang.Class ...
- 2.Stacks(堆栈)
一.概述 C++ Stack(堆栈) 是一个容器类的改编,为程序员提供了堆栈的全部功能,也就是说实现了一个先进后出(FILO)的数据结构. 二.常用API empty() 堆栈为空则返回真 pop() ...
- C#非常规调试场景总结
场景1:类库独立调试. 方法:可以将类库项目修改成控制台程序,然后增加一个静态的main函数的方式来调试 场景2:程序需要连接数据库,本机调试的时候因为权限问题无法连接上数据库,只能 ...
- SecureCRT中 secureCRT使用VIM时对语法高亮
1.在SecureCRT中 secureCRT使用VIM时对语法高亮 其实不是secureCRT的功能,而是VIM的 设置:Options ->Session Options -> Ter ...