Я пытаюсь начать свой первый сеанс отладки с GoLand, но пока мне не везет. Попытка следовать этому руководству https://blog.jetbrains.com/go/2018/04/30/debugging-containerized-go-applications/
Моя версия GoLand - 2019.3.4, работает на MacOS Catalina
Учебное пособие состоит примерно из 2 частей, если я читаю правильно 1) запустить основной процесс 2) подключить отладчик как удаленный отладчик
Основное отличие в том, что я пытаюсь отладить программу командной строки, а не сервер - мой ввод: = попытка чтобы остановить завершение программы перед подключением отладчика
{code} fun c main () {fmt.Println ("вставить значение y здесь:") ) fmt.Println (input.Text)} {code}
Когда я запускаю основное docker изображение, я вижу это:
API server listening at: [::]:40000
insert y value here:
0x4abe40
Первая строка появляется сразу после запуска Docker конфигурация сервера. После этого я выбираю конфигурацию «Удаленная отладка» и нажимаю «Отладка» - кажется, что основной процесс освобождается в это время (я вижу напечатанную вторую и третью строки), но я никогда не достигаю точки останова.
У меня есть похожие результаты запуска процесса вне GoLand:
docker run --security-opt="apparmor=unconfined" -p 40000:40000 --cap-add=SYS_PTRACE image_name
Основной процесс находится на прослушивании сервера API по адресу: [::]: 40000. Как только сеанс GoLand «Удаленная отладка» пытается присоединиться, он печатает вторые 2 строки и завершает работу ... Но я никогда не вижу попадания в точки останова.
У кого-нибудь есть указатель на то, что может быть не так? Или альтернативный учебник? Я новичок в Go, но не в Docker / удаленной отладке.
Моя исходная программа находится здесь: https://github.com/yanakad/goland
build: docker build . -t goland
run: docker run --security-opt="apparmor=unconfined" -p 40000:40000 --cap-add=SYS_PTRACE goland
Удаленный go Конфигурация отладки установлена на localhost и порт 40000