调试
在 debugging session 期间,您将调试器附加到程序并启动该程序。 调试器的目的是干预程序执行过程,并向您提供其内部运行情况的信息。 这有助于检测并修复程序中的 bug。
调试前准备
在 中配置常见的 debugging properties and behavior。
如果您是调试的新手,默认配置即可满足您的需求。 关于每项调试器功能的主题提供了参考资料,并在适用的情况下说明了相关设置。 如果您是高级用户,正在查找特定属性,请参阅 Debugger 参考部分。
如果要使用自定义配置,请定义 run/debug configuration。 当程序需要传递参数或在启动前执行某些特殊操作时,需要这样做。 有关设置 run/debug configuration 的更多信息,请参阅 运行/调试配置 部分。 在大多数情况下,调试不带参数或没有特殊要求的简单程序时无需进行此设置。
常规调试流程
调试应用程序并没有统一的流程可供参考。 根据实际需求,您可能需要以不同的顺序执行不同的操作。 本主题提供了一般指南,概述典型调试步骤。 有关特定功能的使用时机和方式,请参阅相关主题。
定义程序应在何处停止。 这是通过使用 breakpoints 来实现的。 Breakpoints 是特殊标记,用于表示调试器需要介入并冻结程序状态的位置和条件。 被调试器冻结的程序称为 suspended。
与常规模式运行程序一样,您也可以同时这样做。
程序挂起后,使用调试器 获取程序状态的信息 ,以及其运行时的变化情况。
调试器可向您提供变量值、性能标签、当前 goroutine 状态等信息。
虽然这些工具允许您查看某一时刻的程序状态, stepping 功能可帮助您逐步控制程序的执行过程。 结合使用这些工具,您可以推断出 bug 的来源,并测试程序的健壮性。