Dlaczego nie mogę używać narzędzia programistycznego GNU Debugger (GDB) na komputerze Mac jako zwykły użytkownik?

8

Mogę używać GNU Debugger (GDB) tylko po uwierzytelnieniu jako administrator.

Kiedy uruchamiam GDB jako standardowy użytkownik, po wydaniu polecenia GDB „uruchom”, pojawia się okno dialogowe z prośbą o podanie nazwy użytkownika i hasła użytkownika w grupie „Narzędzi dla programistów”.

Problem polega na tym, że jestem już w grupie „Narzędzi dla programistów”, więc nie wiem, co jeszcze zrobić ...

Dziękuję Ci!

Platforma:

  • MacOS X 10.7.1
  • GCC 4.2.1
  • i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (na podstawie kompilacji Apple Inc. 5658) (kompilacja LLVM 2335.15.00)
  • GNU gdb 6.3.50-20050815 (wersja Apple gdb-1705)
  • Ten GDB został skonfigurowany jako „x86_64-apple-darwin”.
Pietro
źródło

Odpowiedzi:

7

Czy jesteś pewien, że należysz do grupy Narzędzi dla programistów?

Spróbuj uruchomić to polecenie

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

To powinno dodać twoje konto użytkownika do grupy.

lemonginger
źródło
Teraz wiem, że grupy przedstawione w GUI nie są prawdziwe ;-) Dziękuję!
Pietro,
2

Miałem ten sam problem, nie uruchamiałby się, z wyjątkiem roota / sudo, co oznaczało, że nie mogłem go używać z zaćmieniem, co oznacza, że ​​straciłem 5 godzin pracy na debugowanie problemu. Oto moje wyniki.

Po pierwsze, gdb wygenerował podobny komunikat o błędzie podczas wykonywania na moim koncie użytkownika.

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

Próbowałem podpisać kod, tworząc certyfikat za pomocą pęku kluczy, a następnie oznaczając certyfikat jako zaufany do podpisywania kodu. Następnie zastosuj go do pliku wykonywalnego z wiersza poleceń.

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

To nie zadziałało

Próbowałem dodać moje konto użytkownika do grup procview, procmod i _developer (prawdopodobnie niepewne, ale wdrażam mój kod tylko w github i nie używam komputera do użytku osobistego, więc mogę z tym żyć)

sudo dscl . append /Groups/procmod GroupMembership bryanhunt

sudo dscl . append /Groups/procview GroupMembership bryanhunt

sudo dscl . append /Groups/_developer GroupMembership bryanhunt

To nie zadziałało

W końcu próbowałem zmienić grupę pliku wykonywalnego i lepką grupę.

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

To się udało

picsolve_binarytemple
źródło
bez względu na to, co robię, pojawia się poniższy błąd. Wszystko, co możesz wiedzieć, aby mi pomóc. 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