我是Grafana的新手,我已经安装了Grafana并完成了read me文件中给出的所有说明.我现在使用Visual Code for go lang我只想调试Grafana代码,以便我能理解这个过程.
谁能告诉我我必须做的事情.我听说调用Delve这个调试器.任何人都可以告诉我如何使用它,因为当我使用Delve时,它说该位置没有可构建的源文件.
我遵循了以下链接:https: //github.com/grafana/grafana,https://github.com/derekparker/delve
在 C# 中,执行程序可以使用以下命令检测它是否在调试器中运行:
System.Diagnostics.Debugger.IsAttached
Run Code Online (Sandbox Code Playgroud)
在 Go 中有等价物吗?我有一些超时,我想在我逐步执行代码时将其禁用。谢谢!
我正在使用 GoLand 调试器。
当我在visual studio代码中调试Go Lang代码时出现以下错误消息:
2018/04/03 18:19:32 server.go:73: Using API v1
2018/04/03 18:19:32 debugger.go:98: launching process with args: [$GOPATH/src/about/debug]
could not launch process: EOF
Process exiting with code: 1
Run Code Online (Sandbox Code Playgroud) 我正在关注 Karl Seguin 的“小围棋书”,以学习围棋。
我的工作环境是 Visual Studio Code。
在调试时,当我尝试从调试控制台调用一个函数时,我收到以下错误:“函数调用不允许不使用 'call'”,如果我尝试使用“call fib(10)”,我得到“无法eval 表达式:“1:6:预期的‘EOF’,发现 fib”。这是我试图评估的函数:
//Fibonnaci
func fib(n int) int64 {
if n == 0 {
return 0
} else if n == 1 {
return 1
} else {
return fib(n-1) + fib(n-2)
}
}
Run Code Online (Sandbox Code Playgroud)
如果我尝试从代码本身调用该函数(例如从 main() 调用,它可以完美运行)。
但是,如果我设置断点并尝试从调试器控制台调用相同的函数,则会出现以下错误:
Eval error: function calls not allowed without using 'call'
call fib(10)
Unable to eval expression: "1:6: expected 'EOF', found fib"
Failed to eval expression: {
"Expr": "call fib(10)",
"Scope": {
"goroutineID": 1, …Run Code Online (Sandbox Code Playgroud) 考虑下面的小片段:
package main
import (
"fmt"
"sync"
)
func main() {
var wg sync.WaitGroup
wg.Add(2)
go func() {
defer wg.Done()
for i := 1; i < 100; i++ {
fmt.Println("A:", i)
}
}()
go func() {
defer wg.Done()
for i := 1; i < 100; i++ {
fmt.Println("B:", i)
}
}()
wg.Wait()
}
Run Code Online (Sandbox Code Playgroud)
在 delve 中,我们可以使用以下命令轻松地在 goroutine 之间切换
goroutine
goroutine <id>
goroutine <id> <command>
Run Code Online (Sandbox Code Playgroud)
如果我想在 goroutine 1 中逐步运行,只需使用命令
goroutine 1 next
Run Code Online (Sandbox Code Playgroud)
在vscode中,似乎处理goroutines的唯一方法是调用堆栈,但是,这似乎是go runtime的内部线程,而不是goroutines,那么如何将运行过程集中在指定的goroutine中呢?
我一直在尝试在我的环境中安装delve.但是,钻孔无法启动,我无法解决这个问题.
操作系统:OSX Yosemite 10.10.4
达尔文内核版本14.4.0
$GOPATH/bin/dlv debug main.go
could not launch process: could not fork/exec
Run Code Online (Sandbox Code Playgroud)
https://github.com/derekparker/delve/wiki/Building
我安装了以下上面提到的步骤URL.安装成功并且以root用户正确启动.除root用户外,Delve返回错误.
1)我已经创建了认证和签名申请
2)我在make命令之前杀死了taskgated,但它在make之后再次启动.
3)如果我重命名这些文件,则此命令会失败./System/Library/LaunchDaemons/com.apple.taskgated-helper.plist /System/Library/LaunchDaemons/com.apple.taskgated.plist
codesign -s "dlv-cert" /Users/murotanimari/work/bin/dlv
error: One or more parameters passed to a function were not valid.
Run Code Online (Sandbox Code Playgroud) 我想在VSCode编辑器上调试GoLang.在他们的文档中,他们说这是可能的.我按照以下链接在IDE上安装调试功能. https://marketplace.visualstudio.com/items?itemName=lukehoban.Go
要安装Delve,他们要求遵循这些说明 https://github.com/derekparker/delve/blob/master/Documentation/installation/windows/install.md
安装完成后,他们要求运行以下代码
$ mingw32-make install
但是有一个错误
mingw32-make:***没有规则让目标'安装'.停止.
有人知道这有什么不对吗?除了这些说明之外还有什么变化吗?
我的应用程序由一个 main.go 文件和一些包组成。当在 main.go 中命中断点时,IntelliJ 按预期工作,显示变量值等,但是,当在不同的包中设置断点时 - 除了被命中之外,不会显示任何变量,并且不会跳过/进入功能按预期工作(被击中时忽略)。有人遇到过这个问题吗?如果有,有解决方法吗?
我正在尝试观看以下有关 Go 调试入门的YouTube视频。
它建议遵循官方 Delve github 存储库上的 Delve 安装说明。对于 Mac 用户,它们如下:
确保工具链到位
xcode-select --install
xcode-select: error: command line tools are already installed, use "Software Update" to install updates
Run Code Online (Sandbox Code Playgroud)
使用“go get”安装 Delve
go get -u github.com/go-delve/delve/cmd/dlv
Run Code Online (Sandbox Code Playgroud)
确保在 Xcode 中启用了开发者模式
sudo /usr/sbin/DevToolsSecurity -enable
Developer mode is already enabled.
Run Code Online (Sandbox Code Playgroud)
为了检查安装是否正确完成,我尝试在我的 Go 项目中直接运行以下命令:
dlv debug
zsh: command not found: dlv
Run Code Online (Sandbox Code Playgroud)
视频教程作者建议在~/.bash_profile无法识别命令的情况下更新文件中的GOPATH和PATH变量。我这样做是通过添加:
export GOPATH=/Users/<user_name>/go/src/
export PATH=$PATH:/Users/<user_name/go/src/my_project
Run Code Online (Sandbox Code Playgroud)
但是,即使这样做之后,我在尝试运行调试器时也会得到相同的结果:
dlv debug
zsh: command not found: dlv
Run Code Online (Sandbox Code Playgroud)
即使我将默认 zsh 的 shell 更改为 …
我正在尝试为 Go 设置一个新的 Windows 开发机器,这通常是一个非常简单的过程,但遇到了很多麻烦。当我尝试在不调试的情况下运行时,出现以下错误:
fork/exec C:\Users\CAMIWIL\AppData\Local\Temp\go-build588834862\b001\exe\hello.exe:访问被拒绝。进程退出,代码:1 信号:false
同样,当我尝试运行调试时,我得到:
无法启动进程:fork/exec c:\dev\hello__debug_bin: 访问被拒绝。进程退出代码:1
有趣的是在第二种情况下,如果我使用 git bash 在代码上手动运行 dlv,那么创建 __debug_bin 文件就没有问题,并且我可以调试到我想要的内容。同样,我也可以使用命令行构建代码。我还尝试安装 goland 只是为了看看它是否有任何问题,而且似乎也工作正常。我基本上按原样使用 VScode,此时我只将其与 go 扩展一起安装。
任何人都知道这可能是什么原因吗?决议可能是什么?