Je viens de commencer à coder en C, et a dirigé le maquillage de quelqu'un d'autre avec le compilateur C par défaut défini sur GCC. Je suis sur Mac OSX 10.8 Mountain Lion et je pense que j'ai installé le compilateur avec "Outils de ligne de commande Xcode". Après avoir exécuté "make" sur la ligne de commande, je reçois ces fichiers .dsyms ennuyeux pour chaque programme. J'ai lu que ce sont des fichiers de débogage, mais sont-ils vraiment nécessaires? Y a-t-il un moyen de les empêcher d'être généré à partir de la ligne de commande? p>
3 Réponses :
Ils ne sont nécessaires que si vous devez interpréter des emplacements dans des traces de pile dans un rapport d'accident. P>
Ils sont également utiles pour avoir une référence source dans GDB
Le drapeau -g code> sur GCC générera des symboles de débogage. Vous pouvez simplement supprimer cet indicateur de
CFLAGS code>. P>
Oui, les fichiers DSYM sont nécessaires. Plus précisément, ils contiennent les tables de symboles incluses dans les bâtiments Xcode Débogu; Release Builds Placez les symboles dans ce fichier séparé. Si vous avez besoin d'analyser une trace de pile à partir d'une version de sortie, vous aurez besoin de cela. Et assurez-vous de ne pas perdre les fichiers, car vous faites la construction, même si la source est absolument identique, ne produira pas de fichier dsym utilisable. Chaque construction reçoit une UUID et qui change avec chaque construction, même si la source n'a pas changé. (Je suppose que cela inclut un horodatage ou même un nombre aléatoire.) P>
Si vous jetez les fichiers DSYM, alors si vous trouvez soudainement votre application qui vous bloque, vous pouvez être désolé. P>
Vérifiez que
dsymutil code> Etre exécuté dans le
Makefile code> et commentez-le.
GCC CODE> ON OS X ne devrait pas générer de ceux-ci. L'outil qui fait appelé
dsymutil code>. Aussi: Non, ils ne sont pas tenus de gérer le binaire et ne sont que des fins de débogage.
Il n'y a pas de dsymutil dans le maquillage mais les drapeaux suivants sont exécutés: CFLAGS = -M32 -g -O0 -STD = gnu99 -wall