IDEA断点调试
在断点调试的过程中始终是运行状态,在某一行设置一个断点之后就会停止在此处。从而发现问题的所在。俗称Debug
断点调试快捷键
- F7(跳入方法内)
- F8(跳过—逐步执行代码)
- shift+F8(跳出方法)
- F9(逐步执行代码Resume)
断点调试案例
案例一循环执行
package com.dzu.cn; / * @Author ChenRuXu * @Date 2022/2/14 22:23 * @Version 1.0 */ public class Debug01 {
public static void main(String[] args) {
//演示逐行执行 int sum=0; for (int i=0;i<5;i++){
sum+=i; System.out.println("i="+i); System.out.println("sum="+sum); } System.out.println("退出for"); } }
案例二:数组越界执行异常
package com.dzu.cn; / * @Author ChenRuXu * @Date 2022/2/14 22:48 * @Version 1.0 */ public class Debug02 {
public static void main(String[] args) {
int[] arr ={
1,10,-1}; for (int i = 0; i <=arr.length ; i++) {
System.out.println(arr[i]); } System.out.println("退出for循环"); } }

案例三追踪源码
观察Arrays.sort(arr)是如何排序的
package com.dzu.cn; import java.util.Arrays; / * @Author ChenRuXu * @Date 2022/2/14 22:56 * @Version 1.0 */ public class Dubug03 {
public static void main(String[] args) {
int arr[] ={
1,-1,10,-20,100}; Arrays.sort(arr); for ( int i= 0;i<arr.length;i++){
System.out.print(arr[i]+"\t"); } } }
学习使用断点调试过程中的F7跳入到方法体内

使用F7之后我们发现并没有进入源码之中。下面是我们的解决方法。
方法一:force step into 使用强制执行来进入
方法二采用配置的方法来实现
在设置中找到断点调试的选项。

将其中的 java.* ,javax.*取消勾选。
默认的情况下不允许进入源码

这里才是我们真正执行排序方法(双轴快排)
在进入这个最终的源码之后,思考如何退出到主方法呢
先跳出到之前的方法 需要我们去使用shift+F8(跳出方法)跳到调用排序的地方在逐步返回到主方法

案例四:F9 resume与动态下断点
idea支持在运行的过程之中来动态的下断点
package com.dzu.cn; import java.util.Arrays; / * @Author ChenRuXu * @Date 2022/2/14 22:56 * @Version 1.0 */ public class Dubug03 {
public static void main(String[] args) {
int arr[] ={
1,-1,10,-20,100}; Arrays.sort(arr); for ( int i= 0;i<arr.length;i++){
System.out.print(arr[i]+"\t"); } System.out.println(1); System.out.println(2); System.out.println(3); System.out.println(4); } }

使用F9直接会到第二个断点的位置处。然后我们动态的加一个断点。
总结
使用断点调试是,我们日后排错与学习源码进行分析的时候一项必不可少的内容之一。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/178728.html原文链接:https://javaforall.net
