As we know 当我们启动多个线程时,哪个线程内的程序先执行,完全靠CPU的心情(爸爸一样的存在),这样就会造成一个问题:无法像单线程那样按照执行顺序debug。现象就是你只管打断点,线程之间不乱跳算我输,程序举例如下: 老师提出问题后,四个同学开始抢答: 这么多同学抢答,让坚守岗位30多年的沐芳老师觉得再这样下去课堂...
打开断点配置面板 断点面板 添加一个异常断点并选择需要需要断点的异常类型 选择异常断点 选择异常 异常断点面板 当程序运行时触发此异常则会断点。 发生异常,进入断点 断点回退 IDEA断点不能一步步回退,只能回退到目标方法被调用的地方。 回退 远程JVM调试 IDEA配置 菜单Run - Edit Configurations 增加远程JVM调试(Remo...
JVM 激活远程调试的启动参数有 JPDA_OPTS, CATALINA_OPTS 和 JAVA_OPTS。其中 JAVA_OPTS 是通常不建议使用的, 因为基于 JAVA_OPTS 的参数设定会暴露给所有的 JVM 应用, 而 CATALINA_OPTS 定义的设定值限制在Tomcat 内。 1 使用JPDA_OPTS 在CATALINA_HOME/bin 目录下创建可执行脚本文件 setenv.sh ( Windows 创...
jdk8:java -jar-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=9999xxx.jar jdk8以上版本:java -jar-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:9999xxx.jar 准备SpringBoot项目# 准备一个接口# packagecom.example.demo.controller;importorg.springframework.web.bind.an...
第一步:要让远程服务器运行的代码支持远程调试,也就是启动的时候必须加上特定的JVM参数: 1.java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=${debug_port} demo.jar(适用于JDK8以上) 2.java -Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=${debug_port} demo....
2,点击左上角'+'号,选择Remote。分别填写右侧三个红框中的参数:Name,Host(想要指定的远程调试端口)。 服务器端开启调试模式,增加JVM启动参数,以支持远程调试 服务器端的catalina.sh文件,在Tomcat的安装目录下,复制到本地,进行编辑,在第一行添加参数配置如下,完成后粘贴回去。
从configuration中搜索remote模版,点击右上角的create configuration,就创建好了一个远程debug启动方式.Debugger mode选择Attach to remote JVM即可,它还有一个选项是Listen to remote JVM,意如其名嘛,一个是主动附着到启动的程序,一个是被动监听程序。ip和端口不用多说,笔者直接用的本地jar包,所以填了localhost...
参考上图,method1方法调用method2,当前断点的位置j=100,点击上图红色箭头位置的Drop Frame图标后,时间穿越了 在这里插入图片描述 回到了method1刚开始调用的时候,变量i变成了99 注意:好奇心是人类进步的阶梯,如果想知道为啥这个功能叫Drop Frame,而不是类似Back To Previous之类的,可以去翻翻JVM的书,JVM内部以栈帧...
SocketAttach就是第二种方式,美少年来了(远程程序运行),停在了断点上,等我开窗(触发debug动作)。Socket Listen是第一种,我先开窗,美少年再往我这边开走。7 debug语法中的参数含义:-Xdebug是通知JVM工作在DEBUG模式下-Xrunjdwp是通知JVM使用(java debug wire protocol)来运行调试环境。该参数同时了一系列的...
web项目部署到tomcat上之后,有时需要打断点单步调试,如果用的是Intellij idea,可以通过如下方法实现: 开启debug端口,启动tomcat 以tomcat7.0.75为例,打开bin目录下的catalina.bat文件,如下图,可以看到默认的debug端口是8000,如果本地的8000已经被占用,请改成一个未占用的端口号: ...