Newmo
@Newmo

Почему крашится программа в linux?

В Windows программа работает отлично, но когда поднимаю её в Ubuntu, она падает с ошибкой:
panic: runtime error: invalid memory address or nil pointer dereference [recovered]
        panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x18 pc=0x4c92ed]

goroutine 1 [running]:
io/ioutil.readAll.func1(0xc0000ff9c0)
        /usr/local/go/src/io/ioutil/ioutil.go:30 +0x101
panic(0x6b2e40, 0x946f90)
        /usr/local/go/src/runtime/panic.go:969 +0x166
bytes.(*Buffer).ReadFrom(0xc0000ff948, 0x0, 0x0, 0x1, 0x1, 0x672f16)
        /usr/local/go/src/bytes/buffer.go:204 +0x7d
io/ioutil.readAll(0x0, 0x0, 0x200, 0x0, 0x0, 0x0, 0x0, 0x0)
        /usr/local/go/src/io/ioutil/ioutil.go:36 +0xe3
io/ioutil.ReadAll(...)
        /usr/local/go/src/io/ioutil/ioutil.go:45
main.main()
        /tmp/main.go:113 +0x6ba
exit status 2


Вот сам код:
112    res, _ := p.Exec(js)
113		output, err := ioutil.ReadAll(res)
114		//fmt.Println(string(output))
115			if err != nil {
116				log.Panic(err)
117			}
  • Вопрос задан
  • 130 просмотров
Решения вопроса 1
EvgenyMamonov
@EvgenyMamonov
Senior software developer, system architect
обработайте ошибку Exec, скорее всего там ошибка, а res в этом случае nil, по этому и panic
res, err := p.Exec(js)
if err != nil {
   log.Panic(err)
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы