将 fmt.Printf() 行添加到通过“go install ...”安装的库中

gue*_*tli 5 go

我安装了 go 包browser

现在该库无法像我预期的那样工作(问题),我想fmt.Printf()在包的源代码中添加一些行。

如果我通过 goland 修改文件,我会收到一条警告,指出无法创建备份文件:

无法保存/home/guettli/go/pkg/mod/github.com/pkg/browser@v0.0.0-20210911075715-681adbf594b8/browser.go。无法创建备份文件 (browser.go~)。该文件保持不变。

如何在 go/goland 中向第三方代码添加打印语句?

背景:我来自 Python,多年来,如果我需要调试某些东西,我就会向第三方库添加打印语句。

Vol*_*ker 6

如何在 [Go] [...] 中向第三方代码添加打印语句?

你不能。

至少不是以任何简单的方式。您必须 git (!) 克隆该模块以及replacego.mod 中的模块以指向您的克隆。更改克隆。


小智 5

扩展@Volker的答案,您将需要有该模块的本地副本才能修改和使用它。以下是步骤

  1. 克隆模块存储库git clone https://github.com/pkg/browser.git
  2. 如果需要,请结帐到分支/标签git checkout branch_name
  3. go.mod模块的文件中,添加以下行
replace (
    github.com/pkg/browser => /path/where/cloned/browser
)
Run Code Online (Sandbox Code Playgroud)
  1. 现在您应该能够修改克隆存储browser库中的代码并在您的模块中使用它