Как настроить отладку в GoLand?

Я пробую GoLand и слышу, что отладчик предположительно отличный, но я не могу найти ни одного документация, объясняющая, как его настроить (GoLand находится на стадии предварительного просмотра, так что это не удивительно). Мой вариант использования: я пишу REST API, к которому я отправляю запросы с помощью curl. Не могли бы кто-нибудь рассказать мне, шаг за шагом, как начать работу с отладчиком?

[изменить 1] (перемещено из комментария) Когда я нажимаю «Выполнить / Отладка» (или «Выполнить / Выполнить»), отображается окно с просьбой отредактировать конфигурации. Мне предоставляется выбор из нескольких типов конфигураций, я пытаюсь выбрать «Перейти к приложению», но кнопка «Отладка» никогда не отображается серым цветом, и я не могу сделать ее доступной для нажатия. Я новичок в GoLand, возможно, мне не хватает чего-то очевидного, но я не могу найти отсутствующие настройки.

[править 2] Оказывается, моя рабочая область не соответствовала спецификациям Go: мой код не находился в каталоге с именем src. Теперь, когда это так, я могу нажать Run / Debug, и GoLand, похоже, делает правильные вещи, за исключением того, что он не останавливается на точках останова и не ведет себя как отладчик, мой код просто запускается.

[править 3] Попробовал еще раз, и все работает. Вроде, как бы, что-то вроде. Я понятия не имею, почему это работает сейчас, хотя раньше этого не было, и я ничего не менял. Теперь точки останова работают на одних строках, а не на других. Или отладчик останавливается в точке останова, но я бесконечно жду загрузки списка переменных. В конце концов, это предварительный просмотр ...

[править 4] Только сегодня меня уведомили, что доступна новая версия GoLand. Я обновился, и отладка теперь у меня работает хорошо.


person Zoyd    schedule 11.01.2017    source источник
comment
Отладчик выглядит так, как будто он просто работает. Какая у вас проблема?   -  person JimB    schedule 11.01.2017
comment
@zoyd Мне очень жаль, что у вас проблемы с отладкой. Не могли бы вы рассказать подробнее о своем проекте / настройке? Какая у вас ОС и какая версия Go? И если проект с открытым исходным кодом, то ссылка на него была бы отличной. Также было бы полезно иметь способ воспроизвести это. Также Gogland использует Delve в качестве отладочного бэкенда, и в зависимости от вашей версии Go что-то может быть сломано или нет.   -  person dlsniper    schedule 12.01.2017
comment
Настройка структуры Go - хорошая информация для новичков в Gogland.   -  person Steve Butler    schedule 24.01.2017
comment
Я могу работать, но пока не могу отлаживать. Я получил это сообщение: Ошибка при запуске сборки hello.go и запуск: не удается найти бегун для сборки hello.go и запустить   -  person Vincent    schedule 26.01.2017
comment
@Vincent Я предлагаю вам задать новый вопрос по вашей конкретной проблеме.   -  person Zoyd    schedule 30.01.2017
comment
Я заметил такое же поведение. В первый раз, когда я отлаживал приложение, точки останова не работали, но затем, после запуска его 2 или 3 раза, казалось, что все работает нормально. Используя OSX 10.10.5, перейдите на 1.7.4, Gogland 1.0 EAP, проект не является открытым исходным кодом.   -  person stephenbez    schedule 31.01.2017
comment
Эй, вы можете поделиться своим кодом или своим репо? У вас установлен дельвет?   -  person Ricardo    schedule 24.02.2017
comment
Спасибо за проявленный интерес, но опять же, теперь это работает. Возможно, это была временная проблема в той (теперь уже устаревшей) версии Гогланда.   -  person Zoyd    schedule 24.02.2017
comment
Только что обновился до версии от 9 июня: отладчик в Гогланде просто шутка. Я понимаю, что это ранняя версия, но, серьезно, ребята, JB ... даже Hello Word не работает.   -  person cvigo    schedule 12.06.2017


Ответы (6)


GoLand не активирует действие отладки (хотя запуск доступен), если ваш код не находится внутри src. Об этом нет предупреждений, поэтому решить эту проблему может быть действительно сложно.

Кроме того, в зависимости от структуры вашего проекта возможно, что отладка все еще не работает. В этом случае может помочь удалить все конфигурации запуска и создать новую. Существует отчет об ошибке об этом поведении.

PS: Хотя OP упоминает первую часть в редактировании вопроса, но думаю, что это стоит упомянуть в ответе.

