Попытка использовать gdb (и cgdb) для отладки программ в go (golang), но, похоже, есть проблемы

Я знаю, что команда go не будет поддерживать GDB очень хорошо. Тем не менее, кажется, что иногда это работает, поэтому прежде чем я сдаюсь, я хочу посмотреть, работает ли он в этой программе.

Я пытался использовать его для отладки моей программы в Mac OS X Mavericks, и я, к сожалению, не смог проверить свою программу во время выполнения. Я использую Mac OS X Mavericks 10.9.4 и моя версия Go является версия Go Go1.2.2 Darwin/ AMD64.

Вот что произойдет, если я сделаю gdb my_binary на моем двоичном компьютере, а затем попробуйте запустить его:

Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from hydra...
warning: `/var/folders/00/0sdwh000h01000cxqpysvccm0035qk/T/go-build728316890/crypto/x509/_obj/root_darwin.cgo2.o': can't open to read symbols: No such file or directory.

warning: `/var/folders/00/0sdwh000h01000cxqpysvccm0035qk/T/go-build728316890/net/_obj/cgo_unix.cgo2.o': can't open to read symbols: No such file or directory.

warning: `/var/folders/00/0sdwh000h01000cxqpysvccm0035qk/T/go-build728316890/runtime/cgo/_obj/gcc_amd64.o': can't open to read symbols: No such file or directory.

warning: `/var/folders/00/0sdwh000h01000cxqpysvccm0035qk/T/go-build728316890/runtime/cgo/_obj/gcc_darwin_amd64.o': can't open to read symbols: No such file or directory.

warning: `/var/folders/00/0sdwh000h01000cxqpysvccm0035qk/T/go-build728316890/runtime/cgo/_obj/gcc_setenv.o': can't open to read symbols: No such file or directory.

warning: `/var/folders/00/0sdwh000h01000cxqpysvccm0035qk/T/go-build728316890/runtime/cgo/_obj/gcc_util.o': can't open to read symbols: No such file or directory.

warning: `/var/folders/m9/3tx5tfkx02z9jkwdz0lkg85cj4gbmq/T/go-build297950324/github.com/alecthomas/gozmq/_obj/zmq.cgo2.o': can't open to read symbols: No such file or directory.

warning: `/var/folders/m9/3tx5tfkx02z9jkwdz0lkg85cj4gbmq/T/go-build297950324/github.com/alecthomas/gozmq/_obj/zmq_3_x.cgo2.o': can't open to read symbols: No such file or directory.
(no debugging symbols found)...done.

Строка, на которой я хочу остановиться, является последней:

(no debugging symbols found)...done.

Я неправильно скомпилировал свою программу go? Есть ли флаги, которые могли бы сделать эту работу?

Я только сделал go build my_program но кажется, что некоторые флаги или что-то могло заставить это работать?

Я был в состоянии заставить GDB работать на очень простых программах, но на этой гораздо большей программе он не работает и выдает вышеупомянутую ошибку. Кто-то знает, почему это может быть? Кто-нибудь смог заставить его работать для больших программ с большим количеством библиотек, пакетов и тому подобного?

Я понимаю, что это может не сработать, но я хотел попробовать, спросив сообщество.

(Я хотел бы также использовать другой отладчик, если таковой имеется).

(У меня также была такая же проблема с cgdb).

(Я также открыт для использования любого другого отладчика, который позволяет мне видеть значения переменных, точек останова и основных функций, подобных этому, может быть, также изучить go-рутины было бы здорово. Для Mac, конечно)

1 ответ

GDB сообщает вам, что там нет файлов и каталогов, в которых он может найти символы отладки. Из названий это временные рабочие каталоги Go.

Есть опция командной строки -work в go build это описывается следующим образом:

распечатайте имя временного рабочего каталога и не удаляйте его при выходе.

так что это может работать, за счет некоторой периодической ручной очистки.

Другие вопросы по тегам