Pourquoi ne puis-je pas utiliser l'utilitaire de programmation GNU Debugger (GDB) sur Mac en tant qu'utilisateur standard?

8

Je ne peux utiliser le débogueur GNU (GDB) que lorsque je suis authentifié en tant qu'administrateur.

Lorsque je lance GDB en tant qu'utilisateur standard, après avoir donné la commande GDB "exécuter", une boîte de dialogue me demande le nom d'utilisateur et le mot de passe d'un utilisateur dans le groupe "Developer Tools".

Le problème est que je suis déjà dans le groupe "Developer Tools", donc je ne sais pas quoi faire d'autre ...

Je vous remercie!

Plate-forme:

  • MacOS X 10.7.1
  • GCC 4.2.1
  • i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Basé sur Apple Inc. build 5658) (LLVM build 2335.15.00)
  • GNU gdb 6.3.50-20050815 (version Apple gdb-1705)
  • Ce GDB a été configuré comme "x86_64-apple-darwin".
Pietro
la source

Réponses:

7

Êtes-vous certain de faire partie du groupe des outils de développement?

Essayez d'exécuter cette commande

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

Cela devrait ajouter votre compte d'utilisateur au groupe.

Lemonginger
la source
Maintenant, je sais que les groupes affichés dans l'interface graphique ne sont pas les vrais ;-) Merci!
Pietro
2

J'ai eu le même problème, il ne fonctionnerait pas, sauf en tant que root? / Sudo, ce qui signifiait que je ne pouvais pas l'utiliser avec eclipse, ce qui signifiait que j'avais perdu 5 heures de travail pour déboguer le problème. Voici mes résultats.

Tout d'abord, gdb a généré un message d'erreur similaire lors de son exécution sous mon compte utilisateur.

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

J'ai essayé de le signer en créant un certificat à l'aide du trousseau, puis en marquant le certificat comme approuvé pour la signature de code. Ensuite, appliquez-le à l'exécutable à partir de la ligne de commande.

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

Ça n'a pas marché

J'ai essayé d'ajouter mon compte d'utilisateur aux groupes procview, procmod et _developer (probablement non sécurisé, mais je ne déploie mon code que sur github et n'utilise pas la machine pour un usage personnel, donc je peux vivre avec ça)

sudo dscl . append /Groups/procmod GroupMembership bryanhunt

sudo dscl . append /Groups/procview GroupMembership bryanhunt

sudo dscl . append /Groups/_developer GroupMembership bryanhunt

Ça n'a pas marché

Enfin, j'ai essayé de changer le groupe de l'exécutable et le groupe de bits collants.

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

Ça a marché

picsolve_binarytemple
la source
peu importe ce que je fais, j'obtiens l'erreur ci-dessous. Tout ce que vous pourriez savoir pour m'aider. 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