GBD dla OS X nie działa – problem z certyfikatami

Podczas aktualizacji systemu z OS X Lion do Mavericks lub Yosemite napotkałem problem podczas debugowania w środowisku Eclipse C/C++. Pierwsza kwestia dotyczyła tego, że po aktualizacji nie miałem już GDB w systemie a po jego instalacji pojawił się problem z certyfikatami, np. komunikat: „Unable to find Mach task port for process” . Poniżej przedstawiam krok po kroku rozwiązanie owego problemu.

Poniżej przedstawiam komunikat jaki otrzymałem podczas próby debugowania w środowisku Eclipse C/C++ dla OS X:

Error in final launch sequence
Failed to execute MI command:
-exec-run
Error message from debugger back end:
Unable to find Mach task port for process-id 3316: (os/kern) failure (0x5).\n (please check gdb is codesigned - see taskgated(8))
Unable to find Mach task port for process-id 3316: (os/kern) failure (0x5).\n (please check gdb is codesigned - see taskgated(8))

Instalacja GDB

Tutaj wykorzystamy MacPorts. ( Uwaga: po aktualizacji systemu, należy dokonać reinstalacji MacPorts ).
Wydajemy polecenie w terminalu:

sudo port install gdb

Samo GDB będzie znajdowało się w lokalizacji:

/opt/local/bin/ggdb

Jak widać nazwa została zmieniona z gdb na ggdb

Tworzymy link symboliczny:

sudo ln -s /opt/local/bin/ggdb /opt/local/bin/gdb

Tworzenie certyfikatu dla GDB

Uruchamiamy program Keychain Access i tworzymy nowy certyfikat wybierając w pasku menu:

Keychain Access | Certificate Assistant | Create a Certificate...

Wpisujemy nazwę certyfikatu: gbt-cert i zmieniamy Certificate Type na Code Signing następnie klikamy przycisk Continue – przechodzimy do kolejnych opcji i klikamy na Continue tak długo aż dojdziemy do opcji Specify a Location For The Certificate.

certyfikaty

keychain

Po utworzeniu certyfikatu, przechodzimy do listy z certyfikatami w programie Keychain Access ( zakładka Certificates ) i klikamy na niego prawym klawiszem myszy wybierając opcję Get Info.
Klikamy na strzałkę obok napisu Trust i zmieniamy typ Code Signing na Always Trust

keychain

always-trust

Podpisywanie GDB

Teraz musimy zrestartować komputer. Uruchamiamy konsolę i wpisujemy komendę w celu podpisania GDB naszym nowo utworzonym certyfikatem:

sudo codesign -f -s gdb-cert /opt/local/bin/ggdb

Po tej operacji GDB nie powinien już zgłaszać żadnych kłopotów z brakiem certyfikatu.

Dodaj komentarz