Go打印cmd.Process.Pid报错

本文讲述使用Golang打印进程PID时程序崩溃的问题,报错为无效内存地址或空指针引用。代码单元测试通过,但集成到系统就崩溃。最终通过单独启用新协程的方法解决,虽不清楚原因,但记录下来以便后续回顾思考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

 

问题

解决


问题

今天使用Golang打印进程PID,程序居然崩了,报错信息如下:

2020/11/27 16:21:15 http: panic serving [::1]:57413: runtime error: invalid memory address or nil pointer dereference
goroutine 72 [running]:
net/http.(*conn).serve.func1(0xc0017228c0)
    /usr/local/Cellar/go/1.15.4/libexec/src/net/http/server.go:1801 +0x147
panic(0x450f460, 0x48ee120)
    /usr/local/Cellar/go/1.15.4/libexec/src/runtime/panic.go:975 +0x47a
github.com/Monibuca/plugin-record.(*Encoder).SaveVideo(0xc0000100c0, 0x45c77d5, 0x40, 0xc000024ae0, 0x11, 0x45b16dd, 0x15, 0x0, 0x0, 0x0, ...)
    /Users/lz/job/ms/boliving/plugins/plugin-record/ffmpeg.go:260 +0x187
github.com/Monibuca/plugin-record.SaveMp4(0xc00138e7b0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0)
    /Users/lz/job/ms/boliving/plugins/plugin-record/mp4.go:54 +0x30d
github.com/Monibuca/plugin-record.run.func2(0x4650580, 0xc0004b00e0, 0xc001cba100)
    /Users/lz/job/ms/boliving/plugins/plugin-record/main.go:92 +0xa2d
net/http.HandlerFunc.ServeHTTP(0x45d2200, 0x4650580, 0xc0004b00e0, 0xc001cba100)
    /usr/local/Cellar/go/1.15.4/libexec/src/net/http/server.go:2042 +0x44
net/http.(*ServeMux).ServeHTTP(0x48fd700, 0x4650580, 0xc0004b00e0, 0xc001cba100)
    /usr/local/Cellar/go/1.15.4/libexec/src/net/http/server.go:2417 +0x1ad
net/http.serverHandler.ServeHTTP(0xc0004b0000, 0x4650580, 0xc0004b00e0, 0xc001cba100)
    /usr/local/Cellar/go/1.15.4/libexec/src/net/http/server.go:2843 +0xa3
net/http.(*conn).serve(0xc0017228c0, 0x4651b00, 0xc0014220c0)
    /usr/local/Cellar/go/1.15.4/libexec/src/net/http/server.go:1925 +0x8ad
created by net/http.(*Server).Serve
    /usr/local/Cellar/go/1.15.4/libexec/src/net/http/server.go:2969 +0x36c

解决

代码单元测试也是通过的,为什么集成到系统里就崩溃了呢?

后来尝试了很多别的方法,最后通过单独启用一个新协程方法就解决了。至今不明白为啥,但是解决方法有了。

先记录一下,方便以后回顾思考。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Data-Mining

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值