Perché non posso usare l'utilità di programmazione GNU Debugger (GDB) su Mac come utente standard?


8

Posso usare GNU Debugger (GDB) solo se autenticato come amministratore.

Quando avvio GDB come utente standard, dopo aver dato il comando GDB "Esegui", una finestra di dialogo mi richiede un nome utente e una password di un utente nel gruppo "Strumenti di sviluppo".

Il problema è che sono già nel gruppo "Strumenti per sviluppatori", quindi non so cos'altro fare ...

Grazie!

Piattaforma:

  • MacOS X 10.7.1
  • CCG 4.2.1
  • i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Basato su Apple Inc. build 5658) (LLVM build 2335.15.00)
  • GNU gdb 6.3.50-20050815 (versione Apple gdb-1705)
  • Questo GDB è stato configurato come "x86_64-apple-darwin".

Risposte:


7

Sei sicuro di essere nel gruppo Strumenti per gli sviluppatori?

Prova a eseguire questo comando

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

Ciò dovrebbe aggiungere il tuo account utente al gruppo.


Ora so che i gruppi mostrati nella GUI non sono quelli reali ;-) Grazie!
Pietro,

2

Ho avuto lo stesso problema, non funzionava, tranne come root? / Sudo, il che significava che non potevo usarlo con eclipse, il che significava che avevo perso 5 ore lavorative per il debug del problema. Ecco i miei risultati

Innanzitutto, gdb ha generato un messaggio di errore simile quando eseguito con il mio account utente.

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

Ho provato a firmare il codice creando un certificato utilizzando Keychain, quindi contrassegnando il certificato come attendibile per la firma del codice. Quindi applicandolo all'eseguibile dalla riga di 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

Non ha funzionato

Ho provato ad aggiungere il mio account utente ai gruppi procview, procmod e _developer (probabilmente non sicuro, ma distribuisco il mio codice solo su github e non uso la macchina per uso personale, quindi posso conviverci)

sudo dscl . append /Groups/procmod GroupMembership bryanhunt

sudo dscl . append /Groups/procview GroupMembership bryanhunt

sudo dscl . append /Groups/_developer GroupMembership bryanhunt

Non ha funzionato

Alla fine, ho provato a cambiare il gruppo dell'eseguibile e il gruppo appiccicoso.

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

Ha funzionato


non importa quello che faccio, viene visualizzato l'errore seguente. Qualunque cosa che potresti sapere per aiutarmi. 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,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.