Debug code
最后修改2024 年 8 月 06 日
IntelliJ IDEA 为 Java 代码提供了一个调试器。根据安装/启用的插件,您还可以调试用其他语言编写的代码。
在调试会话中,你启动程序时会附加调试器。调试器的作用是干扰程序的执行,并为你提供有关程序运行的信息。这有助于检测和修复程序中的错误。
note
运行调试会话的方法有很多种,但为简单起见,本文档假定您是在 IntelliJ IDEA 中构建和运行项目。
这是最常见的情况,与更高级的技术相比限制较少。附加到进程和调试远程应用程序的程序将在不同章节中介绍。
确保在"设置"|"构建、执行、部署"|"编译器"|"Java 编译器 "中打开了 "生成调试信息"选项(默认设置)。
调试并不绝对需要这一设置,但我们建议启用它。禁用它可以节省磁盘空间,但会牺牲一些调试器功能。
在"设置"|"构建、执行、部署"|"调试器 "中配置常用调试属性和行为。
如果您是调试新手,开箱即用的配置将非常适合您。有关每个调试器功能的主题都提供了参考资料,并在适当的地方解释了相关设置。如果您是高级用户,正在寻找某些特定属性,请参阅调试器参考部分。
如果要使用自定义配置,请定义运行/调试配置。如果需要将一些参数传递给程序或在启动前执行一些特殊活动,则需要定义运行/调试配置。有关设置运行/调试配置的更多信息,请参阅运行/调试配置部分。大多数情况下,调试一个不需要参数或任何特殊要求的简单程序并不需要这些配置。
调试程序没有放之四海而皆准的程序。根据实际需求,您可能需要以不同的顺序使用不同的操作。本主题提供了代表典型调试步骤的一般指南。
有关如何以及何时使用特定功能的详细信息,请参见相关主题。
定义需要停止程序的位置。这可以通过断点来实现。断点是一种特殊标记,代表调试器需要介入并冻结程序状态的位置和条件。被调试器冻结的程序被称为中止程序。
使用断点的另一种方法是在任意时刻手动暂停程序,但这种方法会对调试器的功能造成一些限制,而且无法精确到何时暂停程序。
在调试模式下运行程序。只要相应的运行配置支持调试,程序就可以是普通应用程序、单元测试或任何其他可执行代码。
就像正常运行程序一样,你可以同时运行多个调试会话。
程序暂停后,使用调试器获取有关程序状态的信息,以及程序在运行过程中的变化情况。
调试器为您提供变量值、线程当前状态、堆中当前对象明细等信息。
通过抛出异常(例如,检查如何处理异常)或在程序执行过程中运行任意代码,还可以在各种条件下测试程序。
这些工具可以让你检查特定时刻的程序状态,而步进功能则可以让你控制程序的逐步执行。通过结合这些工具,您可以推断出错误的来源,并测试程序的健壮性。
当您确定了需要修复的内容后,就可以在不终止会话的情况下进行修复。为此,IntelliJ IDEA 提供了一项功能,允许您在运行中调整和重新加载代码片段。重载修改过的类"主题将介绍这种方法。
note
如果您是调试新手,我们建议您完成 "调试您的第一个 Java 应用程序"教程。
如果您已经熟悉 IntelliJ IDEA 调试器,并希望获得各种有用功能和方法的概述,请观看调试器复习视频系列。
《调试器要点》涵盖了断行、步进、控制调试会话、监视、表达式评估和断点条件等基本主题。
调试器高级包括断点类型和设置、高级步进、远程调试、呈现器等。
调试器专业版涵盖使用 HotSwap、调试标签、异步堆栈跟踪和反编译代码调试等高级主题。
Thanks for your feedback!