远程服务器给出 panic nil 异常。这是堆栈跟踪
panic: runtime error: invalid memory address or nil pointer dereference │ │ [signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0xfb1fc4] │ │ goroutine 486 [running]: │ │ dockerhub.(*DockerHub).Authorize**(0x0, 0xc000964f00, 0x23, 0xc00151fc90, 0xd) **
这是函数
func (r *mydockerhub) Authorize(registry string) error { return r.call.Authorize(registry) // This the place line number showing panic }
在我的本地,当我尝试使用 panic(errors.New("customized error")) 它给了我
panic({0x8facb40, 0xc0000137a0}) /usr/local/go/src/runtime/panic.go:890 +0x267 dockerhub.(*mydockerhub).Authorize**(0xc002ad6050, {0xc0029b06a8, 0x14})**
我点击了这个堆栈跟踪调试链接https://www.ardanlabs.com/blog/2015/01/stack-traces-in-go.html据我了解mydockerhub是一个参数,如果是字符串,则为两个其他参数。所以无论我在本地尝试过什么,都会向我显示 Authorize*(0xc002ad6050, {0xc0029b06a8, 0x14})** 这是正确的。 但是在远程服务器中它显示了 6 个参数。这让我很惊讶。为什么它向我显示 6 个十六进制参数。