如何在GoLand中设置调试?

Zoy*_*oyd 18 ide debugging go goland

我正在尝试使用GoLand并听说调试器应该很棒,但我找不到任何解释如何设置的文档(GoLand处于预览阶段,所以这并不奇怪).我的用例:我正在编写一个REST API,我使用curl向其发送请求.有人可以一步一步地告诉我,如何开始使用调试器?

[编辑1](从注释中移出)当我单击运行/调试(或运行/运行)时,会显示一个窗口,要求我编辑配置.我可以选择几种配置,我尝试选择"Go application"但是Debug按钮永远不会变灰,我无法让它变成可点击的.我是GoLand的新手,我可能会遗漏一些明显的东西,但我找不到任何丢失的设置.

[编辑2]事实证明我的工作区不符合Go规范:我的代码不在名为src的目录中.现在就是这种情况,我可以单击Run/Debug并且GoLand似乎正在做正确的事情,除了它不会在断点处停止或者表现得像调试器,我的代码只是运行.

[编辑3]再次尝试,它的工作原理.有点.我不知道为什么它现在有用,即使它之前没有,我也没有改变任何东西.现在断点在某些方面起作用,而在其他方面起作用.或者调试器在断点处停止,但我会永远等待要加载的变量列表.嗯,这毕竟预览......

[编辑4]我今天刚收到通知,提供了新版本的GoLand.我升级了,现在调试对我来说很好.

Kor*_*tor 10

如果您的代码不在内部,Gogland将不会启用调试操作(尽管可以运行)src.没有关于此的警告,所以解决这个问题可能真的很痛苦.

此外,根据您的项目结构,可能仍然无法进行调试.在这种情况下,删除所有运行配置并创建一个新配置可能会有所帮助.有关于此行为的错误报告.

PS:尽管OP提到了问题编辑的第一部分,但它认为在答案中值得一提.

  • 在做了一些额外的研究之后,看起来它实际上是要求您的源代码位于 src 文件夹中的语言。从技术上讲,它可以在没有它的情况下工作,但您必须跳过额外的环节。鉴于没有真正的包管理,将您曾经处理过的所有代码放在一个文件夹层次结构中似乎是一个荒谬的设计决定。在同一个 repos 的多个分支上工作几乎是不可能的,这在我工作过的每家公司都是现实。 (2认同)

小智 5

我也遇到了同样的问题,我通过使用“运行应用程序”配置(在“运行/调试配置”窗口中)而不是“运行单个文件”配置来解决。

因此,转到Gogland的右上角,然后单击“编辑配置”。

打开运行/调试配置

然后,使用“ Go应用程序”配置文件添加新配置。

运行/调试配置窗口

保存后,您应该能够调试代码。o /

启用此配置的一种简单方法是使用@ user1793301方法,然后右键单击要运行的文件,然后选择“调试'go run .go'”。


可能的解释

注意:我没有找到任何进一步的细节。

事实:“运行应用程序”配置的确会在运行二进制可执行文件之前对其进行构建。

事实:我可以看到控制台输出(在Goglang内部)是IDE使用DLV作为调试工具。

事实:我dlv debugDLV文档中找到了,它似乎可以编译和调试代码。

假设:Jetbrains的家伙没有实现它。或者至少不YET

  • 我使用的是 GoLand 2020.2.3,“Go 应用程序”不是模板的选项:( (2认同)

Ela*_*bak 5

自从@Jamillo Santos 添加他的回复以来,goland 的情况发生了变化。

首先,没有更多的“Go Application”。

最简单的方法是定位包含 main() 函数的文件。应该有一个小三角形指向它,如所附屏幕截图所示: 主函数声明

当您单击绿色小三角时,您会看到一个带有运行/调试选项的菜单。每个都会创建一个go build配置。

您可以编辑该go build配置并为您的应用程序添加程序参数。例如,如果您的程序有一个命令行参数,--arg=value您可以像这样添加它: 在此处输入图片说明


小智 -1

我右键单击项目(内部的 main.go)并选择“调试...”并且它可以工作

  • 这并不能解释为什么“调试...”可能不可用。 (2认同)