zoukankan      html  css  js  c++  java
  • Java Eclipse进行断点调试

    如何调试Java程序?

    大家最开始学习Java,都会觉得IDE调试好高端有木有,其实很简单了。

    下文会尽量简单直观的教会你在Eclipse中调试,其他的IDE调试步骤也是类似的。

    1.在你觉得有错的地方设置断点。

    在代码行数前,点击右键,注意是右键,然后选择Toggle Breakpoint。

    你可能会问,我如何知道在哪儿放置断点?

    • 如果对这个问题完全没有感觉,你完全可以多打几个断点,单步调试直到找到异常,只是多花一点时间而已,而且这样可以更深入了解程序的执行过程!
    • 当然,如果你大致可以直到哪里可能会出问题,或者异常信息报告类位置,那么就可以在这里设置断点。

    2.点击Debug,如果是web程序,需要你将Tomcat或者Apache服务器以Debug模式启动。

    这很重要,标准的Start模式,不能进入预先设置的断点,也就不能达到调试的目的。

    3.运行程序,当程序运行到刚才设置断点的位置就会停下来,并且那行代码底色会高亮显示。

     

    这时候,你可以通过屏幕按钮或者键盘控制程序的进行。

    下面是键盘对应调试的快捷键,如果不起作用,你可以检查一下是不是键盘冲突

    比如有道词典的快捷键,经常会和Debud模式下的Resume冲突。

    作用域 功能 快捷键 

    全局 单步返回 F7 
    全局 单步跳过 F6 
    全局 单步跳入 F5 
    全局 单步跳入选择 Ctrl+F5 
    全局 调试上次启动 F11 
    全局 继续 F8 
    全局 使用过滤器单步执行 Shift+F5 
    全局 添加/去除断点 Ctrl+Shift+B 
    全局 显示 Ctrl+D 
    全局 运行上次启动 Ctrl+F11 
    全局 运行至行 Ctrl+R 
    全局 执行 Ctrl+U

    4.进入调试界面可以看到你想要的信息。

    5.在Variables里面可以查看所有变量的值,比如刚才设置的断点里面的值,右键ChangeValue可以更改,部分IDE支持在窗口中热更改并执行代码。

     

    6.下面按钮第一个是进入方法执行,比如你调用了其他方法,可以进入方法一步一步执行,如果点击第二个按钮,只会在本方法内一步一步执行,第三个按钮时你跳出此方法,继续执行调用这个方法的原方法,说明如下。

    7.执行完程序。

    8.为Eclipse添加反编译插件,更好的调试

    一般来说,我们的项目或多或少的都会引用一些外部jar包,如果可以查看jar包的源代码,对于我们的调试可以说是事半功倍。

    1、下载并安装jad.exe。将jad.exe解压到程序目录(可以放置任意目录),例如:C:Program FilesJadjad.exe。

    2、安装jadclipse插件。下载并解压net.sf.jadclipse_3.3.0.jar,将其拷贝到eclipseplugins目录下,重新启动eclipse。

    3、配置jadclipse。在eclipse窗口下,点击Window > Preferences > Java > JadClipse > Path to Decompiler。
    (设置jad的绝对路径,例如 C:Program FilesJadjad.exe)
    可将Use Eclipse code formatter(overrides Jad formatting instructions)选项打勾,这样可以与Ctrl+Shif+F格式化出来的代码样式一致。

    执行完这几个步骤,再在导入自Jar包的类或者方法上点击查看,就可以查看源代码了,如果不能,参考下面的解决办法:

    多数情况下,是eclipse未能自动将JadClipse Class File Viewer设置成class文件的缺省打开方式。
    在 Eclipse的Windows——> Perference——>General->Editors->File Associations中修改“*.class”和“*.class without source”默认关联的编辑器为“JadClipse Class File Viewer”。
    曾经配置过几次jad插件,如果不能反编译,如此设置后,屡试不爽。

    原文来自:http://www.cnblogs.com/binyue/p/3324524.html。

  • 相关阅读:
    Asynchronous AOF fsync is taking too long (disk is busy?). Writing the AOF buffer without waiting for fsync to complete, this may slow down Redis.
    DHCP "No subnet declaration for xxx (no IPv4 addresses)" 报错
    Centos安装前端开发常用软件
    kubernetes学习笔记之十:RBAC(二)
    k8s学习笔记之StorageClass+NFS
    k8s学习笔记之ConfigMap和Secret
    k8s笔记之chartmuseum搭建
    K8S集群集成harbor(1.9.3)服务并配置HTTPS
    Docker镜像仓库Harbor1.7.0搭建及配置
    Nginx自建SSL证书部署HTTPS网站
  • 原文地址:https://www.cnblogs.com/julinhuitianxia/p/7106780.html
Copyright © 2011-2022 走看看