步骤
成都创新互联公司制作网站网页找三站合一网站制作公司,专注于网页设计,成都做网站、成都网站建设,网站设计,企业网站搭建,网站开发,建网站业务,680元做网站,已为成百上千家服务,成都创新互联公司网站建设将一如既往的为我们的客户提供最优质的网站建设、网络营销推广服务!
首先打开eclipse,打开java源文件 如图:
在需要测试的代码行左侧行号列上双击,生成断点 ,再次双击可以取消断点 如图:
然后右键,选择Debug As-Java Application,(注意,不是选择Run As)
开始调试java程序 如图
有可能会弹出提示框(表示是否进入调试视图)点击确定就可以了
然后会进行调试视图,如图:
左侧上部是整个正常线程执行情况,右侧上部是刚才设置断点的行号列表.
在左侧上部有几个按钮需要注意如图:
这些按钮就是我们调试时的控制按钮 分别表示:
step into(快捷键F5)进入当前行的方法内部,一步一步执行
step return (快捷键F7)返回上一步执行的方法(相对应F5)
step over(快捷键F6)执行当前行,但不进入执行细节
resume (快捷键F8)恢复执行,表示接着执行代码,直接跳到下一个断点
terminate 停止调试
常用调试方法:按F8跳到下一个断点执行 如果需要查询执行细节F5F6F7等
取消断点的话:在右侧上部的断点列表区取消选择或删除当前断点即可
1、以一个1到100求累加和的小程序为例进行说明。程序代码,第一步,双击各行左侧对应区域添加断点。
2、根据程序代码,设置预期的端点,设置完毕后,左侧会出现图标作为标记。
3、在代码窗口任意位置右击鼠标,先选择Debug As,再选择Java Application进入调试界面。
4、调试界面,点击左上方窗口上的绿色三角箭头按钮开始调试,每点击一下,程序运行一步,即从开始运行到第一个断点,在从第一个断点到第二个,依次进行。
5、右上方窗口显示每一步运行后变量的值,可与预期结果进行比较,以便修改。左上方的红色按钮是终止调试键,按此可结束调试。图中所示是程序运行几步后的情况。
6、调试结束返回Java编码窗口。点击右上方表格形按钮,选择Java选项,即返回Java编码窗口,。
1. 远程debug调试java代码
1.1 主动连接调试
首先需要远程服务配置启动脚本:
JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000"
如果是启动jar包,指令:
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 -jar test.jar
这里-Xdebug是通知JVM工作在DEBUG模式下,-Xrunjdwp是通知JVM使用(java debug wire protocol)来运行调试环境。
transport是监听Socket端口连接方式(也可以dt_shmem共享内存方式,但限于windows机器,并且服务提供端和调试端只能位于同一台机)。
server=y表示当前是调试服务端,=n表示当前是调试客户端。suspend=n表示启动时不中断(如果启动时中断,一般用于调试启动不了的问题)。
address=8000表示本地监听8000端口。
远程服务(tomcat/jboss)启动成功后,本地Eclipse对需要调试的地方打上断点,
然后项目右键启动远程调试:Debug as-Debug Configurations-Remote Java Application。
Host为远程主机IP,Port为远程监听调试端口,Connection Type为:Standard(Socket Attach),
点击Debug,然后打断点,远程服务运行到断点处本地就会中断,然后进行调试。
1.2 被动连接调试
首先需要Eclipse配置监听,如主动连接调试的Eclipse配置图片,Connection Type选择:
Standard(Socket Listen),配置本地监听端口,比如默认8000。点击Debug开始等待远程连接调试。
然后配置远程服务启动脚本:
JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,address=127.0.0.1:8000,suspend=y"
如果是调试jar包,指令:
java -Xdebug -Xrunjdwp:transport=dt_socket,address=127.0.0.1:8000,suspend=y -jar remoting-debug.jar
参数含义和主动连接调试一样,只是这里suspend=y表示启动时就中断,需要连接本地IDE调试启动。
address=ip:port,ip需要修改为本地的对外IP。
这样远程项目启动时就连接到本地,方便调试项目启动不了的问题。