Существует множество тем, посвященных вопросам кодирования в macOS, начиная с 10.5.Я хотел добиться того, чтобы Geany работал с отладчиком GNU (gdb).Отладчик найден в geany, но (уже довольно известное) сообщение об ошибке:
Error message from debugger back end:
Unable to find Mach task port for process-id 39847: (os/kern) failure (0x5).\n (please check gdb is codesigned - see taskgated(8))
Unable to find Mach task port for process-id 39847: (os/kern) failure (0x5).\n (please check gdb is codesigned - see taskgated(8))
Как правило, существует множество ограничений, позволяющих считать, что (следует) разрешить использование gdb, например, gdb 8.0.1 может работать, gdb 8.1 не будет работать вообще - см. здесь , также подтверждено в Lazarus Wiki.
0) Я создал свой сертификат "gdb-cert" в соответствии с шагами, описанными в различных инструкциях.Пример здесь
1) Я выполнил шаги по кодированию подписи исполняемого файла GDB (источник: GDB и Stackoverflow ), который находится в моемcase под
/ usr / local / Cellar / gdb / 8.0.1 / bin / gdb
(обратите внимание, что в некоторых языках есть проблемы с 8.1 - pascalтоже).Если вы хотите убедиться, что код подписан, выберите
$ codesign -vvvv gdb
в соответствующем каталоге.У меня есть.
2) Убедитесь, что сертификат действительно был назначен, чтобы иметь право на подпись кода - это в моем случае.Он также является доверенным - что необходимо.
3) Я также попробовал другой способ запустить gdb, описанный выше, где файл был отредактирован (обратите внимание, что SIP должен быть отключен в процессе восстановления !!!!) Модификации работают, только если в восстановлении используется csrutil disable
.
sudo nano /System/Library/LaunchDaemons/com.apple.taskgated.plist
Разрушительная вещь, после этого шага редактор кода не запустится снова (!!), пока это изменение не будет отменено (Geany, Atom, текстовый редактор, MS Visual Studio - все сломано после вставки -sp в файл)
4) В некоторых темах я обнаружил, что отладка будет толькоработать, если при восстановлении используется команда csrutil enable --withouth
debug.Это ничего не изменило.
В итоге я получил:
сертификат для кодовой подписи файл gdb, который можно подписать согласно моему заявлениювыше файл com.apple.taskgated.plist, не заполнивший атрибут string -sp
Я был бы очень признателен, если бы кто-нибудь мог подтвердить это поведение, решение этого даже более:)