Среда: Mac/Mojave и GDB 8.2.1 (через доморощенный).
Я работал по инструкции https://forward-in-code.blogspot.com/2018/11/mojave-vs-gdb.html, т.е.:
последний GDB через brew, который решает проблему формата исполняемого файла
подписать GDB с новыми правами
Кроме того, я также изменил SIP, чтобы разрешить отладку (в терминале Recovery OS: csrutil enable --without debug).
Однако я все еще не могу заставить gdb работать:
(gdb) file main
Reading symbols from main...done.
(gdb) run
Starting program: /Users/joubertold/code/Rhodus/obj/debug/main
[New Thread 0x1a03 of process 5082]
[New Thread 0x2803 of process 5082]
During startup program terminated with signal ?, Unknown signal.
(gdb)
Интересно, что lldb у меня работает на том же бинарнике:
(lldb) file main
Current executable set to 'main' (x86_64).
(lldb) run
Process 5086 launched: '/Users/joubertold/code/Rhodus/obj/debug/main' (x86_64)
Rhodus
1 is ONE
1 is between 1 and 10
1 is between 1 and 10
1 is between 1 and 10
1 is between 1 and 10
1 is between 1 and 10
1 is between 1 and 10
1 is between 1 and 10
1 is between 1 and 10
1 is beyond
1 is beyond
1 is beyond
Process 5086 exited with status = 0 (0x00000000)
(lldb)
Есть предположения?
Этот совет помог, @SimonWright. Я получил немного более поздний архив исходников gdb по адресу sourceware.org/pub/gdb/snapshots/current/…. Мне также пришлось отредактировать darwin-nat.c, чтобы удалить 3 случая переменного затенения. Теперь я могу использовать gdb в GNAT Programming Studio. Спасибо!





Я заставил gdb работать над Мохаве:
а) получение последнего исходного архива gdb (на момент написания, ftp://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-8.2.50.20190212.tar.xz) — помимо прочего, он добавляет обработку для распознавания исполняемых файлов на Mac.
б) построить gdb. Я получил ошибки для затенения переменных в darwin-nat.c, поэтому я отредактировал файл и перестроил (diff https://gist.github.com/joubertnel/267ca0fff4eaad494cc19ec3ba7953ed).
c) выполните шаги в https://forward-in-code.blogspot.com/2018/11/mojave-vs-gdb.html
Вуаля.
Я тоже столкнулся с проблемами с darwin-nat.c. Я посмотрел на предупреждения и решил, что они не вредны, поэтому настроил --disable-werror.
Привет @Simon, какую именно командную строку ты использовал для настройки?
К сожалению, принятый ответ не работает для меня.
Для тех, кто находится в той же ситуации, что и я, я предлагаю вместо этого использовать Visual Studio Code или Xcode для отладки вашей программы C.
Возможно, вы захотите взглянуть на Эта проблема. Я не знаю, какую версию brew загрузил для вас, версия, которую я загрузил и на которую ссылаюсь в сообщении в блоге (
gdb --version), — это GNU gdb (GDB) 8.2.50.20190112-git.