macOS Mojave: Como obter o código de ativação para ativar a depuração (gdb
Existem muitos tópicos que abordam os problemas de códigos de código no macOS, a partir da 10.5. O que eu queria alcançar é fazer o Geany trabalhar com o GNU Debugger (gdb). O depurador é encontrado no geany, mas a mensagem de erro (já conhecida) é:
Error message from debugger back end:
Unable to find Mach task port for process-id 39847: (os/kern) failure (0x5).\n (please check gdb is codesigned - see taskgated(8))
Unable to find Mach task port for process-id 39847: (os/kern) failure (0x5).\n (please check gdb is codesigned - see taskgated(8))
Geralmente existem muitas restrições a considerar que (devem) permitir o uso de gdb, por exemplo O gdb 8.0.1 pode funcionar, o gdb 8.1 não funcionará -Veja aqu, também confirmado no Lazarus Wiki.
0) Criei meu certificado "gdb-cert" de acordo com as etapas cobertas por várias instruções. ExemploAqu
1) Eu segui as etapas de codificação do arquivo executável gdb (fonte: gdb e Stackoverflow), que é no meu caso em
/ usr / local / Adega / gdb / 8.0.1 / bin / gdb
(observe novamente, há problemas com o 8.1 para alguns idiomas - pascal também). Se você deseja garantir que o código seja assinado, vá para
$ codesign -vvvv gdb
no respectivo diretório. O meu é
2) Verifique se o certificado foi realmente atribuído para ser elegível para assinatura de código - é o meu caso. Também é confiável - o que é necessário.
3) Tentei também a outra maneira de executar o gdb descrito acima, onde o arquivo foi editado (observe que o SIP deve ser desativado na recuperação primeiro !!!!)Modificações só funcionam secsrutil disable
é usado na recuperação.
sudo nano /System/Library/LaunchDaemons/com.apple.taskgated.plist
Devastating coisa, após esta etapa, nenhum editor de código seria iniciado novamente (!!), até que essa alteração seja desfeita (Geany, Atom, editor de texto, MS Visual Studio - todos quebrados após a inserção de -sp no arquivo)
4) Em alguns tópicos, descobri que a depuração só funcionará se o comandocsrutil enable --withouth
debug é usado na recuperação. Isso não mudou nada.
Eventualmente acabei tendo:
um certificado para assinar o códigoum arquivo executável gdb assinado de acordo com minha declaração acimaum arquivo com.apple.taskgated.plist não tendo preenchido o atributo -sp da cadeiaEu apreciaria muito se alguém pudesse confirmar esse comportamento, uma solução para isso ainda mais