модульный тест google-toolbox-for-mac для iphone: 1073 Прервать прерывание mkdir «$ CFFIXED_USER_HOME» Сбой команды / bin / sh с кодом выхода 134 - PullRequest
3 голосов
/ 12 ноября 2010

Я пытаюсь настроить фреймворк для модульного тестирования iPhone из google-toolbox-for-mac. Я создал простой модульный тест, постараюсь его собрать и получаю следующую ошибку. Мой коллега может использовать тот же проект и успешно строить на своей машине. Что касается жизни, я не могу понять, чего мне не хватает. Ниже приведено сообщение об ошибке, которое я вижу. У кого-нибудь есть идеи?

Не найдено подходящих процессов, принадлежащих вам

mkdir (1073) malloc: защитные кромки

mkdir (1073) malloc: запись стеков malloc на диск с использованием стандартного устройства записи

mkdir (1073) malloc: включение scribbling для обнаружения модов на свободные блоки

mkdir (1073) malloc: процесс 1059 больше не существует, журналы стека удалены из /tmp/stack-logs.1059.mkdir.QDKY28.index

mkdir (1073) malloc: журналы стека записываются в /tmp/stack-logs.1073.mkdir.KrpE2L.index

Обнаружена попытка вызвать символ в системных библиотеках, которого нет на iPhone: getopt $ UNIX2003 вызывается из функции ??? в образе mkdir.

Если вы столкнулись с этой проблемой при запуске двоичного файла симулятора в gdb, сначала убедитесь, что вы отключили запуск с оболочки.

/ Разработчик / google-toolbox-for-mac / UnitTesting / RunIPhoneUnitTest.sh: строка 150: 1073 Прервать прерывание mkdir "$ CFFIXED_USER_HOME"

Команда / bin / sh завершилась неудачно с кодом выхода 134

Ответы [ 2 ]

2 голосов
/ 22 декабря 2010

Кажется, это ошибка в скрипте google-toolbox / UnitTesting / RunIPhoneUnitTest.sh.Все после строки: export DYLD_ROOT_PATH="$SDKROOT" работает в «режиме iPhone».В наших старых 32-битных iMac / bin / mkdir, похоже, используется системный вызов getopt $ UNIX2003, который недоступен на iPhone.Таким образом, следующая строка завершается ошибкой: mkdir "$CFFIXED_USER_HOME".На более новых 64-битных компьютерах Mac / bin / mkdir совместим с режимом iPhone.

Исправление заключается в простом перемещении раздела кода, начинающегося с if [ $GTM_DISABLE_USERDIR_SETUP -eq 0 ]; then, до части export DYLD_ROOT_PATH (а также export CFFIXED_USER_HOME line).

Кстати, в SDK есть версии-оболочки системных библиотек libc, libSystem и т. д., которые проверяют, доступны ли используемые системные вызовы на iPhone.Вот что означает «режим iPhone» выше.

0 голосов
/ 09 декабря 2010

Похоже, ваш коллега использует более старую версию iOS SDK, которая принимает символьные оформления $ UNIX2003.У меня была похожая проблема, когда я пытался использовать версию libCURL, скомпилированную для более ранней ОС.В конце концов, мне пришлось пересобрать libCURL с последними инструментами SDK (подробности здесь: http://www.creativealgorithms.com/blog/content/building-libcurl-ios-42), но вы можете обойти его, используя тот же SDK, что и ваш коллега (если он еще доступен).

...