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.
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
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.