@vadimuar

Почему в GoLang panic: runtime error?

Нашел на гите telegram CLI для своих нужд. Но при отправке сообщения в группу выбивает ошибку(в личку с юзером все ок):
Вот эту
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x8 pc=0x1207506]

goroutine 1 [running]:
main.(*TelegramCLI).RunCommand(0xc0000b20a0, 0xc0000a0fa0, 0x1, 0xc0000a0fe0)
/Users/admin/Downloads/telegramgo-master/main.go:474 +0x286
main.(*TelegramCLI).Run(0xc0000b20a0, 0x12a0d90, 0xc00007a3c0)
/Users/admin/Downloads/telegramgo-master/main.go:213 +0x343
main.main()
/Users/admin/Downloads/telegramgo-master/main.go:539 +0x546
exit status 2

Попытался найти причину, но так и не смог.
Ссылка на сам код: https://github.com/shelomentsevd/telegramgo
  • Вопрос задан
  • 127 просмотров
Пригласить эксперта
Ответы на вопрос 1
@grinat
Потому что похоже тут null приходит https://github.com/shelomentsevd/telegramgo/blob/m... а этот ответ он из сторонней либы приходит https://github.com/shelomentsevd/mtproto/blob/mast...
Сделай там fmt.println(update) и посмотри что там вообще приходит. Если сообщение отправляется, то можешь просто закомментить cli.parseUpdate(*update)
Но вообще там косяк, вот так нужно:
update, err := cli.mtproto.MessagesSendMessage(false, false, false, true, mtproto.TL_inputPeerChat{Chat_id: int32(id)}, 0, args[1], rand.Int63(), mtproto.TL_null{}, nil)
if err != nil {
	return err
}
cli.parseUpdate(*update)
Ответ написан
Ваш ответ на вопрос

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

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