Ошибки с кодовой подписью при использовании gdb на macos Mojave 10.14 - PullRequest
0 голосов
/ 04 мая 2019

У меня MacOS Mojave 10.14.
GNU gdb (GDB) 8.2.1

Я прочитал много сообщений на эту тему, но мне было интересно, если что-то изменилось в 2019 году, так как большинство статей старые.
От: Eclipse GDB MacOSX Mavericks

Я сделал:

Запустить приложение Access Keychain (/ Applications / Utilities / Keychain Access.app)
Открыть меню/ Доступ к цепочке для ключей / Помощник по сертификатам / Создание сертификата (TOP MENU BAR)

Выберите имя (в примере gdb-cert) 3.1 Установите для «Типа идентификации» значение «Самоподписанный корень» 3.2 Установите «Тип сертификата»в «Подписание кода» 3.3. Установите флажок «Разрешить переопределение по умолчанию». 3.4 Несколько раз нажмите «Продолжить», пока не откроется окно «Укажите местоположение для сертификата», затем установите для «Связки ключей» значение «Система». 3.6 Убедитесь, что у вас есть«gdb-cert» в вашей «Системе» (левое верхнее окно)

Выберите «Get Info», дважды нажав на только что созданный сертификат (gdb-cert),

Откройте «Trust»"пункт, и установите" Подписание кода всегда доверять "Cпотерять приложение Keychain Access

Перезапустить приложение «Taskgated» (kill -9) и, наконец,
codesign -s gdb-cert /usr/local/bin/gdb

Но я все еще получаю ошибку:

lee @ l7: ~ / eclipse-workspace-cdt / my-proj / build $ ./my-proj
Hello world
(exe отлично работает)
lee @ l7: ~ / eclipse-workspace-cdt / my-proj / build $ gdb my-proj
GNU gdb (GDB) 8.2.1 Авторское право (C) 2018 Free Software Foundation, Inc. Лицензия GPLv3 +: GNU GPL версии 3 или более поздней http://gnu.org/licenses/gpl.html Это бесплатное программное обеспечение: вы можете изменять и распространять его.НЕ ПРЕДОСТАВЛЯЕТСЯ ГАРАНТИИ, если это разрешено законом.Введите «показать копирование» и «показать гарантию» для деталей.Эта GDB была настроена как "x86_64-apple-darwin18.2.0".Напечатайте "show configuration" для деталей конфигурации.Инструкции по сообщению об ошибках см. По адресу: http://www.gnu.org/software/gdb/bugs/. См. Руководство по GDB и другие ресурсы по документации в Интернете по адресу: http://www.gnu.org/software/gdb/documentation/.

Для получения справки введите «help».Введите «apropos word» для поиска команд, связанных с «word» ... Чтение символов из my-proj ... done.

(gdb) run

Запуск программы: / Users / lefla / eclipse-workspace-cdt / my-proj / build / my-proj Невозможно найти порт задачи Mach для идентификатора процесса 12808: (os / kern) ошибка (0x5).(проверьте, что gdb имеет кодовое обозначение - см. taskgated (8))

(gdb) run

Запуск программы: / Users / lefla / eclipse-workspace-cdt / my-proj / build / my-proj Невозможно найти порт задачи Маха для идентификатора процесса 12819: (os / kern) ошибка (0x5).(пожалуйста, проверьте, что gdb имеет кодовое обозначение - см. taskgated (8))

Если GDB подписан, он должен иметь возможность ветвить другие процессы.Достаточно ли убийства "заданием" (в некоторых статьях упоминается перезагрузка машины)?В чем проблема?

______ РЕДАКТИРОВАТЬ 1
после
https://sourceware.org/gdb/wiki/PermissionsDarwin
привело меня дальше.Затем я столкнулся с этой проблемой:
GDB завершен с сигналом?, Неизвестный сигнал
, поэтому я создал .gdbinit, и теперь я получаю:

(GDB)запустите
Запуск программы: / Users / lefla / eclipse-workspace-cdt / my-proj / build / my-proj
[Новая тема 0x1a03 процесса 14140]
[Новая тема 0x2603 процесса 14140]
Во время запуска программы завершается с сигналом SIGTRAP, Trap / breakpoint trap.

______ EDIT 2
при использовании gdb 8.0.1, я получил:

my-proj ": не в исполняемом формате: формат файла не распознан

, похоже, относится к:
https://sourceware.org/bugzilla/show_bug.cgi?id=23746
Но GDB 8.3 только что выпущен и, наконец, работает с GDB 8.3

1 Ответ

1 голос
/ 05 мая 2019

для кодирования GDB потребуются соответствующие права в 10.14+: https://sourceware.org/gdb/wiki/PermissionsDarwin

Изменить: Теперь вы, вероятно, дублируете эту ошибку, которая требует понижения gdb gdb-doesnt-work-on-macos-high-sierra-10-13-3 … в ответе есть инструкции.

Редактировать 2: похоже, что обновление до GDB 8.3 теперь должно работать для вас.

...