Ошибки GDB в macOS Mojave - PullRequest
       87

Ошибки GDB в macOS Mojave

0 голосов
/ 17 февраля 2019

Среда: Mac / Mojave и GDB 8.2.1 (через homebrew).

Я работал с инструкциями https://forward -in-code.blogspot.com / 2018/11 / mojave-vs-gdb.html т.е.:

  • последний GDB через brew, который решает проблему с исполняемым форматом

  • подписать GDB с новыми правами

Кроме того, я также изменил SIP, чтобы разрешить отладку (в терминале 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) 

Есть мысли?

1 Ответ

0 голосов
/ 18 февраля 2019

Я заставил GDB работать с Mojave следующим образом:

a) получить последнюю версию исходного архива GDB (на момент написания ftp: //sourceware.org/pub/gdb/snapshots/current/gdb-weekly-8.2.50.20190212.tar.xz ) - помимо прочего, добавлена ​​обработка для распознавания исполняемых файлов на Mac.

b) сборка gdb.Я получил ошибки для теневого копирования переменных в darwin-nat.c, поэтому я отредактировал файл и перестроил (diff https://gist.github.com/joubertnel/267ca0fff4eaad494cc19ec3ba7953ed).

c), выполнив шаги в https://forward -in-code.blogspot.com /2018/11 / mojave-vs-gdb.html

Вуаля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...