gpt4 book ai didi

go - exec.Command 没有注册来自 Go 自己的 pprof 工具的错误

转载 作者:数据小太阳 更新时间:2023-10-29 03:06:55 24 4
gpt4 key购买 nike

这是我的代码:

cmd := exec.Command("go", "tool", "pprof", "-dot", "-lines", "http://google.com")
out, err := cmd.Output()
if err != nil {
panic(err)
}
println(string(out))

当我在控制台中运行完全相同的命令时,我看到:

$ go tool pprof -dot -lines http://google.com 
Fetching profile from http://google.com/profilez
Please wait... (30s)
server response: 404 Not Found

但是,我的 go 程序没有注册这是一个错误。奇怪的是,变量 out 打印为空字符串,而 err 为 nil。这是怎么回事?

澄清一下,我正在分析 http://google.com故意制造错误。我通常会分析一个真正的 Go 应用程序。

最佳答案

正文

Fetching profile from http://google.com/profilez
Please wait... (30s)
server response: 404 Not Found

写入标准错误。您的程序捕获空的标准输出。考虑打电话:

out, err := cmd.CombinedOutput()

获取标准输出和标准错误。

cmd.Output()cmd.CombinedOutput() 返回 err == nil 因为命令以状态零退出。也许应该提出一个问题,要求命令以非零状态退出。

关于go - exec.Command 没有注册来自 Go 自己的 pprof 工具的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31174943/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com