发表于: 2017-11-19 19:48:02

1 623


day18

今日完成

Debug 常用快捷键

F7在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则进入当前方法体内,如果该方法体还有方法,则不会进入该内嵌的方法中 (必备)
F8在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则不进入当前方法体内 (必备)
F9在 Debug 模式下,恢复程序运行,但是如果该断点下面代码还有断点则停在下一个断点上 (必备)
Alt + F8在 Debug 的状态下,选中对象,弹出可输入计算表达式调试框,查看该输入内容的调试结果 (必备)
Ctrl + F8在 Debug 模式下,设置光标当前行为断点,如果当前已经是断点则去掉断点
Shift + F7在 Debug 模式下,智能步入。断点所在行上有多个方法调用,会弹出进入哪个方法
Shift + F8在 Debug 模式下,跳出,表现出来的效果跟 F9 一样
Ctrl + Shift + F8在 Debug 模式下,指定断点进入条件
Alt + Shift + F7在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则进入当前方法体内,如果方法体还有方法,则会进入该内嵌的方法中,依此循环进入
Drop Frame

这个不是一个快捷键,而是一个 Debug 面板上的按钮。该按钮可以用来退回到当前停住的断点的上一层方法上,可以让过掉的断点重新来过

-------------------------------------------------------------------------------------------------------------------------------------------------------------

如下图,

① 以Debug模式启动服务,左边的一个按钮则是以Run模式启动。在开发中,我一般会直接启动Debug模式,方便随时调试代码。

② 断点:在左边行号栏单击左键,或者快捷键Ctrl+F8 打上/取消断点,断点行的颜色可自己去设置。

③ Debug窗口:访问请求到达第一个断点后,会自动激活Debug窗口。如果没有自动激活,可以去设置里设置。

④ 调试按钮:一共有8个按钮,调试的主要功能就对应着这几个按钮,鼠标悬停在按钮上可以查看对应的快捷键。在菜单栏Run里可以找到同样的对应的功能。

⑤ 服务按钮:可以在这里关闭/启动服务,设置断点等。

⑥ 方法调用栈:这里显示了该线程调试所经过的所有方法,勾选右上角的[Show All Frames]按钮,就不会显示其它类库的方法了,否则这里会有一大堆的方法。

⑦ Variables:在变量区可以查看当前断点之前的当前方法内的变量。

⑧ Watches:查看变量,可以将Variables区中的变量拖到Watches中查看

调试区如下图:

> Show Execution Point (Alt + F10):如果你的光标在其它行或其它页面,点击这个按钮可跳转到当前代码执行的行。

> Step Over (F8):步过,一行一行地往下走,如果这一行上有方法不会进入方法。

> Step Into (F7):步入,如果当前行有方法,可以进入方法内部,一般用于进入自定义方法内,不会进入官方类库的方法

> Force Step Into (Alt + Shift + F7):强制步入,能进入任何方法,查看底层源码的时候可以用这个进入官方类库的方法。

> Step Out (Shift + F8):步出,从步入的方法内退出到方法调用处,此时方法已执行完毕,只是还没有完成赋值。

> Drop Frame (默认无):回退断点,后面章节详细说明。

> Run to Cursor (Alt + F9):运行到光标处,你可以将光标定位到你需要查看的那一行,然后使用这个功能,代码会运行至光标行,而不需要打断点。

> Evaluate Expression (Alt + F8):计算表达式。

服务区如下图,从上到下依次

> Rerun 'xxxx':重新运行程序,会关闭服务后重新启动程序。

> Update 'tech' application (Ctrl + F5):更新程序,一般在你的代码有改动后可执行这个功能。而这个功能对应的操作则是在服务配置里,如图2.3。

> Resume Program (F9):恢复程序,比如,你在第20行和25行有两个断点,当前运行至第20行,按F9,则运行到下一个断点(即第25行),再按F9,则运行完整个流程,因为后面已经没有断点了。

> Pause Program:暂停程序,启用Debug。目前没发现具体用法。

> Stop 'xxx' (Ctrl + F2):连续按两下,关闭程序。有时候你会发现关闭服务再启动时,报端口被占用,这是因为没完全关闭服务的原因,你就需要查杀所有JVM进程了。

> View Breakpoints (Ctrl + Shift + F8):查看所有断点。

> Mute Breakpoints:哑的断点,选择这个后,所有断点变为灰色,断点失效,按F9则可以直接运行完程序。再次点击,断点变为红色,有效。如果只想使某一个断点失效,可以在断点上右键取消Enabled。


如下图,查看当前所选的变量值有3

  • 选中对象后,使用快捷键 Alt + F8。
  • 选中对象后,拖动对象到 Watches。
  • 选中对象后,鼠标悬停在对象上 2 秒左右。
  • (并且每行后也会有提示)

并且在弹出的计算表达式中也可以输入方法,查看结果


断点条件设置

通过设置断点条件,在满足条件时,才停在断点处,否则直接运行。

通常,当我们在遍历一个比较大的集合或数组时,在循环内设置了一个断点,难道我们要一个一个去看变量的值?那肯定很累,说不定你还错过这个值得重新来一次。

1、在断点上右键直接设置当前断点的条件


2、点击View Breakpoints (Ctrl + Shift + F8),查看所有断点。

Java Line Breakpoints 显示了所有的断点,在右边勾选Condition,设置断点的条件。

勾选Log message to console,则会将当前断点行输出到控制台,如图

勾选Evaluate and log,可以在执行这行代码是计算表达式的值,并将结果输出到控制台。

Instance filters:实例过滤,输入实例ID

Class filters:类过滤,根据类名过滤,

Pass count:用于循环中,如果断点在循环中,可以设置该值,循环多少次后停在断点处,之后的循环都会停在断点处。


买了阿里云的服务器,布置了jdk,tomcat,mysql,maven


遇到的困难

配置tomcat时,始终不能访问IP:8080,之后按照网上所说在安全组添加22/8080端口,就可以访问了


明日计划

继续之后的任务,学习Linux系统相关知识


收获

对Linux系统有了个初始的了解



返回列表 返回列表
评论

    分享到