2015-10-23 8 views
3

Это произошло с How to install gdb (debugger) in Mac OSX El Capitan?.Как получить gdb для работы с использованием macports под OSX 10.11 El Capitan?

У меня есть macports, работающие под элитным капитаном, без проблем, и установили порт gdb, но я не могу заставить кодовое слово работать. Кажется, все сработало. Сертификат существует, и установлен параметр «Всегда доверять». Бинарные показывает:

$ codesign -d -v -v /opt/local/bin/ggdb 
Executable=/opt/local/bin/ggdb 
Identifier=org.gnu.gdb 
Format=Mach-O thin (x86_64) 
CodeDirectory v=20100 size=25320 flags=0x0(none) hashes=1261+2 location=embedded 
Signature size=1392 
Authority=gdb-cert 
Signed Time=23 Oct 2015, 07:56:53 
Info.plist entries=4 
TeamIdentifier=not set 
Sealed Resources=none 
Internal requirements count=1 size=88 

, но я получаю

(gdb) r 
Starting program: /Users/sal/Katiss/ecodriving 
Unable to find Mach task port for process-id 39278: (os/kern) failure (0x5). 
(please check gdb is codesigned - see taskgated(8)) 

когда я пытаюсь начать отладку что-то.

Любые идеи?

ответ

7

Я только что решил эту проблему, используя следующую команду.

sudo dseditgroup -o edit -a yourusername -t user procmod

который добавляет группировать procmod.

Это только потому, что только пользователи procmod могут использовать функцию task_for_pid, и вы можете обнаружить, что собственная группа /opt/local/bin/ggdb является procmod.

+0

Спасибо. Это решает. –

+0

Это не решает это для меня. Вам нужно перезагрузить или перезапустить сеанс? – chqrlie

+0

Существует два отдельных варианта: для членов группы procmod, которым разрешено запускать пользовательский gdb, параметр -p должен быть добавлен в 'taskgated'. Другой вариант - подписать двоичный файл и добавить пользователей в группу '_developer'. См. Мое резюме на http://stackoverflow.com/a/34221969/4402721 – drRobertz