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

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

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

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

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

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

Ответы

Ответ 1

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

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

PS: хотя ОП упоминает первую часть в редактировании вопроса, но, по-моему, стоит упомянуть в ответе.

Ответ 2

Я столкнулся с этой же проблемой, и решил ее, используя конфигурацию "Перейти к приложению" (в окне "Конфигурация запуска/отладки") вместо конфигурации "Перейти к одному файлу".

Итак, перейдите в верхний правый угол Gogland и "Редактируйте конфигурации".

Opening the Run/Debug Configurations

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

Run/Debug Configurations window

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

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


ВОЗМОЖНЫЕ ПОЯСНЕНИЯ

ВНИМАНИЕ: я не смотрел больше подробностей об этом.

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

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

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

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

Ответ 3

У меня была эта точная проблема.

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

Ответ 4

В Голанде все изменилось, так как @Jamillo Santos добавил свой ответ.

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

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

Когда вы нажимаете на маленький зеленый треугольник, вы получаете меню с опциями Run/Debug. Каждый создаст конфигурацию go build.

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

Ответ 5

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

enter image description here

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

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

Ответ 6

выключи своего агента, который сильнее всего.

Ответ 8

вы можете изменить имя файла go на "main.go", где у него есть основная функция. Это может быть ошибка.