Почему я не могу использовать утилиту программирования GNU Debugger (GDB) на Mac как обычный пользователь?


8

Я могу использовать отладчик GNU (GDB) только после проверки подлинности в качестве администратора.

Когда я запускаю GDB как обычный пользователь, после того, как я дал команду GDB «выполнить», диалоговое окно запрашивает у меня имя пользователя и пароль пользователя в группе «Инструменты разработчика».

Проблема в том, что я уже нахожусь в группе "Инструменты разработчика", поэтому я не знаю, что еще делать ...

Спасибо!

Платформа:

  • MacOS X 10.7.1
  • GCC 4.2.1
  • i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (на основе Apple Inc., сборка 5658) (сборка LLVM 2335.15.00)
  • GNU GDB 6.3.50-20050815 (версия Apple, GDB-1705)
  • Этот GDB был настроен как "x86_64-apple-darwin".

Ответы:


7

Вы уверены, что находитесь в группе Инструменты разработчика?

Попробуйте запустить эту команду

sudo dscl . append /Groups/_developer GroupMembership <username>

Это должно добавить вашу учетную запись пользователя в группу.


Теперь я знаю, что группы, показанные в GUI, не являются реальными ;-) Спасибо!
Пьетро

2

У меня была такая же проблема, она не запускалась, кроме как root? / Sudo, что означало, что я не мог использовать ее с eclipse, что означало, что я потерял 5 рабочих часов, отлаживая проблему. Вот мои результаты.

Во-первых, GDB генерировал похожее сообщение об ошибке при выполнении под моей учетной записью.

Unable to find Mach task port for process-id 4667: (os/kern) failure (0x5).
 (please check gdb is codesigned - see taskgated(8))

Я попытался подписать код, создав сертификат с помощью связки ключей, а затем пометив сертификат как доверенный для подписи кода. Затем применить его к исполняемому файлу из командной строки.

codesign -s gdb-cert /usr/local/Cellar/gdb/7.6.1/bin/gdb
codesign --verify --verbose  /usr/local/Cellar/gdb/7.6.1/bin/gdb
codesign -d --verbose  /usr/local/Cellar/gdb/7.6.1/bin/gdb

Это не сработало

Я попытался добавить свою учетную запись пользователя в группы procview, procmod и _developer (возможно, небезопасно, но я только развертываю свой код на github и не использую машину для личного использования, поэтому я могу жить с этим)

sudo dscl . append /Groups/procmod GroupMembership bryanhunt

sudo dscl . append /Groups/procview GroupMembership bryanhunt

sudo dscl . append /Groups/_developer GroupMembership bryanhunt

Это не сработало

Наконец, я попытался изменить группу исполняемого файла и закрепить группу.

sudo chgrp procmod /usr/local/Cellar/gdb/7.6.1/bin/gdb
sudo chmod g+s /usr/local/Cellar/gdb/7.6.1/bin/gdb

Это сработало


независимо от того, что я делаю, я получаю ошибку ниже. Все, что вы можете знать, чтобы помочь мне. Starting program: /Users/nakulchawla/POPL/proj5/a.out Unable to find Mach task port for process-id 571: (os/kern) failure (0x5). (please check gdb is codesigned - see taskgated(8))
thenakulchawla
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.