Чому я не можу використовувати утиліту програмування налагоджувача GNU (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>

Це має додати ваш обліковий запис користувача до групи.


Тепер я знаю, що групи, показані в графічному інтерфейсі, не справжні ;-) Дякую!
П'єтро

2

У мене була така ж проблема, вона не запускалася, за винятком root? / Sudo, що означало, що я не можу використовувати її із затемненням, а це означає, що я втратив 5 робочих годин налагодження проблеми. Ось мої результати.

По-перше, gdb генерував подібне повідомлення про помилку, коли виконується під моїм обліковим записом користувача.

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

Я спробував підписати його кодом, створивши сертифікат за допомогою Keychain, а потім позначив сертифікат як довірений для підписання коду. Потім застосуйте його до виконуваного файлу з командного рядка.

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.