Por que não consigo usar o utilitário de programação GNU Debugger (GDB) no Mac como usuário padrão?

8

Só posso usar o GNU Debugger (GDB) quando autenticado como administrador.

Quando inicio o GDB como usuário padrão, depois de dar o comando GDB "executar", uma caixa de diálogo solicita um nome de usuário e senha de um usuário no grupo "Ferramentas de Desenvolvedor".

O problema é que eu já estou no grupo "Ferramentas do desenvolvedor", então não sei mais o que fazer ...

Obrigado!

Plataforma:

  • MacOS X 10.7.1
  • GCC 4.2.1
  • i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Baseado na Apple Inc. build 5658) (LLVM build 2335.15.00)
  • GNU gdb 6.3.50-20050815 (versão Apple gdb-1705)
  • Este GDB foi configurado como "x86_64-apple-darwin".
Pietro
fonte

Respostas:

7

Você tem certeza de que está no grupo Ferramentas do desenvolvedor?

Tente executar este comando

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

Isso deve adicionar sua conta de usuário ao grupo.

lemonginger
fonte
Agora eu sei que os grupos mostrados na GUI não são os reais ;-) Obrigado!
Pietro
2

Eu tinha o mesmo problema, ele não funcionava, exceto como root? / Sudo, o que significava que não podia usá-lo com o eclipse, o que significava que perdi 5 horas de trabalho depurando o problema. Aqui estão os meus resultados.

Em primeiro lugar, o gdb gerou uma mensagem de erro semelhante quando executado na minha conta de usuário.

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

Tentei assinar o código criando um certificado usando o Keychain e, em seguida, marcando o certificado como confiável para a assinatura do código. Em seguida, aplicando-o ao executável na linha de comando.

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

Isso não funcionou

Tentei adicionar minha conta de usuário aos grupos procview, procmod e _developer (provavelmente inseguro, mas implanto apenas meu código no github e não uso a máquina para uso pessoal, para que eu possa viver com isso)

sudo dscl . append /Groups/procmod GroupMembership bryanhunt

sudo dscl . append /Groups/procview GroupMembership bryanhunt

sudo dscl . append /Groups/_developer GroupMembership bryanhunt

Isso não funcionou

Por fim, tentei alterar o grupo do executável e o bloco do grupo.

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

Isso funcionou

picsolve_binarytemple
fonte
não importa o que eu faça, recebo o erro abaixo. Qualquer coisa que você possa saber para me ajudar. 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