2010-11-11 5 views
3

J'essaie de configurer le cadre de test de l'unité iPhone de google-toolbox-for- Mac. J'ai un simple test d'unité créé et essaye de le construire et de recevoir l'erreur suivante. Un de mes collègues peut utiliser le même projet et construire avec succès sur sa machine. Pour la vie de moi, je ne peux pas comprendre ce que je pourrais manquer. Voici le message d'erreur que je vois. Quelqu'un a-t-il des idées?

Aucun processus correspondants appartenant à vous ont été trouvés

mkdir (1073) malloc: la protection des arêtes

mkdir (1073) malloc: enregistrement des piles malloc sur le disque en utilisant un enregistreur classique

mkdir (1073) malloc: permettant de détecter scribbling mods de blocs libres

mkdir (1073) malloc: Le processus 1059 n'existe plus, les journaux de la pile supprimés de /tmp/stack-logs.1059.mkdir.QDKY28.index

mkdir (1073) malloc: les journaux de la pile étant écrites dans /tmp/stack-logs.1073.mkdir.KrpE2L.index

détectez une tentative d'appeler un symbole dans les bibliothèques du système qui ne sont pas présents sur l'iPhone: getopt $ UNIX2003 appelé de la fonction ??? dans l'image mkdir.

Si vous rencontrez ce problème lors de l'exécution d'un binaire de simulateur dans gdb, assurez-vous d'abord de "définir start-with-shell".

/Developer/google-toolbox-for-mac/UnitTesting/RunIPhoneUnitTest.sh: Ligne 150: 1073 piège Abandonner mkdir "$ CFFIXED_USER_HOME"

commande/bin/sh a échoué avec le code de sortie 134

Répondre

0

Il semble que votre collègue utilise une ancienne version du SDK iOS qui accepte les décorations de symbole $ UNIX2003. J'ai rencontré un problème similaire lorsque j'ai essayé d'utiliser une version de libCURL compilée pour un système d'exploitation antérieur. Au final, j'ai dû reconstruire libCURL avec les derniers outils du SDK (détails ici: http://www.creativealgorithms.com/blog/content/building-libcurl-ios-42) mais vous pourrez peut-être contourner ce problème en utilisant le même SDK que votre collègue (s'il est encore disponible).

2

Il semble que ce soit un bug dans le script google-toolbox/UnitTesting/RunIPhoneUnitTest.sh. Tout après la ligne: export DYLD_ROOT_PATH="$SDKROOT" fonctionne en "mode iPhone". Sur notre ancien iMac/bin/mkdir 32 bits semble utiliser l'appel système getopt $ UNIX2003 qui n'est pas disponible sur l'iPhone. Donc, la ligne suivante échoue: mkdir "$CFFIXED_USER_HOME". Sur les nouveaux Macs/bin/mkdir 64 bits est compatible avec le mode iPhone. Une solution consiste simplement à déplacer la section de code commençant par if [ $GTM_DISABLE_USERDIR_SETUP -eq 0 ]; then avant la partie export DYLD_ROOT_PATH (et également la ligne export CFFIXED_USER_HOME). Par ailleurs, le SDK semble avoir des versions wrapper des librairies système libc, libSystem, etc. qui vérifient si les appels système utilisés sont disponibles sur l'iPhone. C'est ce qu'on entend par "mode iPhone" ci-dessus.

+0

Merci! Il a résolu pour moi, il suffit de déplacer celui-ci "si" et alakazam - cela fonctionne! – Mayjak