person Koraktor    schedule 11.03.2017
comment
Это одно из самых глупых и бессмысленных требований, которые я видел за долгое время. Почему IDE (или сам язык) навязывает мне конкретное имя папки? Спасибо за ответ, но меня расстраивает то, что теперь я буду владельцем всего нашего серверного кода, если / когда я проверю изменение имени папки ... - person iamtheddrman; 28.03.2017
comment
Это все еще EAP, поэтому, возможно, уже есть отчет об ошибке. Но что еще хуже, кажется, что каталог ’src’ не всегда работает. Кажется, есть еще одно требование, но мне еще предстоит выяснить, какое именно. - person Koraktor; 28.03.2017
comment
После дополнительных исследований выяснилось, что на самом деле именно язык требует, чтобы исходный код находился в папке src. Технически и без него может обойтись, но придется перепрыгивать через дополнительные обручи. Учитывая, что реального управления пакетами нет, кажется нелепым дизайнерское решение иметь весь код, с которым вы когда-либо работали, в одной иерархии папок. Работа над несколькими ветвями одного и того же репозитория становится практически невозможной, и это реальность для каждой компании, в которой я когда-либо работал. - person iamtheddrman; 29.03.2017

Я столкнулся с той же проблемой, и я решил, используя конфигурацию «Go Application» (в окне Run / Debug Configurations) вместо конфигурации «Go Single File».

Итак, заходим в правый верхний угол Гогланда и «Редактируем конфигурации».

«Открытие

Затем добавьте новую конфигурацию, используя профиль «Go Application».

Окно

После сохранения вы сможете отлаживать свой код. о /

Легкий способ включить эту конфигурацию - использовать метод @ user1793301, щелкнуть правой кнопкой мыши файл, который нужно запустить, и выбрать «Отладка 'go run .go'».


ВОЗМОЖНОЕ ОБЪЯСНЕНИЕ

ВНИМАНИЕ: я не искал более подробной информации об этом.

Факт: конфигурация Go Application создает двоичный исполняемый файл перед его запуском.

Факт: глядя на вывод консоли (внутри Goglang), я заметил, что IDE использует DLV как средство отладки.

Факт: я нашел dlv debug в Документация DLV и, кажется, компилирует и отлаживает код.

Гипотеза: ребята из Jetbrains ее не реализовали. Или, по крайней мере, ЕЩЕ.

person Jota Santos    schedule 08.08.2017
comment
Я использую GoLand 2020.2.3, и Go Application не подходит для шаблона :( - person ECH; 18.11.2020

Ситуация в Голанде изменилась с тех пор, как @Jamillo Santos добавил свой ответ.

Начнем с того, что больше нет "Go Application".

Самый простой способ - найти файл, содержащий функцию main (). На него должен быть указывающий маленький треугольник, как на прилагаемом снимке экрана:  объявление основной функции

При нажатии на маленький зеленый треугольник открывается меню с параметрами «Выполнить / Отладка». Каждый создаст go build конфигурацию.

Вы можете редактировать эту go build конфигурацию и добавлять программные аргументы для вашего приложения. Например, если ваша программа имеет аргумент командной строки --arg=value, вы можете добавить его следующим образом: введите описание изображения здесь

person Elad Tabak    schedule 19.12.2018
comment
Получение скомпилированного двоичного файла не может быть выполнено - person MrR; 14.09.2020

В версии 2019.1.1 больше нет Go Application. Вместо этого используйте Go Build. Здесь я отлаживаю один файл сценария, но если у вас есть серверное приложение или что-то еще, просто укажите на основной файл приложения:

введите здесь описание изображения

Обратите внимание, что в поле Файлы вы должны указать фактический путь к файлу. Вы можете разместить больше файлов (если хотите иметь больше начальных точек), разделив их вертикальной чертой |. Для каждого файла, который нужно отлаживать, необходимо указать полный путь.

Опять же, если вы отлаживаете серверное приложение или что-то еще, у которого есть одна начальная точка, вам нужен только файл запуска, указанный в config. :)

person Milkncookiez    schedule 13.05.2019

У меня была именно такая проблема.

Удалена и воссоздана конфигурация запуска отладки. Отладка тогда работала отлично.

person Larsern    schedule 02.04.2017

Я щелкаю правой кнопкой мыши по проекту (main.go внутри) и выбираю «Отладка ...», и он работает.

person user1793301    schedule 03.02.2017
comment
Это не объясняет, почему Debug… может быть недоступен. - person Koraktor; 11.03.2017
comment
Я унаследовал проект с main.go в верхней папке, а не с src. Была такая же проблема, и щелкнул правой кнопкой мыши, как это работает. - person Ed Pike; 08.06.2017