J'ai téléchargé la source LibC à partir de opensource.apple.com, mais comme il fait partie d'une bibliothèque monolithique /usr/lib/libSystem.B.dylib, devrais-je reconstruire l'ensemble? J'ai un programme en ligne de commande BSD, porté à partir de Linux. Je veux pouvoir définir des points d'arrêt dans les fonctions de LibC et passer à travers. J'essaie de me rapprocher de ce qui semble être de la corruption de tas dans mon programme (ce qui ne se produit pas sous Linux - je l'ai déjà ramené sous Linux et y lancer memcheck.)Sur Mac OS X, comment obtenir une version de débogage de System/LibC pour le débogage au niveau de la source?
2
A
Répondre
0
Avez-vous regardé le Kernel Debug Kit d'Apple (http://developer.apple.com/sdk/)? Je sais qu'il contient des symboles de noyau, mais je ne suis pas sûr que libc fasse partie du SDK.
0
Vous pouvez créer Valgrind vous-même - soit en utilisant la dernière version publiée en 10.5, soit en regardant le bug tracker pour le bug de support de Snow Leopard, qui a un patch.
Alternativement, essayez les outils de débogage de la mémoire dans le malloc (3) manual.
J'ai essayé valgrind sur Snow Leopard. J'ai seulement dû contourner les syscalls que le patch ne couvre pas - sigwait() par exemple. (Expérience de portage utile.) À la fin, valgrind ne m'a pas dit plus que ce que le débogueur a fait - Invalid Write (à travers une valeur de pointeur trashed). Je veux toujours être capable de passer par l'appel libC pour voir quand le pointeur devient invalide. Merci quand même. –