标签: delve

如何在 delve 中打印字符串变量的完整值?

我正在使用 delve go 调试器来调试一些代码。当我尝试打印字符串变量时,它给了我一个缩写版本。

(dlv) print myString
"my string...+539 more"
Run Code Online (Sandbox Code Playgroud)

我如何让它打印完整的字符串?

debugging go delve

23
推荐指数
3
解决办法
9829
查看次数

如何为Golang和AppEngine设置VScode调试会话?

VScodeDebugGoAppEngine

Hello World教程,演示如何使用Visual Studio(又名VScode)设置VS Code来调试Golang App Engine代码

这是使用AppEngine文档中的Helloworld代码:

go get -u -d github.com/directmeasure/VScodeDebugGoAppEngine.git
Run Code Online (Sandbox Code Playgroud)

在运行osX 10.13.3的Mac上运行.

我测试了代码,服务器在本地工作.我正在试图弄清楚如何使用调试器输入代码,以便我可以学习如何在其他项目中使用调试器.

这些是我能找到的使用VScode与GAE最好的说明,但他们似乎是过时的基础上更新Golang(如开关Gcloud,-go_debugging标志和目录结构的变化):
https://medium.com/@dbenque /调试-golang-应用服务引擎模块与-视觉工作室码85b3aa59e0f

以下是我采取的步骤:

设置环境

  • 添加到.bash_profile

    export BASEFOLDER="/Users/Bryan/google-cloud-sdk/" . 
    export GOROOT="/usr/local/go" # this shoudln't have to be set with current Version, doing it to follow the tutorial . 
    
    Run Code Online (Sandbox Code Playgroud)

我是如何尝试运行调试器的:

启动本地服务器.

dev_appserver.py --go_debugging=true app.yaml
Run Code Online (Sandbox Code Playgroud)

将本地二进制文件附加到Delve

 ps aux | grep _go_app 

dlv attach <#using the PID from the server binary>
Run Code Online (Sandbox Code Playgroud)

Delve成功附加到二进制文件.

当我启动调试会话时,蓝色进度条永远不会停止水平扫描.

VARIABLE侧栏永远不会填充hello.go中的变量

断点设置为hello.go:第21行

Debug REPL终端显示:

Verbose logs are written to:  
/var/folders/mw/0y88j8_54bjc93d_lg3120qw0000gp/T/vscode-go-debug.txt  
16:02:31, 2018-4-5 …
Run Code Online (Sandbox Code Playgroud)

google-app-engine go visual-studio-code delve

22
推荐指数
1
解决办法
2486
查看次数

如何在Visual Studio代码中使用Delve调试器

我已经为VS Code安装了Go扩展,但无法使其正常工作.

"dlv debug"可以在终端上正常工作.

dlv debug src/github.com/user/hello
Run Code Online (Sandbox Code Playgroud)

launch.json:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch",
            "type": "go",
            "request": "launch",
            "mode": "debug",
            "program": "${workspaceRoot}",
            "env": {},
            "args": []
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

你知道怎么设置吗?

go visual-studio-code delve

20
推荐指数
2
解决办法
3万
查看次数

无法再次停止 dlv debug --headless - 在 mac 上的 docker 容器中运行

你如何停止钻研无头调试器?

注意:我从 mac 上的 docker 容器运行它,并像这样安装:

go get -u github.com/derekparker/delve/cmd/dlv
Run Code Online (Sandbox Code Playgroud)

这里开始就可以了,但是您如何再次停止它。

dlv debug --headless --listen=:2345
Run Code Online (Sandbox Code Playgroud)

ctrl + c 等不起作用 - 有什么特别的技巧吗?

delve

10
推荐指数
1
解决办法
974
查看次数

以 root 身份运行 delve 时获取 vcs 状态时出错

我尝试sudo dlv debug在 Arch Linux 上运行,但不断收到以下错误:

error obtaining VCS status: exit status 128
    Use -buildvcs=false to disable VCS stamping.
exit status 1
Run Code Online (Sandbox Code Playgroud)

