由FlorinPăţan于2019 年2月14日发表
在今天的帖子中,我们将继续探索GoLand中的调试器功能。如果您想知道如何配置调试器,请参阅我们之前的帖子,其中包含有关如何配置IDE以在各种情况下工作的所有信息。
我们从以下几个方面来说明:
- 控制执行流程
- 评估表达式
- 观看自定义值
- 更改变量值
- 使用断点
首先在我们感兴趣的地方放置几个断点,了解运行代码的方式,然后启动调试会话。

控制执行流程
我们可以从这里完全控制调试器。我们可以Step Into,Step Out,Run to Cursor等来控制调试步骤。

评估表达式
我们也可以用它来评估简单表达式。由于Delve的限制,目前不支持呼叫功能,但请点击此功能请求进行投票以获取更多信息:https://youtrack.jetbrains.com/issue/GO-3433

观看自定义值
这可以创建一个监控点,让我们监控自定义表达式。当我们想要观察更复杂的表达式或仅查看map/slice/struct的某个值时,这非常有用。

更改变量值
由于Go运行时的限制,目前只能对非字符串基本类型(如int,float或布尔值类型)更改值。
要执行此操作,请从变量视图中选择要更改的值,然后按F2键并开始键入值。如果您满意,请按Enter键,您的代码现在将使用不同的值。

使用断点
设置断点是一个相当简单的操作。单击要停止执行的行的左侧,或使用快捷键Ctrl + F8 / Cmd + F8,调试器将停止执行。
如果你不需要更多东西,那就是你需要知道的所有东西。但是,GoLand为您和调试器如何与断点进行交互提供了一些很好的选择。
按Ctrl + Shift + F8 / Cmd + Shift + F8一次,您将看到一个包含几个选项的屏幕。
再次按Ctrl + Shift + F8 / Cmd + Shift + F8,将显示断点列表,其中包含所有可用选项的完整列表。

从此处可以启用或禁用断点,并使用调试器在调试会话期间暂停调试进程的执行,或仅在满足某个条件时才触发断点。

我们还可以选择让IDE日志达到某个断点,或者在控制台中打印堆栈跟踪,以便我们可以在文本模式下查看它。
我们可以在这里使用的另一个强大功能是Evaluate和log,它允许IDE评估表达式并在控制台中打印它。
如果要放置临时断点,可以启用“ 一次删除”选项,IDE将自动删除断点。或者,只有在达到先前的断点时才能启用断点,这使得它可用于调试复杂的条件代码。

在这篇博文中,我们研究了使用IDE调试应用程序和测试。这将有助于我们更快地深入了解应用程序,并更有效地发现和修复错误。
原文地址https://blog.jetbrains.com/go/2019/02/14/debugging-with-goland-essentials/
网友评论