Comment installer gdb (debugger) dans Mac OSX El Capitan?

comment installer gdb (debugger) dans Mac OSX El Capitan ? J'ai essayé d'installer gdb, mais a échoué plusieurs fois.

j'ai suivi cette URL: http://ntraft.com/installing-gdb-on-os-x-mavericks / , MAC ne permet pas D'installer MacPorts.

quelqu'un Pourrait-il m'aider à cet égard.

37
demandé sur Tauheed Khan Mohd 2015-10-16 07:48:45

8 réponses

il y a deux solutions au problème, et elles sont toutes les deux mentionnées dans d'autres réponses à cette question et à Comment faire fonctionner gdb en utilisant macports sous OSX 10.11 El Capitan? , mais pour clarifier une certaine confusion voici mon résumé (comme une réponse car il a obtenu un peu long pour un commentaire):

quelle alternative est la plus sûre je suppose se résume au choix entre 1) Les certificats auto-signés de confiance et 2) donner aux utilisateurs plus privilège.

Alternative 1: signer le binaire

si l'option de signature est utilisée, il n'est pas nécessaire de désactiver SIP pour ajouter l'option-p à taskgated .

cependant , notez qu'avec cette alternative, débogage est seulement autorisé pour les utilisateurs dans le _developer groupe .

utilisant codesign pour signer à l'aide d'un cert intitulé gdb-cert :

codesign -s gdb-cert /opt/local/bin/ggdb

(en utilisant le chemin Standard MacPorts, adoptez si nécessaire)

pour des recettes de signature de code détaillées (y compris la création de cert), voir : https://gcc.gnu.org/onlinedocs/gcc-4.8.1/gnat_ugn_unw/Codesigning-the-Debugger.html ou https://sourceware.org/gdb/wiki/BuildingOnDarwin

notez que vous besoin pour redémarrer l'application Porte-clés et le service taskgated pendant et après le processus (la manière la plus simple est de redémarrer).

variante 2: utiliser l'option legacy pour les tâches

selon la réponse de @user14241, désactiver SIP et ajouter l'option-p à taskgated est une option. Notez que si vous utilisez cette option, signer le binaire n'est pas nécessaire , et il court-circuite également la boîte de dialogue pour l'authentification en tant que membre du groupe Developer Tools ( _developer ).

après l'ajout de l'option-p (allow groups procmod and procview), vous devez aussi ajouter les utilisateurs qui devraient être autorisés à utiliser gdb au groupe procmod .

la recette est:

  1. redémarrer en mode récupération, ouvrir un terminal et exécuter csrutil disable

  2. redémarrez la machine et éditez /System/Library/LaunchDaemons/com.apple.taskgated.plist , en ajoutant le -p opion:

    <array>
        <string>/usr/libexec/taskgated</string>
        <string>-sp</string>
    </array>
    
  3. redémarrer en mode de récupération pour permettre SIP ( csrutil enable )

  4. redémarrer la machine et ajouter l'utilisateur USERNAME au groupe procmod :

    sudo dseditgroup -o edit -a USERNAME -t user procmod

    une alternative qui n'implique pas ajouter des utilisateurs aux groupes est à rendre l'exécutable setgid procmod , car cela fait également procmod l'identifiant de groupe efficace de tout utilisateur exécutant le binaire setgid (suggéré dans https://apple.stackexchange.com/a/112132 )

    sudo chgrp procmod /path/to/gdb
    sudo chmod g+s /path/to/gdb 
    
27
répondu drRobertz 2017-04-13 12:45:06

installer la première tire-lait:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

puis lancez ceci: brew install gdb

27
répondu Sankalp Singha 2016-04-13 18:48:09

cela ne répond pas nécessairement à la question mais si vous utilisez Mac OS X alors vous pouvez probablement utiliser lldb LLDB Homepage . Il est très similaire à gdb et fournit même un guide d'utilisation des commandes que vous utiliseriez sur gdb .

11
répondu 2016-03-01 03:22:11

voici un billet de blog qui l'explique très bien:

http://panks.me/posts/2013/11/install-gdb-on-os-x-mavericks-from-source /

Et la façon dont je le faire fonctionner:

  1. créer un certificat de signature codant via accès au porte-clés :

    1.1 À partir du Menu, sélectionnez Porte-Clés accès > Assistant de certificat > créer un Certificat...

    1.2 suivez l'assistant pour créer un certificat et nommez-le gdb.cert , le Type D'identité est auto signé Root , et le type de certificat est signature de Code et sélectionnez la commande par défaut.

    1.3 Cliquez plusieurs fois sur Continuer jusqu'à ce que vous arriviez au spécifiez un emplacement pour L'écran de certificat , puis définissez Porte-clés à système .

  2. Install gdb via Homebrew: brew install gdb

  3. redémarrage taskgated : sudo killall taskgated && exit

  4. rouvrir une fenêtre de Terminal et dactylographier sudo codesign -vfs gdb.cert /usr/local/bin/gdb

11
répondu ryenus 2017-09-02 09:11:43

sur mon Mac OS X El Capitan, j'utilise homebrew pour installer gdb:

brew install gdb

alors je suis l'instruction ici: https://sourceware.org/gdb/wiki/BuildingOnDarwin , dans la section 2.1. Méthode pour Mac OS X 10.5 (Leopard) et plus tard .

5
répondu Châu Hồng Lĩnh 2017-05-30 22:56:10

une fois que vous aurez installé la version macports de gdb , vous devrez désactiver SIP pour effectuer les modifications appropriées de /System/Library/LaunchDaemons/com.apple.taskgated.plist . Pour désactiver SIP, vous devez redémarrer en mode récupération et exécuter la commande suivante:

csrutil disable

puis redémarrez. Ensuite, vous devrez éditer la partie inférieure de com.apple.taskgated.plist comme ceci:

<array>
        <string>/usr/libexec/taskgated</string>
        <string>-sp</string>
</array>

, Alors vous devrez redémarrer pour que les modifications prennent effet. Alors vous devriez reenable SIP. La commande gdb pour l'installation de macports est en fait ggdb . Vous devez coder le signe ggdb en suivant les instructions ici:

https://gcc.gnu.org/onlinedocs/gcc-4.8.1/gnat_ugn_unw/Codesigning-the-Debugger.html

la seule façon dont j'ai pu faire fonctionner la signature de code est d'exécuter ggdb avec sudo . Bonne chance!

2
répondu user14241 2015-11-18 03:45:34

il semble que MacPorts pourrait être installé à El Capitan en ce moment: https://www.macports.org/install.php Alors vous pouvez probablement installer gdb par lien que vous avez mentionné.

0
répondu m.aibin 2015-10-16 04:52:39

vient de passer quelques jours à essayer de faire marcher ça sur High Sierra 10.13.1. La version gdb 8.1 de homebrew ne fonctionnerait pas, peu importe ce que j'ai essayé. A fini par installer gdb 8.0.1 via macports et cela a fonctionné miraculeusement (après avoir sauté à travers tous les autres cerceaux nécessaires liés à la co-conception etc).

un problème supplémentaire est que dans Eclipse vous obtiendrez des citations simples étrangères autour de tous vos arguments de programme qui peuvent être travaillés autour de fournir les arguments à l'intérieur .gdbinit à la place.

0
répondu llevar 2018-02-27 16:22:03