Warum kann ich das Programmierdienstprogramm GNU Debugger (GDB) auf einem Mac nicht als Standardbenutzer verwenden?

8

Ich kann den GNU Debugger (GDB) nur verwenden, wenn ich als Administrator authentifiziert bin .

Wenn ich GDB als Standardbenutzer starte, fordert mich ein Dialogfeld nach Eingabe des GDB-Befehls "Ausführen" zur Eingabe eines Benutzernamens und eines Kennworts eines Benutzers in der Gruppe "Entwicklertools" auf.

Das Problem ist, dass ich bereits in der Gruppe "Entwicklertools" bin und daher nicht weiß, was ich sonst tun soll ...

Vielen Dank!

Plattform:

  • MacOS X 10.7.1
  • GCC 4.2.1
  • i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Basierend auf Apple Inc. Build 5658) (LLVM Build 2335.15.00)
  • GNU gdb 6.3.50-20050815 (Apple-Version gdb-1705)
  • Diese GDB wurde als "x86_64-apple-darwin" konfiguriert.
Pietro
quelle

Antworten:

7

Sind Sie sicher, dass Sie zur Gruppe der Entwicklertools gehören?

Versuchen Sie, diesen Befehl auszuführen

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

Das sollte Ihr Benutzerkonto zur Gruppe hinzufügen.

Lemonginger
quelle
Jetzt weiß ich, dass die in der GUI angezeigten Gruppen nicht die echten sind ;-) Danke!
Pietro
2

Ich hatte das gleiche Problem, es würde nicht ausgeführt, außer als root? / Sudo, was bedeutete, dass ich es nicht mit Eclipse verwenden konnte, was bedeutete, dass ich 5 Arbeitsstunden beim Debuggen des Problems verloren hatte. Hier sind meine Ergebnisse.

Erstens hat gdb eine ähnliche Fehlermeldung generiert, wenn sie unter meinem Benutzerkonto ausgeführt wurde.

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

Ich habe versucht, den Code zu signieren, indem ich ein Zertifikat mit dem Schlüsselbund erstellt und das Zertifikat dann als vertrauenswürdig für die Codesignatur markiert habe. Wenden Sie es dann über die Befehlszeile auf die ausführbare Datei an.

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

Das hat nicht funktioniert

Ich habe versucht, mein Benutzerkonto zu den Gruppen procview, procmod und _developer hinzuzufügen (wahrscheinlich unsicher, aber ich stelle meinen Code nur für github bereit und verwende den Computer nicht für den persönlichen Gebrauch, damit ich damit leben kann).

sudo dscl . append /Groups/procmod GroupMembership bryanhunt

sudo dscl . append /Groups/procview GroupMembership bryanhunt

sudo dscl . append /Groups/_developer GroupMembership bryanhunt

Das hat nicht funktioniert

Schließlich habe ich versucht, die Gruppe und das Gruppen-Sticky-Bit der ausführbaren Datei zu ändern.

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

Das hat funktioniert

picsolve_binarytemple
quelle
Egal was ich mache, ich bekomme den folgenden Fehler. Alles, was Sie wissen könnten, um mir zu helfen. 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