网站建设与规划心得总结,wordpress收录提交插件,怎样进行seo优化,百度帐号注册在开发中#xff0c;新手程序员在查找错误时, 这时老程序员就会温馨提示#xff0c;可以用断点调试#xff0c;一步一步的看源码执行的过程#xff0c;从而发现错误所在。 重要提示: 断点调试过程是运行状态#xff0c;是以对象的运行类型来执行的 断点调试介绍 断点调试是… 在开发中新手程序员在查找错误时, 这时老程序员就会温馨提示可以用断点调试一步一步的看源码执行的过程从而发现错误所在。 重要提示: 断点调试过程是运行状态是以对象的运行类型来执行的 断点调试介绍 断点调试是指在程序的某一行设置一个断点调试时程序运行到这一行就会停住然后你可以一步一步往下调试调试过程中可以看各个变量当前的值出错的话调试到出错的代码行即显示错误停下。进行分析从而找到这个Bug断点调试是程序员必须掌握的技能。断点调试也能帮助我们查看java底层源代码的执行过程提高程序员的Java水平。
基本概念
断点Breakpoint在代码中设置的特定位置当程序运行到该位置时会暂停执行以便开发者检查程序的状态。调试会话Debug Session启动调试模式后程序在 IDEA 的控制下运行开发者可以通过各种调试工具与程序交互这个过程称为调试会话。调试工具窗口IDEA 提供了专门的调试工具窗口用于显示调试相关的信息如变量的值、调用栈、线程信息等。
操作步骤
设置断点在 IDEA 的代码编辑器中单击要设置断点的代码行左侧的空白区域会出现一个红点表示断点已设置。也可以通过右键单击代码行选择 “Toggle Breakpoint” 来设置或取消断点。 启动调试可以通过以下几种方式启动调试会话。 点击 IDEA 工具栏中的 “Debug” 按钮选择要调试的 Java 类或启动配置。使用快捷键如在 Windows/Linux 系统中通常是 “ShiftF9”在 Mac 系统中是 “ControlShiftF9”。在 “Run” 菜单中选择 “Debug”然后选择相应的启动配置。 调试工具窗口启动调试后IDEA 会显示调试工具窗口主要包括以下几个部分。 Variables变量显示当前作用域内的变量及其值。可以通过双击变量来修改其值方便进行测试和调试。Call Stack调用栈显示方法的调用顺序从当前执行的方法开始向上追溯到方法的调用源头。可以点击调用栈中的方法查看该方法调用时的上下文信息。Threads线程显示当前正在运行的线程信息包括线程的名称、状态等。可以在多线程程序中方便地切换到不同的线程进行调试。 调试操作 Step Over单步跳过快捷键是 “F8”。程序会执行下一行代码如果下一行代码是方法调用会直接执行完该方法并返回不会进入方法内部。Step Into单步进入快捷键一般是 “F7”。如果下一行代码是方法调用会进入方法内部继续单步执行。Force Step Into强制单步进入可以强制进入任何方法包括 Java 核心类库中的方法而不仅仅是用户自定义的方法。Step Out单步跳出当进入一个方法内部后使用 “Step Out”快捷键通常是 “ShiftF8”可以执行完当前方法并返回到调用该方法的位置。Resume Program恢复程序快捷键是 “F9”。程序会从当前断点继续执行直到遇到下一个断点或程序结束。Evaluate Expression计算表达式在调试过程中可以通过 “Evaluate Expression” 功能计算表达式的值。在 “Variables” 窗口或代码编辑器中右键单击选择 “Evaluate Expression”输入要计算的表达式IDEA 会显示计算结果。
实际开发断点技巧
条件断点可以为断点设置条件只有当条件满足时程序才会在该断点处暂停。在断点上右键单击在“Condition”的内容框中设置条件表达式。
例如我们在这个for循环中断点那么每次执行循环都会进入断点我们可以通过设置断点条件来控制是否进入断点比如只需要在 i 10 的时候进入断点则可以在断点处右键在弹出的对话框的 Condition 中输入条件如下所示
for (int i 0; i 100; i) {System.out.println(i);
} 异常断点IDEA 允许设置异常断点当程序抛出特定类型的异常时会自动暂停在抛出异常的位置。在 “Debug” 窗口中点击 “View Breakpoints” 按钮选择 “Java Exception Breakpoints”可以添加要监控的异常类型。
多线程调试在多线程程序中可以通过 “Threads” 窗口方便地切换线程进行调试。还可以使用 “Suspend All” 和 “Suspend Thread” 按钮来暂停所有线程或单个线程以便分析线程之间的交互和数据共享问题。
如果我们希望按照 线程1-1线程2-1线程1-2线程2-2线程1-3线程2-3 的顺序输出可以通过设置断点执行顺序来实现具体操作如下所示。 new Thread(()-{System.out.println(线程1-1);System.out.println(线程1-2);System.out.println(线程1-3);
}).start();new Thread(()-{System.out.println(线程2-1);System.out.println(线程2-2);System.out.println(线程2-3);
}).start(); 先在两个线程代码中打断点然后在断点处右键设置为 Thread如下图所示 然后就可以在frame下切换线程执行了。