猿问

如何使用 GDB 正确调试由 `go test -c` 生成的二进制文件?

该go test命令支持-c标志,描述如下:


-c  Compile the test binary to pkg.test but do not run it.

    (Where pkg is the last element of the package's import path.)

据我所知,生成这样的二进制文件是使用 GDB 以交互方式运行它的方式。但是,由于测试二进制文件是通过将源文件和测试文件临时组合在某个 /tmp/ 目录中来创建的,因此当我list在 gdb 中运行时会发生以下情况:


Loading Go Runtime support.

(gdb) list

42      github.com/<username>/<project>/_test/_testmain.go: No such file or directory.

这意味着我不能像以前那样愉快地检查 GDB 中的 Go 源代码。我知道可以通过将-work标志传递给go test命令来强制保留临时目录,但是它仍然是一个巨大的麻烦,因为没有在该目录中创建二进制文件等等。我想知道是否有人找到了解决此问题的干净方法。


牛魔王的故事
浏览 338回答 3
3回答
随时随地看视频慕课网APP

相关分类

Go
我要回答