一、Debug视图
调试中最常用的窗口是:
窗口 | 说明 |
---|---|
Debug窗口 | 主要显示当前线程方法调用栈, 以及代码行数(有调试信息的代码) |
断点Breakpoints窗口 | => 断点列表窗口,可以方便增加断点,设置断点条件,删除断点等 |
变量Variables窗口 | => 显示当前方法的本地变量,非static方法,包含this应用,可以修改变量值 |
代码编辑窗口 | => 这个不用多说了 |
输出Console窗口 | => 日志等输出内容,调试时,可以将关注的组件级别设置低一点,以便获得跟多输出信息 |
另外辅助的窗口有:
窗口 | 说明 |
---|---|
表达式expression窗口 | => 写上自己需要观察的数据的表达式,或者修改变量值 |
Display窗口 | => 可以在display中执行代码块,输出内容等 |
大纲Outline窗口 | => 查看当前类的方法,变量等 |
类型层级Type hierarchy窗口 | => 查看当前所在类的继承层次,包括实现接口,类继承层次 |
方法调用关系Call hierarchy窗口 | => 查看当前方法被哪些方法调用,调用方法在哪些类中、第几行,可以直接打开对应的方法 |
搜索结果Search窗口 | => 结合快捷键可以查看变量、方法等在工作空间、项目、工作集中被引用或定义的代码位置 |
1)窗口全览:
2)Debug View(线程堆栈视图):
debug视图允许您在工作台上管理正在调试和运行的程序,他显示了你正在调试的程序中挂起的线程的堆栈帧,程序中的每个线程作为树的节点出现。他展示了正在运行的每个目标的进程。如果线程被挂起,它的堆栈帧以子元素的形式展示。以下是一些常用的debug按钮:
1.表示当前实现继续运行直到下一个断点,快捷键为F8。
2.表示打断整个进程
3.表示进入当前方法,快捷键为F5。
4.表示运行下一行代码,快捷键为F6。
5.表示退出当前方法,返回到调用层,快捷键为F7。
6.表示当前线程的堆栈,从中可以看出在运行哪些代码,并且整个调用过程,以及代码行号
详细介绍:
Skip All Breakpoints : 将所有断点设置为被跳过的,设置了Skip All Breakpoints之后,所有断点上都会有一个斜线,表示断点将被跳过,线程不会在该断点处被挂起。
Drop to Frame : 这个命令可以让程序回到当前方法的开头第一行重新开始执行,可以重新执行这个java堆栈帧,可以选择一个指定的堆栈帧,然后点击 Drop to Frame,这样就可以重新进入指定的堆栈帧。使用Drop to Frame时候需要注意:
1.不能drop到已经执行过的方法栈中的方法中。
2.drop到stack frame中时,不会改变全局数据原有的值,比如,一个包含元素的vertor并不会被清空。
Step Filters : 这个功能比较简单,就是当我们在debug的时候想要忽略一些我们不关注的类时,可以开启Step Filters进行过滤,程序会一直执行直到遇到未经过滤的位置或断点。Step Filters功能由Use Step Filters,Edit Step Filters,Filter Type,Filter Package四项组成。具体操作如下:
步骤 1: Windows -> Preferences -> Java -> Debug -> Step Filtering.
步骤 2:选择‘Use Step Filters’
步骤 3:在屏幕上选中所需的选项。你可以添加你自己代码库中的部分代码。
步骤 4:点击‘Apply’
原理上,Edit Step Filter命令用于配置Step Filter规则,而Filter Type与Filter Package分别指的是过滤的Java类型与Java Package。
Step Return : 跳出当前方法,在被调用方法的执行过程中,使用Step Return会在执行完当前方法的全部代码后跳出该方法返回到调用该方法的方法中。