问题标签 [go-toolchain]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1586 浏览

go - 使用“go list”如何仅列出二进制文件中使用的 Go 模块?

我想列出在最终可执行文件(而不是其他依赖项)中编译的模块(及其版本)。

我可以这样做:

但是我怎么能做到这一点go list(它有一个方便的 JSON 输出)?

我试过这个:

但它列出了许多仅在测试套件中使用的传递依赖项。我不知道如何过滤掉这些依赖项。

这是一个查看问题的示例项目(可在 The Go Playground 上找到):

main.go

main_test.go

go.mod

0 投票
1 回答
154 浏览

go - 如何使用 go/analysis 找到 Ident 的声明?

我使用 go/analysis 创建自己的静态分析工具。我仍然不知道如何从 ast.Ident 中找到 def 信息。

这是我的测试数据

还有我自己的分析仪

我需要直接从use:xxx中找到 def info def: xxx ,但是在 pass.TypesInfo 中找不到有用的信息

0 投票
1 回答
359 浏览

go - 如何在golang ast遍历中从子节点检索父节点?

这是测试文件

还有我的 ast 遍历代码

我发现我必须像这样从上到下旅行。找到AssignStmt,然​​后得到AssignStmt->Lhs

但是在某些情况下,我需要先找到 ast.Ident(name) ,然后再查找其父项是否为 AssignStmt。

我不确定我是否可以从下到上。

0 投票
1 回答
63 浏览

go - 如何确定在测试用例期间导入的文件树?

当我在 Go 中运行测试时,有什么方法可以直接或间接获取代码导入的文件列表?例如,这可以帮助我在调试失败的测试时排除来自代码库某些部分的更改。

或者,使用 Git,我们能否找出在给定测试中执行的文件的最低共同祖先 git 树节点是什么?

上下文:我正在为我的测试套件研究自动片状检测,并且我希望能够了解每个测试的依赖关系树,以便更好地检测片状测试。

例如,如果代码TestX版本失败x,并且稍后在同一代码库中的一些根本不使用的文件TestX被更改,然后TestX通过,我希望能够检测到这是一个不稳定的测试,即使运行测试套件的整体代码库已经改变。

0 投票
0 回答
86 浏览

go - 是否可以使用 gcc/clang 链接器链接从 Go 工具链生成的目标文件?

Go 编译器构建的可执行文件在目标环境中不兼容,因为加载器希望程序部分按特定顺序排列。

结果,我试图编译 Go 源代码go tool compile来生成.o文件,我想使用gcc/clang链接器选项而不是链接go tool link

go build 生成的目标文件是否兼容与gcc/clang工具链链接?

0 投票
2 回答
98 浏览

go - 在 Go 构建中使用自定义链接器脚本

是否可以使用自定义链接器脚本(.ldscript),因为go build我的目标环境不支持从命令生成的 Go 可执行文件,因为它期望这些部分的顺序不同?

我检查了go tool link-extld 选项,但如果我是正确的,这需要链接器路径而不是脚本。