当我删除 .git 文件夹时,sudo dlv debug它按预期运行,所以我认为这可能是 git 的配置问题?!

git debugging go delve

10
推荐指数
1
解决办法
2万
查看次数

使用deve调试测试

我正在使用"go test -v "来运行一系列单元测试.我想用delve调试它们.当我尝试运行调试器时,出现"无法调试非主程序包"错误.那么,我如何使用delve调试器调试单元测试?

debugging go delve

9
推荐指数
1
解决办法
5287
查看次数

Golang delve,如何启动调试器并启动正在调试的应用程序?

我正在尝试设置一个可以远程连接的无头深度调试器。

我无法找到一种方法来启动调试服务器,而该服务器不会暂停我正在调试的应用程序。

我一直在使用,dlv attach --headless=true --listen=:2345 attach 32但这会暂停该过程。或者,如果这允许应用程序二进制文件运行,
我可以使用。dlv --headless=true --listen=:2345 exec app

不知道这个init文件能不能实现这样的功能?我找不到任何有关其实际情况的文档。

debugging go delve

9
推荐指数
1
解决办法
6277
查看次数

如何更新 Go 的 Delve 调试器?

如何更新 Go Delve 调试器?当我尝试设置 api 版本时收到以下错误:

unknown flag: --api-version

我的dlv外表已经过时了:

$dlv version
Delve Debugger
Version: 0.11.0-alpha
Build: 
Run Code Online (Sandbox Code Playgroud)

但我不知道如何升级它。我已经尝试过go get -u github.com/go-delve/delve/cmd/dlvgo get -u github.com/derekparker/delve/cmd/dlv,但都没有成功。我还尝试了以下建议make install

$ git clone https://github.com/go-delve/delve.git $GOPATH/src/github.com/go-delve/delve
$ cd $GOPATH/src/github.com/go-delve/delve
$ make install
Run Code Online (Sandbox Code Playgroud)

但这似乎没有效果:

$ dlv version
Delve Debugger
Version: 0.11.0-alpha
Build:
Run Code Online (Sandbox Code Playgroud)

我的 go 版本是go version go1.10.1 linux/amd64,我的操作系统详细信息如下:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 8.11 (jessie)
Release:    8.11
Codename: …
Run Code Online (Sandbox Code Playgroud)

go delve

9
推荐指数
2
解决办法
1万
查看次数

在 Visual Studio Code WSL 中调试 Go 代码

我有一个带有用于 Windows 的 Linux 子系统的 Visual Studio Code 环境,它正在编译和运行一个 Go 项目就好了。

现在我正在尝试按照此链接运行 delve 调试器:

https://github.com/Microsoft/vscode-go/wiki/Debugging-Go-code-using-VS-Code

但我无法让它运行,无论是远程还是本地。

在 launch.json 中尝试了所有类型的配置,但没有命中断点,也没有打印错误消息。

有没有人使用 WSL 在 VSCode 上调试运行?

go visual-studio-code delve

9
推荐指数
1
解决办法
3296
查看次数

为什么我的 Go 调试器不加载所有符号,导致调试器中缺少局部变量?

我已经建立了我的二进制,: go build -gcflags "$gc_flags" -o ./bin/grafana-server ./pkg/cmd/grafana-server,其中$gc_flags'-N -l'

当我./bin/grafana-server在调试器 (Goland) 中运行此文件并附加到它时,并未加载所有符号。此外,一些断点会显示以下消息:

/Users/.../file.go:186 没有代码

我想调试的代码如下:

在此处输入图片说明

添加到原始项目的部分是 lines 186-199。您可以看到执行已进入for _, ..循环(第 196 行),表明query有数据,并且我们能够使用它从数据库中query通过repo.Find(query). 但是,query在我的调试器中找不到:

在此处输入图片说明

所以我不确定此时发生了什么。不幸的是,我对 golang 真的很陌生;这让我很难取得任何进展。

debugging debug-symbols go delve goland

8
推荐指数
1
解决办法
1748
查看次数