ОБНОВИТЬ:
Я проверил его и рад сообщить, что Версия: 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)
почти все хорошо.