在 C# 中,正在运行的程序可以通过“System.Diagnostics.Debugger.IsAttached”方法识别其是否处于调试器监督之下.
Go 可以实现类似的功能吗?这对于在调试代码时禁用超时特别有用。
具体来说,这个问题是在使用 GoLand 调试器的上下文中出现的。
使用构建标签:
在“isdelve/delve.go”中,添加以下构建标签:
// +build delve
在“isdelve/nodelve.go”中,添加以下构建标签:
// +build !delve
向两个文件添加“package isdelve”声明并声明“Enabled”常量:
package isdelve const Enabled = true // or package isdelve const Enabled = false
创建第三个 Go 文件“a.go”,它导入“isdelve” package:
package main import ( "isdelve" "fmt" ) func main() { fmt.Println("delve", isdelve.Enabled) }
配置 GoLand:
用法:
替代方案:
或者,delve 的“set”命令可以在启动调试器后手动设置变量。
以上是Go 可以像 C# 的 `Debugger.IsAttached` 一样检测 GoLand 调试器附件吗?的详细内容。更多信息请关注PHP中文网其他相关文章!