@yordanmail

Golang как скомпилировать приложение без отладочной информации?

Добрый день, компилирую приложение с помощью такой команды:
go build -ldflags '-s -w' main_app.go

Если в процессе работы программы появится паника, получаю сообщение, например:
panic: runtime error: index out of range

goroutine 1 [running]:
main.main()
/emanuel/go/test_app/main_app.go:64 +0x324
exit status 2


Где хранится эта информация в бинарнике? Можно ли ее убрать с бинарника?
  • Вопрос задан
  • 664 просмотра
Пригласить эксперта
Ответы на вопрос 2
Если нужно убрать настоящие пути до файлов, чтобы не светилось /emanuel/go, то это можно сделать с помощью переменной окружения GOROOT_FINAL

Если нужно чтобы пользователю при ошибке в консоли не показывался трейс, то можно перехватывать паники с помощью defer и recover.

Полностью убрать информацию о стектрейсе из бинарка на данный момент невозможно, насколько знаю.
Ответ написан
Комментировать
@IllusionTurtle
вы можете скрыть\заменить абсолютные пути при ошибках ит.д. -gcflags="-trimpath=$GOPATH/src"
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы