在 Go 中,与 C# 不同,在 C# 中可以使用 System.Diagnostics.Debugger.IsAttached 来检测调试器是否存在,这里没有直接等价物。为了解决这个问题,一种方法是通过 delve 调试器利用构建标签。
创建两个文件:
// +build delve package isdelve const Enabled = true
// +build !delve package isdelve const Enabled = false
在您的主程序,导入 isdelve 包并检查 Enabled 常量:
import "isdelve" func main() { fmt.Println("delve", isdelve.Enabled) }
在 GoLand 中,导航到“运行/调试配置”,然后在“Go”中工具参数',添加:
-tags=delve
现在,在 GoLand 中运行程序将启用 delve 构建标签,允许您访问 isdelve.Enabled 常量。
或者,在启动调试器后使用 delve 的 set 命令设置变量:
dlv debug a.go (dlv) set debug.enabled true
以上是如何检测GoLand调试器是否附加到Go程序?的详细内容。更多信息请关注PHP中文网其他相关文章!