Название в значительной степени подводит итог. Я пробую Go, и мне очень не хватает возможности устанавливать точки останова и входить / выходить / выходить столько, сколько я хочу в интерактивной среде. Я знаю, что могу использовать GDB для отладки Go, но это довольно неприятно по сравнению с использованием IDE, которая может подключаться к GDB для установки точек останова.
Я попытался найти его и смог найти только плагины или небольшие IDE с подсветкой синтаксиса, но без отладки.
Ответы:
Обновление : Лично, пока GDB работает, я не поклонник его использования в Go, и это заставит вас пролить кровь. Ознакомьтесь с некоторыми другими ответами на предмет хороших альтернатив.
Да, конечно :)
В Go есть отладчик (GDB)
Вот официальное руководство по его использованию.
Если вам нужна «графическая отладка» (то есть установка точек останова в редакторе), некоторые IDE позволяют это делать (с GDB в фоновом режиме).
В частности, Eclipse, LiteIDE и Zeus позволяют вам устанавливать точки останова и выполнять отладку из вашей среды кодирования (источника) . Вот видео о том, как это сделать с Zeus .
источник
godebug
который был довольно хорош в прошлый раз.Поддержка GDB для go имеет множество проблем, которые не будут исправлены командой go.
Для получения дополнительной информации прочтите сообщение Роба Пайка :
Они ищут другие варианты отладки, но пока у них нет конкретных планов. Документация устарела, и
runtime-gdb.py
сценарий, поставляемый с go 1.2, не работает для GDB, который был скомпилирован с поддержкой python3 (например, текущий Ubuntu).источник
Обновление 2017: упомянутый ниже проект godebug теперь официально заменен на derekparker / delve .
Оригинальный ответ:
Теперь (март 2015 г.) у вас есть другой подход, основанный на инструментировании кода.
mailgun / godebug :
Обновление июнь 2015 г .:
Хотя он может быть не таким интерактивным, как могли бы надеяться «некоторые», он все же ценится (и имеет функцию «шаг вперед» ).
См. «В Go есть отладчик - и это круто ! » (Cloudfare)
ifdef GODEBUG GOPATH="${PWD}" go install github.com/mailgun/godebug GOPATH="${PWD}" ./bin/godebug build -instrument "${GODEBUG}" -o bin/rrdns rrdns
источник
ОБНОВИТЬ:
Я проверил его и рад сообщить, что Версия: 2016.1.3, Сборка: 145.1617.8, Дата выпуска: 5 июня 2016 г. работает с Delve! Вы можете скачать его здесь: https://www.jetbrains.com/idea/download/ . Также следуйте инструкциям по установке Delve здесь: https://github.com/derekparker/delve/tree/master/Documentation/installation
Это немного ненадежно. Сразу после того, как я получил приглашение входа в OSX, интерактивная отладка начала работать. Иногда мне нужно отладить простую программу .go, чтобы запустить ее. Но он действительно работает и является лучшим интерактивным средством отладки для Go, которое я когда-либо видел.
ОРИГИНАЛЬНЫЙ ЗАПИСЬ:
Существует ли интерактивный отладчик golang? Да.
Существует ли какой-нибудь интерактивный отладчик golang, который стоит использовать? Нет.
Настроить GDB на Mac утомительно, но выполнимо.
Однако как только вы начнете его использовать, вы скоро поймете, что просто зря потратили время на его установку.
Вы даже можете настроить IntelliJ для его использования.
Единственная ценность, которую, по-видимому, предоставляют IntelliJ, LiteIDE, CGDB и т. Д., Заключается в том, что вы можете быстрее убедиться, что поддержка отладки GDB для Go крайне слабая.
Вы можете использовать его для пошагового выполнения некоторого кода Go, но попробуйте распечатать значение чего-либо, кроме очень простых значений переменных, и вы потратите свое время на поиски достойного отладчика.
Вот пример того, что происходит, когда вы пытаетесь распечатать значение строковой структуры данных map [string] с помощью CGDB:
(gdb) print params $1 = (github.com/go-martini/martini.Params) 0x15582 <runtime.reentersyscall+450>
... что совершенно бесполезно.
Далее попробуйте это:
(gdb) print params["UserID"]
... и вы получите сообщение "Ошибка автобуса".
Спуск ( https://github.com/derekparker/delve ) выглядит многообещающим, поскольку он написан на Go, но вы управляете им с помощью консоли, а не через IDE.
Я бы с радостью заплатил за корпоративную версию IntelliJ (или любую другую IDE), которая хорошо справлялась с поддержкой интерактивной отладки в Go.
На данный момент
fmt.Printf("%v", variable)
почти все хорошо.источник
РЕДАКТИРОВАТЬ
Оригинальный ответ (ноя 2015 г.)
для тех, кто ищет последние новости на конец ноября 2015 года:
копаться
https://github.com/derekparker/delve
и следуйте инструкциям по сборке / настройке:
https://github.com/derekparker/delve/wiki/Building
Получите последнюю версию IntelliJ (15) или PyCharm (5)
https://www.jetbrains.com/idea/download/
и установите плагин go-lang в выбранной IDE:
Pycharm -> Preference -> plugins -> search for go current version is Version: 0.10.749 IntelliJ -> Preference -> plugins -> search for go current version is Version: 0.10.749
Определите пакет или файл для запуска.
После завершения настройки значки воспроизведения и отладки должны стать активными, и вы можете установить точку останова, часы и т. Д. Как обычно.
Ура
источник
Я с удовольствием использую CGDB, небольшую оболочку для проклятия GDB.
источник
IDE DEBUG ON GO ВОЗМОЖНА (СНОВА), ДЕЙСТВИТЕЛЬНО РАБОТАЕТ !
Delve довольно хорошо работает в Mac OS X и поддерживается плагином IntelliJ IDEA Go Lang .
Я тестировал это на Mac OSX, IntelliJ Idea 14, Go 1.5.1, Delve 0.5
Мне пришлось пройти через обычные циклы создания самозаверяющего сертификата, добавления его в системное кольцо и т.д. (требуется для запуска отладчика в Mac OS X). В конце я установил проект GO внутри IntelliJ и получил вознаграждение за возвращение обычных функций отладчика IDE +: установка точек останова, проверка переменных, пошаговое выполнение.
Это лучше, чем выводить значения для отладки кода.
источник
Вариант первый - GDB https://golang.org/doc/gdb
Спускаться
Visual Studio Code с его плагином go (все еще использует delve).
Я лично использую вариант 3. Для этого вам потребуется установить delve .
В этом видео показана отладка в действии: https://youtu.be/uBjoTxosSys?t=16m11s (все видео очень интересно).
источник
Я очень доволен Gogland ( https://www.jetbrains.com/go/ ), который в основном представляет собой Intellij с поддержкой Go. У него есть рабочий отладчик, который становится лучше по мере его разработки. Я использую его с января 2017 года, и он был в основном стабильным для меня на MBP 2016 года.
источник