学会使用IDEA断点调试工具

学会使用IDEA断点调试工具IDEA 学会使用断点调试

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

(0)
上一篇 2026年3月26日 下午4:37
下一篇 2026年3月26日 下午4:37


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号